MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / shaders

Function shaders

test/browser/tex_nonbyte.c:44–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42#include <assert.h>
43
44void shaders() {
45#if USE_GLEW
46 glewInit();
47#endif
48
49 GLint ok;
50
51 const char *vertexShader = "void main(void) \n"
52 "{ \n"
53 " gl_Position = ftransform(); \n"
54 " gl_TexCoord[0] = gl_MultiTexCoord0; \n"
55 " gl_FrontColor = gl_Color; \n"
56 "} \n";
57 const char *fragmentShader = "uniform sampler2D tex0; \n"
58 "void main(void) \n"
59 "{ \n"
60 " gl_FragColor = gl_Color * texture2D(tex0, gl_TexCoord[0].xy); \n"
61 "} \n";
62
63 GLuint vs = glCreateShader(GL_VERTEX_SHADER);
64 glShaderSource(vs, 1, &vertexShader, NULL);
65 glCompileShader(vs);
66 glGetShaderiv(vs, GL_COMPILE_STATUS, &ok);
67 assert(ok);
68
69 GLuint fs = glCreateShader(GL_FRAGMENT_SHADER);
70 glShaderSource(fs, 1, &fragmentShader, NULL);
71 glCompileShader(fs);
72 glGetShaderiv(fs, GL_COMPILE_STATUS, &ok);
73 assert(ok);
74
75 GLuint program = glCreateProgram();
76
77 glAttachShader(program, vs);
78 glAttachShader(program, fs);
79 glLinkProgram(program);
80 glGetProgramiv(program, GL_LINK_STATUS, &ok);
81 assert(ok);
82
83 glUseProgram(program);
84
85 {
86 // Also, check getting the error log
87 const char *fakeVertexShader = "atbute ve4 blarg; ### AAA\n";
88 GLuint vs = glCreateShader(GL_VERTEX_SHADER);
89 glShaderSource(vs, 1, &fakeVertexShader, NULL);
90 glCompileShader(vs);
91 glGetShaderiv(vs, GL_COMPILE_STATUS, &ok);
92 assert(!ok);
93 GLint infoLen = 0;
94 glGetShaderiv(vs, GL_INFO_LOG_LENGTH, &infoLen);
95 assert(infoLen > 1);
96 }
97}
98
99int main(int argc, char *argv[])
100{

Callers 1

mainFunction · 0.70

Calls 1

assertFunction · 0.50

Tested by

no test coverage detected