diff options
author | Stanislav Vorobiov <s.vorobiov@samsung.com> | 2014-03-04 20:01:02 +0400 |
---|---|---|
committer | Stanislav Vorobiov <s.vorobiov@samsung.com> | 2014-03-04 20:01:02 +0400 |
commit | 532008c1fb2b6356463d0a36496fce639f9a0b77 (patch) | |
tree | 2fd191af049c155b77acb49a922c61a456979c80 /GLESv2 | |
parent | 83c1d892f47218f95e8c9adb2d28956e19e90493 (diff) | |
download | emulator-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.y | 68 |
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"); |