From d5eb5240f8c35016927e89bf9d186addc09b83fa Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 18 Feb 2016 12:17:10 -0800 Subject: Revert "[gl] Updated CustomLayer tests" These tests are intended to reflect how someone using the custom layer feature might actually write their callbacks. Therefore the callbacks should not use mbgl-specific classes. This reverts commit 69112a2a09404cc0ee7089a9f1f81ff1feac586f. --- test/api/custom_layer.cpp | 54 ++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 24 deletions(-) (limited to 'test') diff --git a/test/api/custom_layer.cpp b/test/api/custom_layer.cpp index 2a831b50d9..ef98b05983 100644 --- a/test/api/custom_layer.cpp +++ b/test/api/custom_layer.cpp @@ -7,46 +7,52 @@ #include #include #include -#include using namespace mbgl; static const GLchar * vertexShaderSource = "attribute vec2 a_pos; void main() { gl_Position = vec4(a_pos, 0, 1); }"; static const GLchar * fragmentShaderSource = "void main() { gl_FragColor = vec4(0, 1, 0, 1); }"; +// Not using any mbgl-specific stuff (other than a basic error-checking macro) in the +// layer implementation because it is intended to reflect how someone using custom layers +// might actually write their own implementation. + class TestLayer { public: ~TestLayer() { if (program) { - MBGL_CHECK_ERROR(glDetachShader(program.getID(), vertexShader.getID())); - MBGL_CHECK_ERROR(glDetachShader(program.getID(), fragmentShader.getID())); + MBGL_CHECK_ERROR(glDeleteBuffers(1, &buffer)); + MBGL_CHECK_ERROR(glDetachShader(program, vertexShader)); + MBGL_CHECK_ERROR(glDetachShader(program, fragmentShader)); + MBGL_CHECK_ERROR(glDeleteShader(vertexShader)); + MBGL_CHECK_ERROR(glDeleteShader(fragmentShader)); + MBGL_CHECK_ERROR(glDeleteProgram(program)); } } void initialize() { - program.create(); - vertexShader.create(); - fragmentShader.create(); - - MBGL_CHECK_ERROR(glShaderSource(vertexShader.getID(), 1, &vertexShaderSource, nullptr)); - MBGL_CHECK_ERROR(glCompileShader(vertexShader.getID())); - MBGL_CHECK_ERROR(glAttachShader(program.getID(), vertexShader.getID())); - MBGL_CHECK_ERROR(glShaderSource(fragmentShader.getID(), 1, &fragmentShaderSource, nullptr)); - MBGL_CHECK_ERROR(glCompileShader(fragmentShader.getID())); - MBGL_CHECK_ERROR(glAttachShader(program.getID(), fragmentShader.getID())); - MBGL_CHECK_ERROR(glLinkProgram(program.getID())); - a_pos = glGetAttribLocation(program.getID(), "a_pos"); + program = MBGL_CHECK_ERROR(glCreateProgram()); + vertexShader = MBGL_CHECK_ERROR(glCreateShader(GL_VERTEX_SHADER)); + fragmentShader = MBGL_CHECK_ERROR(glCreateShader(GL_FRAGMENT_SHADER)); - buffer.create(); - MBGL_CHECK_ERROR(glBindBuffer(GL_ARRAY_BUFFER, buffer.getID())); + MBGL_CHECK_ERROR(glShaderSource(vertexShader, 1, &vertexShaderSource, nullptr)); + MBGL_CHECK_ERROR(glCompileShader(vertexShader)); + MBGL_CHECK_ERROR(glAttachShader(program, vertexShader)); + MBGL_CHECK_ERROR(glShaderSource(fragmentShader, 1, &fragmentShaderSource, nullptr)); + MBGL_CHECK_ERROR(glCompileShader(fragmentShader)); + MBGL_CHECK_ERROR(glAttachShader(program, fragmentShader)); + MBGL_CHECK_ERROR(glLinkProgram(program)); + a_pos = glGetAttribLocation(program, "a_pos"); - GLfloat background[] = { -1,-1, 1,-1,-1, 1, 1, 1 }; + GLfloat background[] = { -1,-1, 1,-1, -1,1, 1,1 }; + MBGL_CHECK_ERROR(glGenBuffers(1, &buffer)); + MBGL_CHECK_ERROR(glBindBuffer(GL_ARRAY_BUFFER, buffer)); MBGL_CHECK_ERROR(glBufferData(GL_ARRAY_BUFFER, 8 * sizeof(GLfloat), background, GL_STATIC_DRAW)); } void render() { - MBGL_CHECK_ERROR(glUseProgram(program.getID())); - MBGL_CHECK_ERROR(glBindBuffer(GL_ARRAY_BUFFER, buffer.getID())); + MBGL_CHECK_ERROR(glUseProgram(program)); + MBGL_CHECK_ERROR(glBindBuffer(GL_ARRAY_BUFFER, buffer)); MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_pos)); MBGL_CHECK_ERROR(glVertexAttribPointer(a_pos, 2, GL_FLOAT, GL_FALSE, 0, NULL)); MBGL_CHECK_ERROR(glDisable(GL_STENCIL_TEST)); @@ -54,10 +60,10 @@ public: MBGL_CHECK_ERROR(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4)); } - gl::ProgramHolder program; - gl::ShaderHolder vertexShader = { GL_VERTEX_SHADER }; - gl::ShaderHolder fragmentShader = { GL_FRAGMENT_SHADER }; - gl::BufferHolder buffer; + GLuint program = 0; + GLuint vertexShader = 0; + GLuint fragmentShader = 0; + GLuint buffer = 0; GLuint a_pos = 0; }; -- cgit v1.2.1