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

Function main

test/browser/webgl_sampler_layout_binding.c:61–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59}
60
61int main(int argc, char *argv[])
62{
63 EmscriptenWebGLContextAttributes attr;
64 emscripten_webgl_init_context_attributes(&attr);
65 EMSCRIPTEN_WEBGL_CONTEXT_HANDLE ctx = emscripten_webgl_create_context("#canvas", &attr);
66 emscripten_webgl_make_context_current(ctx);
67
68 GLuint vs = CompileShader(GL_VERTEX_SHADER,
69 "attribute vec4 pos;\n"
70 "varying vec2 pUv;\n"
71 "void main() { pUv = pos.xy; gl_Position = pos; }");
72
73 GLuint ps = CompileShader(GL_FRAGMENT_SHADER,
74 "precision lowp float;\n"
75 "layout(binding = 4) uniform sampler2D tex;\n"
76 "varying vec2 pUv;\n"
77 "void main() { gl_FragColor = texture2D(tex, pUv); }");
78
79 GLuint program = CreateProgram(vs, ps);
80 glUseProgram(program);
81
82 GLuint tex[2];
83 glGenTextures(2, tex);
84
85 glActiveTexture(GL_TEXTURE0 + 4);
86 glBindTexture(GL_TEXTURE_2D, tex[0]);
87 uint32_t color[4] = {
88 0xFF0000FF,
89 0xFF00FF00,
90 0xFFFF0000,
91 0xFFFFFFFF,
92 };
93 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, color);
94 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
95 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
96
97 glActiveTexture(GL_TEXTURE0 + 5);
98 glBindTexture(GL_TEXTURE_2D, tex[1]);
99 uint32_t color2[4] = {
100 0xFFFF0000,
101 0xFFFF00FF,
102 0xFF00FF00,
103 0xFF000000,
104 };
105 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, color2);
106 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
107 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
108
109 static const float vb[] = {
110 -1.0f, -1.0f,
111 1.0f, -1.0f,
112 -1.0f, 1.0f,
113 -1.0f, 1.0f,
114 1.0f, -1.0f,
115 1.0f, 1.0f,
116 };
117
118 GLuint vbo;

Callers

nothing calls this directly

Calls 10

glGenTexturesFunction · 0.85
glTexImage2DFunction · 0.85
glBufferDataFunction · 0.85
printfFunction · 0.85
CompileShaderFunction · 0.70
CreateProgramFunction · 0.70
assertFunction · 0.50

Tested by

no test coverage detected