diff options
author | weigao <weigao@multicorewareinc.com> | 2014-08-03 18:36:56 +0800 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-08-06 20:45:13 +0200 |
commit | 495d53b1dc0f3c32e0b76344775b9fc728e09fe5 (patch) | |
tree | a52a8159db5abb77ffbee0967235e23b805991bb /chart2/opengl | |
parent | b819026e1994287dd6a27848981aebca805c4e09 (diff) |
make pick shader work when bars scroll
Change-Id: I9a3e0e36b212ff49ad22ac0ff267d04476b4c307
Diffstat (limited to 'chart2/opengl')
-rw-r--r-- | chart2/opengl/pickingFragmentShader.glsl | 5 | ||||
-rw-r--r-- | chart2/opengl/pickingVertexShader.glsl | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/chart2/opengl/pickingFragmentShader.glsl b/chart2/opengl/pickingFragmentShader.glsl index 805789e731ed..e2fba0391442 100644 --- a/chart2/opengl/pickingFragmentShader.glsl +++ b/chart2/opengl/pickingFragmentShader.glsl @@ -6,11 +6,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - +uniform float minCoordX; +varying vec3 positionWorldspace; varying vec4 fragmentColor; void main() { + if (positionWorldspace.x <= minCoordX) + discard; gl_FragColor = fragmentColor; } diff --git a/chart2/opengl/pickingVertexShader.glsl b/chart2/opengl/pickingVertexShader.glsl index f32e3fd38a91..df71ae170f01 100644 --- a/chart2/opengl/pickingVertexShader.glsl +++ b/chart2/opengl/pickingVertexShader.glsl @@ -9,11 +9,16 @@ attribute vec3 vPosition; uniform mat4 MVP; +uniform mat4 M; uniform vec4 vColor; +uniform float minCoordX; +uniform float maxCoordX; varying vec4 fragmentColor; - +varying vec3 positionWorldspace; void main() { + positionWorldspace = (M * vec4(vPosition,1)).xyz; + positionWorldspace.x = clamp(positionWorldspace.x, minCoordX, maxCoordX); gl_Position = MVP * vec4(vPosition, 1); fragmentColor = vColor; } |