diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-11-11 16:56:20 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-12-12 12:37:54 +0100 |
commit | 5b14c85b780249b904680978744226ad2b81eec4 (patch) | |
tree | b20291f221db7267e844e7ace4aa12b3dbba02e2 /src/mbgl/shader/icon_shader.cpp | |
parent | 0c62cd06552597966adb99183eb5ca78901a6087 (diff) | |
download | qtlocation-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.cpp | 34 |
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)); } |