MCPcopy Create free account
hub / github.com/bulletphysics/bullet3 / gltLoadShaderPair

Function gltLoadShaderPair

examples/OpenGLWindow/LoadShader.cpp:16–103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14}
15
16GLuint gltLoadShaderPair(const char *szVertexProg, const char *szFragmentProg)
17{
18 assert(glGetError() == GL_NO_ERROR);
19
20 // Temporary Shader objects
21 GLuint hVertexShader;
22 GLuint hFragmentShader;
23 GLuint hReturn = 0;
24 GLint testVal;
25
26 // Create shader objects
27 hVertexShader = glCreateShader(GL_VERTEX_SHADER);
28 hFragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
29
30 gltLoadShaderSrc(szVertexProg, hVertexShader);
31 gltLoadShaderSrc(szFragmentProg, hFragmentShader);
32
33 // Compile them
34 glCompileShader(hVertexShader);
35 assert(glGetError() == GL_NO_ERROR);
36
37 glGetShaderiv(hVertexShader, GL_COMPILE_STATUS, &testVal);
38 if (testVal == GL_FALSE)
39 {
40 char temp[256] = "";
41 glGetShaderInfoLog(hVertexShader, 256, NULL, temp);
42 fprintf(stderr, "Compile failed:\n%s\n", temp);
43 assert(0);
44 return 0;
45 glDeleteShader(hVertexShader);
46 glDeleteShader(hFragmentShader);
47 return (GLuint)0;
48 }
49
50 assert(glGetError() == GL_NO_ERROR);
51
52 glCompileShader(hFragmentShader);
53 assert(glGetError() == GL_NO_ERROR);
54
55 glGetShaderiv(hFragmentShader, GL_COMPILE_STATUS, &testVal);
56 if (testVal == GL_FALSE)
57 {
58 char temp[256] = "";
59 glGetShaderInfoLog(hFragmentShader, 256, NULL, temp);
60 fprintf(stderr, "Compile failed:\n%s\n", temp);
61 assert(0);
62 exit(EXIT_FAILURE);
63 glDeleteShader(hVertexShader);
64 glDeleteShader(hFragmentShader);
65 return (GLuint)0;
66 }
67
68 assert(glGetError() == GL_NO_ERROR);
69
70 // Check for errors
71
72 // Link them - assuming it works...
73 hReturn = glCreateProgram();

Callers 3

loadShaderFunction · 0.85
GLPrimitiveRendererMethod · 0.85
InitShadersMethod · 0.85

Calls 2

gltLoadShaderSrcFunction · 0.85
exitFunction · 0.85

Tested by

no test coverage detected