Lines Matching refs:gl
67 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
71 gl.deleteFramebuffers(1, &dst_fbo_id);
78 gl.deleteFramebuffers(1, &src_fbo_id);
85 gl.deleteTextures(1, &dst_to_color_id);
92 gl.deleteTextures(1, &dst_to_depth_stencil_id);
99 gl.deleteTextures(1, &src_to_color_id);
106 gl.deleteTextures(1, &src_to_depth_stencil_id);
123 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
126 gl.genTextures(1, &dst_to_color_id);
127 gl.genTextures(1, &dst_to_depth_stencil_id);
128 gl.genTextures(1, &src_to_color_id);
129 gl.genTextures(1, &src_to_depth_stencil_id);
131 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up texture objects");
135 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, src_to_color_id);
136 gl.texStorage3DMultisample(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, 2, /* samples */
141 GLU_EXPECT_NO_ERROR(gl.getError(),
146 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, src_to_color_id);
147 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2, /* samples */
152 GLU_EXPECT_NO_ERROR(gl.getError(),
156 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, src_to_depth_stencil_id);
157 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2, /* samples */
161 GLU_EXPECT_NO_ERROR(gl.getError(),
164 gl.bindTexture(GL_TEXTURE_2D, dst_to_color_id);
165 gl.texImage2D(GL_TEXTURE_2D, 0, /* level */
170 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexImage2D() call failed for texture object dst_to_color_id");
172 gl.bindTexture(GL_TEXTURE_2D_ARRAY, dst_to_depth_stencil_id);
173 gl.texImage3D(GL_TEXTURE_2D_ARRAY, 0, /* level */
179 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexImage3D9) call failed for texture object dst_to_depth_stencil_id");
182 gl.genFramebuffers(1, &dst_fbo_id);
183 gl.genFramebuffers(1, &src_fbo_id);
184 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, dst_fbo_id);
185 gl.bindFramebuffer(GL_READ_FRAMEBUFFER, src_fbo_id);
187 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up framebuffer objects");
194 gl.framebufferTextureLayer(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, src_to_color_id, 0, /* level */
199 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, src_to_color_id,
203 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D_MULTISAMPLE,
206 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up source framebuffer's attachments");
208 fbo_completeness_status = gl.checkFramebufferStatus(GL_READ_FRAMEBUFFER);
219 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dst_to_color_id, 0); /* level */
220 gl.framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, dst_to_depth_stencil_id, 0, /* level */
222 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up draw framebuffer's attachments");
224 fbo_completeness_status = gl.checkFramebufferStatus(GL_DRAW_FRAMEBUFFER);
235 gl.blitFramebuffer(0, /* srcX0 */
247 GLU_EXPECT_NO_ERROR(gl.getError(), "glBlitFramebuffer() call failed.");
282 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
286 gl.deleteFramebuffers(1, &fbo_dst_id);
293 gl.deleteFramebuffers(1, &fbo_src_id);
300 gl.deleteTextures(1, &to_dst_preview_id);
307 gl.deleteTextures(1, &to_dst_id);
314 gl.deleteTextures(1, &to_src_id);
321 gl.deleteShader(fs_id);
328 gl.deleteShader(fs_depth_preview_id);
335 gl.deleteProgram(po_depth_preview_id);
342 gl.deleteProgram(po_id);
349 gl.deleteVertexArrays(1, &vao_id);
356 gl.deleteShader(vs_id);
371 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
374 fs_depth_preview_id = gl.createShader(GL_FRAGMENT_SHADER);
375 fs_id = gl.createShader(GL_FRAGMENT_SHADER);
376 vs_id = gl.createShader(GL_VERTEX_SHADER);
378 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() failed");
380 po_depth_preview_id = gl.createProgram();
381 po_id = gl.createProgram();
383 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() failed");
385 gl.genTextures(1, &to_src_id);
386 gl.genTextures(1, &to_dst_preview_id);
387 gl.genTextures(1, &to_dst_id);
389 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures() failed");
391 gl.genFramebuffers(1, &fbo_src_id);
392 gl.genFramebuffers(1, &fbo_dst_id);
394 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenFramebuffers() failed");
396 gl.genVertexArrays(1, &vao_id);
398 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenVertexArrays() failed");
401 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_dst_id);
402 gl.bindFramebuffer(GL_READ_FRAMEBUFFER, fbo_src_id);
404 GLU_EXPECT_NO_ERROR(gl.getError(), "glBindFramebuffer() call(s) failed");
424 gl.shaderSource(vs_id, 1 /* count */, &vs_body, NULL);
425 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() failed for vertex shader of vs_id id");
439 gl.shaderSource(fs_id, 1 /* count */, &fs_body, NULL);
440 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() failed for fragment shader of fs_id id");
457 gl.shaderSource(fs_depth_preview_id, 1 /* count */, &fs_depth_preview_body, NULL);
458 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() failed for fragment shader of fs_depth_preview_id id");
468 gl.compileShader(shader_ids[n_shader_id]);
469 GLU_EXPECT_NO_ERROR(gl.getError(), "glCompileShader() failed");
471 gl.getShaderiv(shader_ids[n_shader_id], GL_COMPILE_STATUS, &compile_status);
472 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetShaderiv() failed");
484 gl.attachShader(po_depth_preview_id, fs_depth_preview_id);
485 gl.attachShader(po_depth_preview_id, vs_id);
486 gl.attachShader(po_id, fs_id);
487 gl.attachShader(po_id, vs_id);
488 GLU_EXPECT_NO_ERROR(gl.getError(), "glAttachShader() failed");
494 gl.linkProgram(program_ids[n_program_id]);
495 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() failed");
497 gl.getProgramiv(program_ids[n_program_id], GL_LINK_STATUS, &link_status);
498 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetProgramiv() failed");
509 gl.getInternalformativ(GL_TEXTURE_2D_MULTISAMPLE, GL_DEPTH_COMPONENT32F, GL_SAMPLES, 1, /* bufSize */
511 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetInternalformativ() failed");
514 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_src_id);
515 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, n_depth_component32f_max_samples, GL_DEPTH_COMPONENT32F,
520 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure texture storage for texture object to_src_id");
522 gl.texParameteri(GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
528 glw::GLenum error_code = gl.getError();
539 gl.bindTexture(GL_TEXTURE_2D, to_dst_id);
540 gl.texStorage2D(GL_TEXTURE_2D, 1, /* levels */
544 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure texture storage for texture object to_dst_id");
546 gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
547 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set nearest minification filter for texture object to_dst_id");
549 gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
550 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set nearest magnification filter for texture object to_dst_id");
553 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D_MULTISAMPLE, to_src_id,
555 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure draw framebuffer for depth data rendering");
566 gl.viewport(0, 0, 64 /* rt width */, 64 /* rt height */);
567 GLU_EXPECT_NO_ERROR(gl.getError(), "glViewport() failed");
569 gl.enable(GL_DEPTH_TEST);
570 GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_DEPTH_TEST) failed");
572 gl.depthFunc(GL_ALWAYS);
573 GLU_EXPECT_NO_ERROR(gl.getError(), "gldepthFunc(GL_ALWAYS) failed");
575 gl.useProgram(po_id);
576 GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() for program object po_id failed");
578 gl.bindVertexArray(vao_id);
579 GLU_EXPECT_NO_ERROR(gl.getError(), "glBindVertexArray() failed");
581 gl.drawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */);
582 GLU_EXPECT_NO_ERROR(gl.getError(), "glDrawArrays() failed");
585 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D_MULTISAMPLE, to_src_id,
588 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, to_dst_id, 0); /* level */
590 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure FBOs for blitting");
593 gl.blitFramebuffer(0, /* srcX0 */
602 GLU_EXPECT_NO_ERROR(gl.getError(), "glBlitFramebuffer() failed");
608 gl.useProgram(po_depth_preview_id);
609 GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() failed for program object po_depth_preview_id");
612 gl.bindTexture(GL_TEXTURE_2D, to_dst_preview_id);
613 gl.texStorage2D(GL_TEXTURE_2D, 1, /* levels */
617 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up texcture storage for texture object to_dst_preview_id");
619 gl.texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
620 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri() failed for texture object to_dst_preview_id");
623 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, /* texture */
626 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, to_dst_preview_id, 0); /* level */
628 GLU_EXPECT_NO_ERROR(gl.getError(), "glFramebufferTexture2D() failed for depth preview pass");
631 gl.bindTexture(GL_TEXTURE_2D, to_dst_id);
633 gl.drawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */);
634 GLU_EXPECT_NO_ERROR(gl.getError(), "glDrawArrays() failed for depth preview pass");
639 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, /* texture */
642 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, to_dst_preview_id, 0); /* level */
644 GLU_EXPECT_NO_ERROR(gl.getError(), "glFramebufferTexture2D() failed for depth data download pass");
649 gl.readPixels(0, /* x */
654 GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels() failed for depth data download pass");
717 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
721 gl.deleteFramebuffers(1, &fbo_draw_id);
728 gl.deleteFramebuffers(1, &fbo_read_id);
735 gl.deleteTextures(1, &dst_to_id);
742 gl.deleteTextures(1, &src_to_id);
749 gl.deleteShader(fs_id);
756 gl.deleteProgram(po_id);
763 gl.deleteShader(vs_id);
778 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
783 gl.getIntegerv(GL_MAX_INTEGER_SAMPLES, &gl_max_integer_samples_value);
784 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not query GL_MAX_INTEGER_SAMPLES pname value");
794 gl.getInternalformativ(GL_TEXTURE_2D_MULTISAMPLE, GL_R16UI, GL_SAMPLES, 1 /* bufSize */, &r16ui_max_samples);
795 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetInternalformativ() call failed.");
798 gl.genTextures(1, &dst_to_id);
799 gl.genTextures(1, &src_to_id);
801 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up texture objects");
803 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, src_to_id);
804 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, r16ui_max_samples, GL_R16UI, 16, /* width */
807 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2DMultisample() call failed for texture object src_to_id");
809 gl.bindTexture(GL_TEXTURE_2D, dst_to_id);
810 gl.texStorage2D(GL_TEXTURE_2D, 1, /* levels */
814 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2D() call failed for texture object dst_to_id");
817 po_id = gl.createProgram();
818 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() call failed");
821 fs_id = gl.createShader(GL_FRAGMENT_SHADER);
822 vs_id = gl.createShader(GL_VERTEX_SHADER);
824 GLU_EXPECT_NO_ERROR(gl.getError(), "Either of the glCreateShader() calls failed");
827 gl.genFramebuffers(1, &fbo_draw_id);
828 gl.genFramebuffers(1, &fbo_read_id);
829 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_draw_id);
830 gl.bindFramebuffer(GL_READ_FRAMEBUFFER, fbo_read_id);
832 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up framebuffer objects");
835 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, src_to_id,
838 GLU_EXPECT_NO_ERROR(gl.getError(), "glFramebufferTexture2D() call failed");
889 gl.attachShader(po_id, fs_id);
890 gl.attachShader(po_id, vs_id);
891 GLU_EXPECT_NO_ERROR(gl.getError(), "glAttachShader() call(s) failed.");
893 gl.shaderSource(fs_id, 1 /* count */, &fs_body, NULL);
894 gl.shaderSource(vs_id, 1 /* count */, &vs_body, NULL);
895 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() call(s) failed.");
897 gl.compileShader(fs_id);
898 gl.compileShader(vs_id);
899 GLU_EXPECT_NO_ERROR(gl.getError(), "glCompileShader() call(s) failed.");
901 gl.getShaderiv(fs_id, GL_COMPILE_STATUS, &compile_status);
907 gl.getShaderiv(vs_id, GL_COMPILE_STATUS, &compile_status);
914 gl.getShaderInfoLog(vs_id, 1024, &length, infoLog);
925 gl.linkProgram(po_id);
926 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() failed");
928 gl.getProgramiv(po_id, GL_LINK_STATUS, &link_status);
929 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetProgramiv() failed");
937 gl.enable(GL_SAMPLE_MASK);
939 GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_SAMPLE_MASK) call generated an unexpected error");
942 glw::GLint n_max_samples_uniform_location = gl.getUniformLocation(po_id, "n_max_samples");
943 glw::GLint n_sample_uniform_location = gl.getUniformLocation(po_id, "n_sample");
944 glw::GLint x1y1_uniform_location = gl.getUniformLocation(po_id, "x1y1");
961 gl.viewport(0 /* x */, 0 /* y */, 16 /* width */, 16 /* height */);
962 GLU_EXPECT_NO_ERROR(gl.getError(), "glViewport() call failed");
964 gl.useProgram(po_id);
965 GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() call failed");
967 gl.uniform1ui(n_max_samples_uniform_location, r16ui_max_samples);
968 GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform1ui() call failed");
974 gl.clearBufferuiv(GL_COLOR, 0, clear_color_src);
975 GLU_EXPECT_NO_ERROR(gl.getError(), "glClearBufferiv() call failed");
984 gl.uniform1ui(n_sample_uniform_location, n_sample);
985 GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform1ui() call failed");
987 gl.uniform2ui(x1y1_uniform_location, x, y);
988 GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform2f() call failed");
990 gl.sampleMaski(n_sample / 32, 1 << (n_sample % 32));
991 GLU_EXPECT_NO_ERROR(gl.getError(), "glSampleMaski() call failed.");
993 gl.drawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */);
994 GLU_EXPECT_NO_ERROR(gl.getError(), "glDrawArrays() call failed.");
1000 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dst_to_id, 0); /* level */
1001 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, src_to_id,
1003 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up framebuffer objects for the blitting operation");
1009 gl.clearBufferuiv(GL_COLOR, 0, clear_color_dst);
1010 GLU_EXPECT_NO_ERROR(gl.getError(), "glClearBufferiv() call failed");
1017 gl.blitFramebuffer(0, /* srcX0 */
1026 GLU_EXPECT_NO_ERROR(gl.getError(), "glBlitFramebuffer() call failed.");
1029 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, dst_to_id, 0); /* level */
1030 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure the read framebuffer");
1036 gl.readPixels(0, /* x */
1041 GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels() call failed");
1118 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1122 gl.deleteFramebuffers(1, &fbo_draw_id);
1129 gl.deleteFramebuffers(1, &fbo_read_id);
1136 gl.deleteTextures(1, &dst_to_id);
1143 gl.deleteTextures(1, &src_to_id);
1160 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1163 gl.genTextures(1, &dst_to_id);
1164 gl.genTextures(1, &src_to_id);
1166 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, dst_to_id);
1167 gl.bindTexture(GL_TEXTURE_2D, src_to_id);
1169 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up texture objects");
1171 gl.texStorage2D(GL_TEXTURE_2D, 2, /* levels */
1175 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2D() call failed for GL_TEXTURE_2D texture target");
1177 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2, /* samples */
1182 GLU_EXPECT_NO_ERROR(gl.getError(),
1183 "gl.texStorage2DMultisample() call failed for GL_TEXTURE_2D_MULTISAMPLE texture target");
1186 gl.genFramebuffers(1, &fbo_draw_id);
1187 gl.genFramebuffers(1, &fbo_read_id);
1188 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_draw_id);
1189 gl.bindFramebuffer(GL_READ_FRAMEBUFFER, fbo_read_id);
1191 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up framebuffer objects");
1198 gl.framebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, src_to_id, 0); /* level */
1200 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up read framebuffer's attachments");
1202 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE,
1206 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up draw framebuffer's attachments");
1219 gl.blitFramebuffer(0, /* srcX0 */
1230 glw::GLenum error_code = gl.getError();
1275 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1278 gl.useProgram(0);
1281 gl.bindTransformFeedback(GL_TRANSFORM_FEEDBACK, 0);
1284 gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 0);
1287 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
1290 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0);
1295 gl.deleteTextures(1, &to_2d_multisample_id);
1303 gl.deleteBuffers(1, &bo_id);
1311 gl.deleteFramebuffers(1, &fbo_id);
1319 gl.deleteTransformFeedbacks(1, &tfo_id);
1327 gl.deleteShader(fs_draw_id);
1335 gl.deleteShader(vs_verify_id);
1343 gl.deleteShader(vs_draw_id);
1351 gl.deleteProgram(po_verify_id);
1359 gl.deleteProgram(po_draw_id);
1371 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1374 gl.genTextures(1, &to_2d_multisample_id);
1376 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures() call failed");
1384 gl.genBuffers(1, &bo_id);
1386 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenBuffers() call failed");
1394 gl.genFramebuffers(1, &fbo_id);
1396 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenFramebuffers() call failed");
1404 gl.genTransformFeedbacks(1, &tfo_id);
1406 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTransformFeedbacks() call failed");
1414 vs_draw_id = gl.createShader(GL_VERTEX_SHADER);
1416 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for vs_draw_id");
1419 vs_verify_id = gl.createShader(GL_VERTEX_SHADER);
1421 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for vs_verify_id");
1424 fs_draw_id = gl.createShader(GL_FRAGMENT_SHADER);
1426 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for fs_draw_id");
1429 po_draw_id = gl.createProgram();
1431 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() call failed for po_draw_id");
1434 po_verify_id = gl.createProgram();
1436 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() call failed for po_verify_id");
1446 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1529 gl.attachShader(po_draw_id, vs_draw_id);
1530 gl.attachShader(po_draw_id, fs_draw_id);
1532 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure po_draw_id program object");
1535 gl.attachShader(po_verify_id, vs_verify_id);
1536 gl.attachShader(po_verify_id, fs_draw_id);
1538 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure po_verify_id program object");
1543 gl.transformFeedbackVaryings(po_verify_id, 1, &vs_verify_varying_name, GL_SEPARATE_ATTRIBS);
1552 glw::GLuint n_bits_location = gl.getUniformLocation(po_verify_id, "n_bits");
1553 glw::GLuint n_bit_on_location = gl.getUniformLocation(po_verify_id, "n_bit_on");
1556 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
1559 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_id);
1561 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a framebuffer object");
1564 gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, bo_id);
1567 gl.bindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfo_id);
1570 gl.bindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, bo_id);
1573 gl.bufferData(GL_TRANSFORM_FEEDBACK_BUFFER, sizeof(glw::GLfloat), NULL, GL_STATIC_DRAW);
1576 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id,
1579 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up zeroth color attachment");
1582 gl.enable(GL_SAMPLE_MASK);
1584 GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_SAMPLE_MASK) call generated an unexpected error");
1594 gl.getIntegerv(GL_MAX_SAMPLES, &gl_max_samples_value);
1596 GLU_EXPECT_NO_ERROR(gl.getError(), "Failed to retrieve GL_MAX_SAMPLES value");
1614 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, mask_bits_to_check, /* samples */
1620 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2DMultisample() call failed");
1625 glw::GLenum fbo_completeness_status = gl.checkFramebufferStatus(GL_DRAW_FRAMEBUFFER);
1643 gl.clearBufferfv(GL_COLOR, 0, clear_color_src);
1644 GLU_EXPECT_NO_ERROR(gl.getError(), "clearBufferfv() call failed");
1647 gl.useProgram(po_draw_id);
1650 gl.sampleMaski(0, 1 << n_bit);
1657 gl.drawArrays(GL_TRIANGLE_FAN, 0, /* first */
1661 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
1664 gl.enable(GL_RASTERIZER_DISCARD);
1667 gl.useProgram(po_verify_id);
1670 gl.uniform1ui(n_bits_location, mask_bits_to_check);
1671 gl.uniform1ui(n_bit_on_location, n_bit);
1674 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
1677 gl.beginTransformFeedback(GL_POINTS);
1680 gl.drawArrays(GL_POINTS, 0, 1);
1683 gl.endTransformFeedback();
1686 gl.disable(GL_RASTERIZER_DISCARD);
1689 GLU_EXPECT_NO_ERROR(gl.getError(), "Transform feedback failed");
1692 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_id);
1696 (glw::GLfloat*)gl.mapBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0, 4, GL_MAP_READ_BIT);
1698 GLU_EXPECT_NO_ERROR(gl.getError(), "glMapBufferRange() call failed");
1704 gl.unmapBuffer(GL_TRANSFORM_FEEDBACK_BUFFER);
1706 GLU_EXPECT_NO_ERROR(gl.getError(), "glUnmapBuffer() call failed");
1721 gl.deleteTextures(1, &to_2d_multisample_id);
1727 gl.genTextures(1, &to_2d_multisample_id);
1729 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures() call failed");
1737 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
1740 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE,
1743 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up zeroth color attachment");
1764 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1769 gl.linkProgram(id);
1770 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() call failed");
1772 gl.getProgramiv(id, GL_LINK_STATUS, &link_status);
1789 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1791 gl.shaderSource(id, 1, &source, NULL);
1792 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() call failed");
1794 gl.compileShader(id);
1795 GLU_EXPECT_NO_ERROR(gl.getError(), "glCompileShader() call failed");
1797 gl.getShaderiv(id, GL_COMPILE_STATUS, &compile_status);
1805 gl.getShaderInfoLog(id, 1024, &length, infoLog);
1841 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1844 gl.useProgram(0);
1847 gl.bindTransformFeedback(GL_TRANSFORM_FEEDBACK, 0);
1850 gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 0);
1853 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
1856 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0);
1861 gl.deleteTextures(1, &to_2d_multisample_id);
1869 gl.deleteBuffers(1, &bo_id);
1877 gl.deleteFramebuffers(1, &fbo_id);
1885 gl.deleteTransformFeedbacks(1, &tfo_id);
1893 gl.deleteShader(fs_draw_id);
1901 gl.deleteShader(vs_verify_id);
1909 gl.deleteShader(vs_draw_id);
1917 gl.deleteProgram(po_verify_id);
1925 gl.deleteProgram(po_draw_id);
1937 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1940 gl.genTextures(1, &to_2d_multisample_id);
1942 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures() call failed");
1950 gl.genBuffers(1, &bo_id);
1952 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenBuffers() call failed");
1960 gl.genFramebuffers(1, &fbo_id);
1962 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenFramebuffers() call failed");
1970 gl.genTransformFeedbacks(1, &tfo_id);
1972 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTransformFeedbacks() call failed");
1980 vs_draw_id = gl.createShader(GL_VERTEX_SHADER);
1982 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for vs_draw_id");
1985 vs_verify_id = gl.createShader(GL_VERTEX_SHADER);
1987 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for vs_verify_id");
1990 fs_draw_id = gl.createShader(GL_FRAGMENT_SHADER);
1992 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateShader() call failed for fs_draw_id");
1995 po_draw_id = gl.createProgram();
1997 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() call failed for po_draw_id");
2000 po_verify_id = gl.createProgram();
2002 GLU_EXPECT_NO_ERROR(gl.getError(), "glCreateProgram() call failed for po_verify_id");
2011 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2087 gl.attachShader(po_draw_id, vs_draw_id);
2088 gl.attachShader(po_draw_id, fs_draw_id);
2090 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure po_draw_id program object");
2093 gl.attachShader(po_verify_id, vs_verify_id);
2094 gl.attachShader(po_verify_id, fs_draw_id);
2096 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not configure po_verify_id program object");
2101 gl.transformFeedbackVaryings(po_verify_id, 1, &vs_verify_varying_name, GL_SEPARATE_ATTRIBS);
2110 glw::GLuint n_bits_location = gl.getUniformLocation(po_verify_id, "n_bits");
2111 glw::GLuint n_bit_on_location = gl.getUniformLocation(po_verify_id, "n_bit_on");
2114 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
2117 gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo_id);
2119 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a framebuffer object");
2122 gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, bo_id);
2125 gl.bindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, bo_id);
2128 gl.bindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfo_id);
2131 gl.bufferData(GL_TRANSFORM_FEEDBACK_BUFFER, sizeof(glw::GLfloat), NULL, GL_STATIC_DRAW);
2134 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id,
2137 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up zeroth color attachment");
2140 gl.enable(GL_SAMPLE_MASK);
2142 GLU_EXPECT_NO_ERROR(gl.getError(), "glEnable(GL_SAMPLE_MASK) call generated an unexpected error");
2214 gl.getInternalformativ(GL_TEXTURE_2D_MULTISAMPLE, /* target */
2218 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetInternalformativ() failed");
2235 gl.genTextures(1, &to_2d_multisample_id);
2237 GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures() call failed");
2245 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
2248 gl.framebufferTexture2D(GL_DRAW_FRAMEBUFFER, attachment, GL_TEXTURE_2D_MULTISAMPLE,
2251 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up attachment");
2255 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, internalformat_max_samples, /* samples */
2261 GLU_EXPECT_NO_ERROR(gl.getError(), "glTexStorage2DMultisample() call failed");
2267 gl.useProgram(po_draw_id);
2270 gl.sampleMaski(0, 1 << n_bit);
2277 gl.drawArrays(GL_TRIANGLE_FAN, 0, /* first */
2281 gl.enable(GL_RASTERIZER_DISCARD);
2284 gl.useProgram(po_verify_id);
2287 gl.uniform1i(n_bits_location, mask_bits_to_check);
2288 gl.uniform1i(n_bit_on_location, n_bit);
2291 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
2294 gl.beginTransformFeedback(GL_POINTS);
2297 gl.drawArrays(GL_POINTS, 0, 1);
2300 gl.endTransformFeedback();
2303 gl.disable(GL_RASTERIZER_DISCARD);
2306 GLU_EXPECT_NO_ERROR(gl.getError(), "Transform feedback failed");
2309 const glw::GLfloat* mapped_bo = (glw::GLfloat*)gl.mapBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, GL_READ_ONLY);
2311 GLU_EXPECT_NO_ERROR(gl.getError(), "glMapBuffer() call failed");
2317 gl.unmapBuffer(GL_TRANSFORM_FEEDBACK_BUFFER);
2319 GLU_EXPECT_NO_ERROR(gl.getError(), "glUnmapBuffer() call failed");
2329 gl.deleteTextures(1, &to_2d_multisample_id);
2349 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2352 gl.linkProgram(id);
2353 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() call failed");
2355 gl.getProgramiv(id, GL_LINK_STATUS, &link_status);
2372 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2374 gl.shaderSource(id, 1, &source, NULL);
2375 GLU_EXPECT_NO_ERROR(gl.getError(), "glShaderSource() call failed");
2377 gl.compileShader(id);
2378 GLU_EXPECT_NO_ERROR(gl.getError(), "glCompileShader() call failed");
2380 gl.getShaderiv(id, GL_COMPILE_STATUS, &compile_status);
2409 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2413 gl.deleteFramebuffers(1, &fbo_id);
2420 gl.deleteShader(fs_id);
2427 gl.deleteProgram(po_id);
2434 gl.deleteTextures(1, &to_2d_multisample_id);
2441 gl.deleteTextures(1, &to_2d_multisample_array_id);
2448 gl.deleteShader(vs_id);
2465 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2470 gl.genTextures(1, &to_2d_multisample_array_id);
2473 gl.genTextures(1, &to_2d_multisample_id);
2477 gl.activeTexture(GL_TEXTURE0);
2478 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, to_2d_multisample_array_id);
2479 gl.texStorage3DMultisample(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, 2, /* samples */
2485 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up 2D multisample array texture storage");
2488 gl.activeTexture(GL_TEXTURE1);
2489 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
2490 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2, /* samples */
2495 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up 2D multisample texture storage");
2537 fs_id = gl.createShader(GL_FRAGMENT_SHADER);
2539 gl.shaderSource(fs_id, 1 /* count */, &fs_body, NULL);
2540 gl.compileShader(fs_id);
2541 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a fragment shader");
2543 gl.getShaderiv(fs_id, GL_COMPILE_STATUS, &compile_status);
2544 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not query fragment shader's compile status");
2567 vs_id = gl.createShader(GL_VERTEX_SHADER);
2569 gl.shaderSource(vs_id, 1 /* count */, &vs_body, NULL);
2570 gl.compileShader(vs_id);
2571 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a vertex shader");
2573 gl.getShaderiv(vs_id, GL_COMPILE_STATUS, &compile_status);
2574 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not query vertex shader's compile status");
2582 po_id = gl.createProgram();
2584 gl.attachShader(po_id, fs_id);
2585 gl.attachShader(po_id, vs_id);
2587 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a program object");
2592 gl.linkProgram(po_id);
2593 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() call failed.");
2595 gl.getProgramiv(po_id, GL_LINK_STATUS, &link_status);
2596 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetProgramiv() call failed.");
2604 glw::GLint sampler_2d_array_location = gl.getUniformLocation(po_id, "sampler_2d_array");
2605 glw::GLint sampler_2d_location = gl.getUniformLocation(po_id, "sampler_2d");
2612 gl.useProgram(po_id);
2613 GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() call failed.");
2615 gl.uniform1i(sampler_2d_array_location, 0);
2616 gl.uniform1i(sampler_2d_location, 1);
2617 GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform1i() call(s) failed.");
2620 gl.drawArrays(GL_TRIANGLE_FAN, 0 /* first */, 4 /* count */);
2621 GLU_EXPECT_NO_ERROR(gl.getError(), "Rendering failed");
2636 gl.getIntegerv(GL_ALPHA_BITS, &rt_bits_alpha);
2637 gl.getIntegerv(GL_BLUE_BITS, &rt_bits_blue);
2638 gl.getIntegerv(GL_GREEN_BITS, &rt_bits_green);
2639 gl.getIntegerv(GL_RED_BITS, &rt_bits_red);
2643 gl.readPixels(0, 0, rt_width, rt_height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
2644 GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels() call failed");
2697 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2701 gl.deleteBuffers(1, &bo_id);
2708 gl.deleteFramebuffers(1, &fbo_id);
2715 gl.deleteShader(fs_id);
2722 gl.deleteProgram(po_id);
2729 gl.deleteTransformFeedbacks(1, &tfo_id);
2736 gl.deleteTextures(1, &to_2d_multisample_id);
2743 gl.deleteTextures(1, &to_2d_multisample_array_id);
2750 gl.deleteShader(vs_2d_id);
2757 gl.deleteShader(vs_2d_array_id);
2774 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2777 gl.genTransformFeedbacks(1, &tfo_id);
2778 gl.bindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfo_id);
2780 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a transform feedback object");
2783 gl.genBuffers(1, &bo_id);
2784 gl.bindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, bo_id);
2785 gl.bufferData(GL_TRANSFORM_FEEDBACK_BUFFER, sizeof(float), NULL, GL_STATIC_READ);
2787 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a buffer object");
2792 gl.genTextures(1, &to_2d_multisample_array_id);
2795 gl.genTextures(1, &to_2d_multisample_id);
2803 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, to_2d_multisample_array_id);
2806 gl.bindTexture(GL_TEXTURE_2D_MULTISAMPLE, to_2d_multisample_id);
2808 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up texture objects");
2810 gl.texStorage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2, /* samples */
2814 GLU_EXPECT_NO_ERROR(gl.getError(),
2819 gl.texStorage3DMultisample(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, 2, /* samples */
2825 gl.getError(),
2837 fs_id = gl.createShader(GL_FRAGMENT_SHADER);
2839 gl.shaderSource(fs_id, 1 /* count */, &fs_body, NULL);
2840 gl.compileShader(fs_id);
2841 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a fragment shader");
2843 gl.getShaderiv(fs_id, GL_COMPILE_STATUS, &compile_status);
2844 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not query fragment shader's compile status");
2873 vs_2d_id = gl.createShader(GL_VERTEX_SHADER);
2875 gl.shaderSource(vs_2d_id, 1 /* count */, &vs_2d_body, NULL);
2876 gl.compileShader(vs_2d_id);
2877 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a vertex shader for 2D multisample texture case");
2879 gl.getShaderiv(vs_2d_id, GL_COMPILE_STATUS, &compile_status);
2880 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not query 2D multisample texture vertex shader's compile status");
2912 vs_2d_array_id = gl.createShader(GL_VERTEX_SHADER);
2914 gl.shaderSource(vs_2d_array_id, 1 /* count */, &vs_2d_array_body, NULL);
2915 gl.compileShader(vs_2d_array_id);
2916 GLU_EXPECT_NO_ERROR(gl.getError(), "Could not set up a vertex shader for 2D multisample array texture case");
2918 gl.getShaderiv(vs_2d_array_id, GL_COMPILE_STATUS, &compile_status);
2919 GLU_EXPECT_NO_ERROR(gl.getError(),
2946 gl.deleteProgram(po_id);
2951 po_id = gl.createProgram();
2958 gl.attachShader(po_id, fs_id);
2959 gl.attachShader(po_id, vs_2d_id);
2966 gl.attachShader(po_id, fs_id);
2967 gl.attachShader(po_id, vs_2d_array_id);
2976 GLU_EXPECT_NO_ERROR(gl.getError(), "glAttachShader() call(s) failed.");
2981 gl.transformFeedbackVaryings(po_id, 1 /* count */, &varying_name, GL_INTERLEAVED_ATTRIBS);
2982 GLU_EXPECT_NO_ERROR(gl.getError(), "glTransformFeedbackVaryings() call failed.");
2987 gl.linkProgram(po_id);
2988 GLU_EXPECT_NO_ERROR(gl.getError(), "glLinkProgram() call failed.");
2990 gl.getProgramiv(po_id, GL_LINK_STATUS, &link_status);
2991 GLU_EXPECT_NO_ERROR(gl.getError(), "glGetProgramiv() call failed.");
3002 gl.bindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, bo_id);
3003 GLU_EXPECT_NO_ERROR(gl.getError(), "glBindBufferBase() call failed");
3005 gl.useProgram(po_id);
3006 GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram() call failed.");
3008 gl.beginTransformFeedback(GL_POINTS);
3010 gl.drawArrays(GL_POINTS, 0 /* first */, 1 /* count */);
3012 gl.endTransformFeedback();
3014 GLU_EXPECT_NO_ERROR(gl.getError(), "Rendering failed");
3023 data_ptr = gl.mapBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, 0 /* offset */, sizeof(float) /* size */,
3025 GLU_EXPECT_NO_ERROR(gl.getError(), "glMapBufferRange() call failed");
3030 gl.unmapBuffer(GL_TRANSFORM_FEEDBACK_BUFFER);
3031 GLU_EXPECT_NO_ERROR(gl.getError(), "glUnmapBuffer() call failed");