X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Fprogram_backend.cpp;h=bd54fbaa788348d2358163759de2549e83afbaf8;hb=39495091719dfc699b6454f6b23925b03544da9a;hp=4dbf38a7197e5bd40e58f1f5c4151bbfafe2a594;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;p=libs%2Fgl.git diff --git a/source/backends/opengl/program_backend.cpp b/source/backends/opengl/program_backend.cpp index 4dbf38a7..bd54fbaa 100644 --- a/source/backends/opengl/program_backend.cpp +++ b/source/backends/opengl/program_backend.cpp @@ -69,11 +69,11 @@ unsigned OpenGLProgram::add_stage(Stage type) case VERTEX: { static Require _req(ARB_vertex_shader); gl_type = GL_VERTEX_SHADER; } break; case GEOMETRY: { static Require _req(ARB_geometry_shader4); gl_type = GL_GEOMETRY_SHADER; } break; case FRAGMENT: { static Require _req(ARB_fragment_shader); gl_type = GL_FRAGMENT_SHADER; } break; - default: throw invalid_argument("Program::add_stage"); + default: throw invalid_argument("OpenGLProgram::add_stage"); } if(stage_ids[type]) - throw invalid_operation("Program::add_stage"); + throw invalid_operation("OpenGLProgram::add_stage"); unsigned stage_id = glCreateShader(gl_type); stage_ids[type] = stage_id; @@ -101,7 +101,7 @@ void OpenGLProgram::add_glsl_stages(const GlslModule &mod, const map stages = compiler.get_stages(); if(stages.empty()) - throw invalid_argument("Program::add_glsl_stages"); + throw invalid_argument("OpenGLProgram::add_glsl_stages"); for(SL::Stage::Type st: stages) { @@ -111,7 +111,7 @@ void OpenGLProgram::add_glsl_stages(const GlslModule &mod, const map(this)->reflect_data; + rd.n_clip_distances = compiler.get_n_clip_distances(); } void OpenGLProgram::compile_glsl_stage(const GlslModule &mod, unsigned stage_id) @@ -174,14 +177,14 @@ void OpenGLProgram::add_spirv_stages(const SpirVModule &mod, const map &code = mod.get_code(); glShaderBinary(n_stages, used_stage_ids, GL_SHADER_BINARY_FORMAT_SPIR_V, &code[0], code.size()*4); @@ -334,11 +337,6 @@ void OpenGLProgram::query_uniforms() } default_block.sort_uniforms(); - if(!default_block.uniforms.empty()) - { - const ReflectData::UniformInfo &uni = *default_block.uniforms.back(); - default_block.data_size = uni.location*16+uni.array_size*get_type_size(uni.type); - } default_block.update_layout_hash(); rd.update_layout_hash(); } @@ -373,7 +371,7 @@ void OpenGLProgram::query_uniform_blocks(const vectorblock = &info; }