MCPcopy Create free account
hub / github.com/DaedalusX64/daedalus / GetShaderForConfig

Function GetShaderForConfig

Source/SysGL/HLEGraphics/RendererGL.cpp:569–600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

567}
568
569static ShaderProgram * GetShaderForConfig(const ShaderConfiguration & config)
570{
571 DAEDALUS_ASSERT( gN64FramentLibrary != NULL, "Haven't initialised the n64 fragment library" );
572
573 for (u32 i = 0; i < gShaders.size(); ++i)
574 {
575 ShaderProgram * program = gShaders[i];
576 if (program->config == config)
577 return program;
578 }
579
580 char frag_shader[2048];
581 SprintShader(frag_shader, config);
582
583 const char * vertex_lines[] = { default_vertex_shader };
584 const char * fragment_lines[] = { gN64FramentLibrary, frag_shader };
585
586 GLuint shader_program = make_shader_program(
587 vertex_lines, ARRAYSIZE(vertex_lines),
588 fragment_lines, ARRAYSIZE(fragment_lines));
589 if (shader_program == 0)
590 {
591 fprintf(stderr, "ERROR: during creation of the shader program\n");
592 return NULL;
593 }
594
595 ShaderProgram * program = new ShaderProgram;
596 InitShaderProgram(program, config, shader_program);
597 gShaders.push_back(program);
598
599 return program;
600}
601
602void RendererGL::RestoreRenderStates()
603{

Callers 1

PrepareRenderStateMethod · 0.85

Calls 4

SprintShaderFunction · 0.85
make_shader_programFunction · 0.85
InitShaderProgramFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected