summaryrefslogtreecommitdiff
path: root/GLESv2
diff options
context:
space:
mode:
authorStanislav Vorobiov <s.vorobiov@samsung.com>2014-03-04 20:01:02 +0400
committerStanislav Vorobiov <s.vorobiov@samsung.com>2014-03-04 20:01:02 +0400
commit532008c1fb2b6356463d0a36496fce639f9a0b77 (patch)
tree2fd191af049c155b77acb49a922c61a456979c80 /GLESv2
parent83c1d892f47218f95e8c9adb2d28956e19e90493 (diff)
downloademulator-yagl-532008c1fb2b6356463d0a36496fce639f9a0b77.tar.gz
emulator-yagl-532008c1fb2b6356463d0a36496fce639f9a0b77.tar.bz2
emulator-yagl-532008c1fb2b6356463d0a36496fce639f9a0b77.zip
YaGL: Fix for texture2D, texture2DProj, etc. bias parameter
bias parameter in texture2D, texture2DProj, etc. is only available in fragment shader Change-Id: Ica52e929d68e114237c970623197d81b32c12098
Diffstat (limited to 'GLESv2')
-rw-r--r--GLESv2/yagl_glsl_parser.y68
1 files changed, 41 insertions, 27 deletions
diff --git a/GLESv2/yagl_glsl_parser.y b/GLESv2/yagl_glsl_parser.y
index a88a1d3..637c019 100644
--- a/GLESv2/yagl_glsl_parser.y
+++ b/GLESv2/yagl_glsl_parser.y
@@ -343,9 +343,11 @@ expression
if (state->patch_gl2) {
if (!state->texture1d_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture1D(sampler1D sampler, float coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture1D(sampler1D sampler, float coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture1D(sampler1D sampler, float coord) {\n");
yagl_glsl_state_append_header(state, " return texture(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -360,15 +362,17 @@ expression
if (state->patch_gl2) {
if (!state->texture1dproj_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec2 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec2 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec4 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec2 coord) {\n");
yagl_glsl_state_append_header(state, " return textureProj(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
- yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec4 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
yagl_glsl_state_append_header(state, "vec4 texture1DProj(sampler1D sampler, vec4 coord) {\n");
yagl_glsl_state_append_header(state, " return textureProj(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -414,9 +418,11 @@ expression
if (state->patch_gl2) {
if (!state->texture2d_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture2D(sampler2D sampler, vec2 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture2D(sampler2D sampler, vec2 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture2D(sampler2D sampler, vec2 coord) {\n");
yagl_glsl_state_append_header(state, " return texture(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -431,15 +437,17 @@ expression
if (state->patch_gl2) {
if (!state->texture2dproj_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec3 coord) {\n");
yagl_glsl_state_append_header(state, " return textureProj(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
- yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
yagl_glsl_state_append_header(state, "vec4 texture2DProj(sampler2D sampler, vec4 coord) {\n");
yagl_glsl_state_append_header(state, " return textureProj(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -485,9 +493,11 @@ expression
if (state->patch_gl2) {
if (!state->texture3d_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture3D(sampler3D sampler, vec3 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture3D(sampler3D sampler, vec3 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture3D(sampler3D sampler, vec3 coord) {\n");
yagl_glsl_state_append_header(state, " return texture(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -502,9 +512,11 @@ expression
if (state->patch_gl2) {
if (!state->texture3dproj_declared) {
- yagl_glsl_state_append_header(state, "vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return textureProj(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 texture3DProj(sampler3D sampler, vec4 coord) {\n");
yagl_glsl_state_append_header(state, " return textureProj(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");
@@ -547,9 +559,11 @@ expression
if (state->patch_gl2) {
if (!state->texturecube_declared) {
- yagl_glsl_state_append_header(state, "vec4 textureCube(samplerCube sampler, vec3 coord, float bias) {\n");
- yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
- yagl_glsl_state_append_header(state, "}\n");
+ if (state->shader_type == GL_FRAGMENT_SHADER) {
+ yagl_glsl_state_append_header(state, "vec4 textureCube(samplerCube sampler, vec3 coord, float bias) {\n");
+ yagl_glsl_state_append_header(state, " return texture(sampler, coord, bias);\n");
+ yagl_glsl_state_append_header(state, "}\n");
+ }
yagl_glsl_state_append_header(state, "vec4 textureCube(samplerCube sampler, vec3 coord) {\n");
yagl_glsl_state_append_header(state, " return texture(sampler, coord);\n");
yagl_glsl_state_append_header(state, "}\n");