summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-02-18 12:17:10 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-02-18 15:15:24 -0800
commitd5eb5240f8c35016927e89bf9d186addc09b83fa (patch)
tree8733cea5d0b2858681b167762f598b719f8d1795 /test
parenta57a88a0381d8ce65d5d466da77bddea15f7fd29 (diff)
downloadqtlocation-mapboxgl-d5eb5240f8c35016927e89bf9d186addc09b83fa.tar.gz
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.
Diffstat (limited to 'test')
-rw-r--r--test/api/custom_layer.cpp54
1 files changed, 30 insertions, 24 deletions
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 <mbgl/layer/custom_layer.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/mat4.hpp>
-#include <mbgl/gl/gl_object_store.hpp>
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;
};