summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/icon_shader.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-11-11 16:56:20 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-12-12 12:37:54 +0100
commit5b14c85b780249b904680978744226ad2b81eec4 (patch)
treeb20291f221db7267e844e7ace4aa12b3dbba02e2 /src/mbgl/shader/icon_shader.cpp
parent0c62cd06552597966adb99183eb5ca78901a6087 (diff)
downloadqtlocation-mapboxgl-5b14c85b780249b904680978744226ad2b81eec4.tar.gz
use 4-byte aligned vertex attributes for performance reason
reverts 9d5f02ccaa051a0f3459f6fc94df807338fa2552 and 4c0b4a79017bc7c7ae864e6f961f186605be617f
Diffstat (limited to 'src/mbgl/shader/icon_shader.cpp')
-rw-r--r--src/mbgl/shader/icon_shader.cpp34
1 files changed, 7 insertions, 27 deletions
diff --git a/src/mbgl/shader/icon_shader.cpp b/src/mbgl/shader/icon_shader.cpp
index fa397fb274..0dfd67e25b 100644
--- a/src/mbgl/shader/icon_shader.cpp
+++ b/src/mbgl/shader/icon_shader.cpp
@@ -19,17 +19,12 @@ IconShader::IconShader()
a_pos = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_pos"));
a_offset = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_offset"));
- a_tex = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_tex"));
- a_angle = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_angle"));
- a_minzoom = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_minzoom"));
- a_maxzoom = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_maxzoom"));
- a_rangeend = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_rangeend"));
- a_rangestart = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_rangestart"));
- a_labelminzoom = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_labelminzoom"));
+ a_data1 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data1"));
+ a_data2 = MBGL_CHECK_ERROR(glGetAttribLocation(program, "a_data2"));
}
void IconShader::bind(char *offset) {
- const int stride = 20;
+ const int stride = 16;
MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_pos));
MBGL_CHECK_ERROR(glVertexAttribPointer(a_pos, 2, GL_SHORT, false, stride, offset + 0));
@@ -37,24 +32,9 @@ void IconShader::bind(char *offset) {
MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_offset));
MBGL_CHECK_ERROR(glVertexAttribPointer(a_offset, 2, GL_SHORT, false, stride, offset + 4));
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_labelminzoom));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_labelminzoom, 1, GL_UNSIGNED_BYTE, false, stride, offset + 8));
+ MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data1));
+ MBGL_CHECK_ERROR(glVertexAttribPointer(a_data1, 4, GL_UNSIGNED_BYTE, false, stride, offset + 8));
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_minzoom));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_minzoom, 1, GL_UNSIGNED_BYTE, false, stride, offset + 9));
-
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_maxzoom));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_maxzoom, 1, GL_UNSIGNED_BYTE, false, stride, offset + 10));
-
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_angle));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_angle, 1, GL_UNSIGNED_BYTE, false, stride, offset + 11));
-
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_rangeend));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_rangeend, 1, GL_UNSIGNED_BYTE, false, stride, offset + 12));
-
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_rangestart));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_rangestart, 1, GL_UNSIGNED_BYTE, false, stride, offset + 13));
-
- MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_tex));
- MBGL_CHECK_ERROR(glVertexAttribPointer(a_tex, 2, GL_SHORT, false, stride, offset + 16));
+ MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data2));
+ MBGL_CHECK_ERROR(glVertexAttribPointer(a_data2, 4, GL_UNSIGNED_BYTE, false, stride, offset + 12));
}