Use utils function for renderbloom/blend
This commit is contained in:
parent
9a5e3d9c9c
commit
1481a110a5
@ -210,18 +210,11 @@ void renderBloom(ITexture *in)
|
|||||||
const float threshold = World::getWorld()->getTrack()->getBloomThreshold();
|
const float threshold = World::getWorld()->getTrack()->getBloomThreshold();
|
||||||
glUseProgram(FullScreenShader::BloomShader::Program);
|
glUseProgram(FullScreenShader::BloomShader::Program);
|
||||||
glBindVertexArray(FullScreenShader::BloomShader::vao);
|
glBindVertexArray(FullScreenShader::BloomShader::vao);
|
||||||
glUniform1f(FullScreenShader::BloomShader::uniform_low, threshold);
|
|
||||||
|
|
||||||
glActiveTexture(GL_TEXTURE0);
|
setTexture(0, getTextureGLuint(in), GL_NEAREST, GL_NEAREST);
|
||||||
glBindTexture(GL_TEXTURE_2D, getTextureGLuint(in));
|
FullScreenShader::BloomShader::setUniforms(0);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
|
||||||
glUniform1i(FullScreenShader::BloomShader::uniform_texture, 0);
|
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
||||||
glBindVertexArray(0);
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
@ -235,18 +228,10 @@ void renderBloomBlend(ITexture *in)
|
|||||||
glUseProgram(FullScreenShader::BloomBlendShader::Program);
|
glUseProgram(FullScreenShader::BloomBlendShader::Program);
|
||||||
glBindVertexArray(FullScreenShader::BloomBlendShader::vao);
|
glBindVertexArray(FullScreenShader::BloomBlendShader::vao);
|
||||||
|
|
||||||
glActiveTexture(GL_TEXTURE0);
|
setTexture(0, getTextureGLuint(in), GL_LINEAR, GL_LINEAR);
|
||||||
glBindTexture(GL_TEXTURE_2D, getTextureGLuint(in));
|
FullScreenShader::BloomBlendShader::setUniforms(0);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
||||||
glUniform1i(FullScreenShader::BloomBlendShader::uniform_texture, 0);
|
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
|
||||||
glBindVertexArray(0);
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
|
||||||
glEnable(GL_DEPTH_TEST);
|
|
||||||
glDisable(GL_BLEND);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -1762,7 +1762,6 @@ namespace FullScreenShader
|
|||||||
{
|
{
|
||||||
GLuint BloomShader::Program;
|
GLuint BloomShader::Program;
|
||||||
GLuint BloomShader::uniform_texture;
|
GLuint BloomShader::uniform_texture;
|
||||||
GLuint BloomShader::uniform_low;
|
|
||||||
GLuint BloomShader::vao;
|
GLuint BloomShader::vao;
|
||||||
void BloomShader::init()
|
void BloomShader::init()
|
||||||
{
|
{
|
||||||
@ -1770,13 +1769,16 @@ namespace FullScreenShader
|
|||||||
GL_VERTEX_SHADER, file_manager->getAsset("shaders/screenquad.vert").c_str(),
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/screenquad.vert").c_str(),
|
||||||
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/bloom.frag").c_str());
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/bloom.frag").c_str());
|
||||||
uniform_texture = glGetUniformLocation(Program, "tex");
|
uniform_texture = glGetUniformLocation(Program, "tex");
|
||||||
uniform_low = glGetUniformLocation(Program, "low");
|
|
||||||
vao = createVAO(Program);
|
vao = createVAO(Program);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BloomShader::setUniforms(unsigned TU_tex)
|
||||||
|
{
|
||||||
|
glUniform1i(FullScreenShader::BloomShader::uniform_texture, TU_tex);
|
||||||
|
}
|
||||||
|
|
||||||
GLuint BloomBlendShader::Program;
|
GLuint BloomBlendShader::Program;
|
||||||
GLuint BloomBlendShader::uniform_texture;
|
GLuint BloomBlendShader::uniform_texture;
|
||||||
GLuint BloomBlendShader::uniform_low;
|
|
||||||
GLuint BloomBlendShader::vao;
|
GLuint BloomBlendShader::vao;
|
||||||
void BloomBlendShader::init()
|
void BloomBlendShader::init()
|
||||||
{
|
{
|
||||||
@ -1787,6 +1789,11 @@ namespace FullScreenShader
|
|||||||
vao = createVAO(Program);
|
vao = createVAO(Program);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BloomBlendShader::setUniforms(unsigned TU_tex)
|
||||||
|
{
|
||||||
|
glUniform1i(FullScreenShader::BloomShader::uniform_texture, TU_tex);
|
||||||
|
}
|
||||||
|
|
||||||
GLuint ColorLevelShader::Program;
|
GLuint ColorLevelShader::Program;
|
||||||
GLuint ColorLevelShader::uniform_tex;
|
GLuint ColorLevelShader::uniform_tex;
|
||||||
GLuint ColorLevelShader::uniform_inlevel;
|
GLuint ColorLevelShader::uniform_inlevel;
|
||||||
|
@ -457,20 +457,22 @@ class BloomShader
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static GLuint Program;
|
static GLuint Program;
|
||||||
static GLuint uniform_texture, uniform_low;
|
static GLuint uniform_texture;
|
||||||
static GLuint vao;
|
static GLuint vao;
|
||||||
|
|
||||||
static void init();
|
static void init();
|
||||||
|
static void setUniforms(unsigned TU_tex);
|
||||||
};
|
};
|
||||||
|
|
||||||
class BloomBlendShader
|
class BloomBlendShader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static GLuint Program;
|
static GLuint Program;
|
||||||
static GLuint uniform_texture, uniform_low;
|
static GLuint uniform_texture;
|
||||||
static GLuint vao;
|
static GLuint vao;
|
||||||
|
|
||||||
static void init();
|
static void init();
|
||||||
|
static void setUniforms(unsigned TU_tex);
|
||||||
};
|
};
|
||||||
|
|
||||||
class ColorLevelShader
|
class ColorLevelShader
|
||||||
|
Loading…
x
Reference in New Issue
Block a user