glsl framebuffer_fetch extension check at runtime

This commit is contained in:
2019-01-30 15:43:45 +01:00
parent 489036a40c
commit c55ed36f2c
5 changed files with 99 additions and 50 deletions

View File

@@ -267,9 +267,8 @@ void NodeCanvas::draw()
ShaderManager::use(kShader::TextureBlend);
ShaderManager::u_int(kShaderUniform::Tex, 0);
ShaderManager::u_int(kShaderUniform::TexA, 1);
#ifndef __IOS__
ShaderManager::u_int(kShaderUniform::TexBG, 2);
#endif
if (!ShaderManager::ext_framebuffer_fetch)
ShaderManager::u_int(kShaderUniform::TexBG, 2);
ShaderManager::u_int(kShaderUniform::BlendMode, m_canvas->m_layers[layer_index].m_blend_mode);
ShaderManager::u_float(kShaderUniform::Alpha, 1.f);
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-1, 1, -1, 1));
@@ -278,19 +277,21 @@ void NodeCanvas::draw()
m_blender_rtt.bindTexture();
glActiveTexture(GL_TEXTURE1);
m_blender_rtt.bindTexture();
#ifndef __IOS__
glActiveTexture(GL_TEXTURE2);
m_blender_bg.bind();
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0,
m_blender_bg.size().x, m_blender_bg.size().y);
#endif
if (!ShaderManager::ext_framebuffer_fetch)
{
glActiveTexture(GL_TEXTURE2);
m_blender_bg.bind();
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0,
m_blender_bg.size().x, m_blender_bg.size().y);
}
m_face_plane.draw_fill();
#ifndef __IOS__
glActiveTexture(GL_TEXTURE2);
m_blender_bg.unbind();
#endif
if (!ShaderManager::ext_framebuffer_fetch)
{
glActiveTexture(GL_TEXTURE2);
m_blender_bg.unbind();
}
glActiveTexture(GL_TEXTURE1);
m_blender_rtt.unbindTexture();
glActiveTexture(GL_TEXTURE0);