| |
| group types "Types" |
| case float |
| version 310 es |
| desc "varying of type float" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input float in0 = [ -1.25 | -25.65 | 1.0 | 2.25 | 3.4 | 16.0 ]; |
| output float out0 = [ -1.25 | -25.65 | 1.0 | 2.25 | 3.4 | 16.0 ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump float vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump float vtx_var[]; |
| out mediump float tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump float tc_out[]; |
| out mediump float te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mediump float te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case vec2 |
| version 310 es |
| desc "varying of type vec2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input vec2 in0 = [ vec2(-1.25, 1.25) | vec2(-25.65, -7.25) | vec2(0.0, 1.0) | vec2(2.25, 2.25) | vec2(3.4, 9.5) | vec2(16.0, 32.0) ]; |
| output vec2 out0 = [ vec2(-1.25, 1.25) | vec2(-25.65, -7.25) | vec2(0.0, 1.0) | vec2(2.25, 2.25) | vec2(3.4, 9.5) | vec2(16.0, 32.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump vec2 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump vec2 vtx_var[]; |
| out mediump vec2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump vec2 tc_out[]; |
| out mediump vec2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in vec2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case vec3 |
| version 310 es |
| desc "varying of type vec3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input vec3 in0 = [ vec3(-1.25, 1.25, -9.5) | vec3(-25.65, -7.25, 14.21) | vec3(0.0, 1.0, -1.0) | vec3(2.25, 2.25, 22.5) | vec3(3.4, 9.5, 19.5) | vec3(16.0, 32.0, -64.0) ]; |
| output vec3 out0 = [ vec3(-1.25, 1.25, -9.5) | vec3(-25.65, -7.25, 14.21) | vec3(0.0, 1.0, -1.0) | vec3(2.25, 2.25, 22.5) | vec3(3.4, 9.5, 19.5) | vec3(16.0, 32.0, -64.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump vec3 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump vec3 vtx_var[]; |
| out mediump vec3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump vec3 tc_out[]; |
| out mediump vec3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in vec3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case vec4 |
| version 310 es |
| desc "varying of type vec4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input vec4 in0 = [ vec4(-1.25, 1.25, -9.5, -12.2) | vec4(-25.65, -7.25, 14.21, -77.7) | vec4(0.0, 1.0, -1.0, 2.0) | vec4(2.25, 2.25, 22.5, 225.0) | vec4(3.4, 9.5, 19.5, 29.5) | vec4(16.0, 32.0, -64.0, -128.0) ]; |
| output vec4 out0 = [ vec4(-1.25, 1.25, -9.5, -12.2) | vec4(-25.65, -7.25, 14.21, -77.7) | vec4(0.0, 1.0, -1.0, 2.0) | vec4(2.25, 2.25, 22.5, 225.0) | vec4(3.4, 9.5, 19.5, 29.5) | vec4(16.0, 32.0, -64.0, -128.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump vec4 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump vec4 vtx_var[]; |
| out mediump vec4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump vec4 tc_out[]; |
| out mediump vec4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in vec4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat2 |
| version 310 es |
| desc "varying of type mat2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat2 in0 = [ mat2(1.0, 1.0, 1.0, 1.0) | mat2(-1.25, 1.25, -9.5, -12.2) | mat2(-25.65, -7.25, 14.21, -77.7) | mat2(0.0, 1.0, -1.0, 2.0) | mat2(2.25, 2.25, 22.5, 225.0) | mat2(3.4, 9.5, 19.5, 29.5) | mat2(16.0, 32.0, -64.0, -128.0) ]; |
| output mat2 out0 = [ mat2(1.0, 1.0, 1.0, 1.0) | mat2(-1.25, 1.25, -9.5, -12.2) | mat2(-25.65, -7.25, 14.21, -77.7) | mat2(0.0, 1.0, -1.0, 2.0) | mat2(2.25, 2.25, 22.5, 225.0) | mat2(3.4, 9.5, 19.5, 29.5) | mat2(16.0, 32.0, -64.0, -128.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat2 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat2 vtx_var[]; |
| out mediump mat2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat2 tc_out[]; |
| out mediump mat2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat2x3 |
| version 310 es |
| desc "varying of type mat2x3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat2x3 in0 = [ mat2x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ]; |
| output mat2x3 out0 = [ mat2x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat2x3 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat2x3 vtx_var[]; |
| out mediump mat2x3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat2x3 tc_out[]; |
| out mediump mat2x3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat2x3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat2x4 |
| version 310 es |
| desc "varying of type mat2x4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat2x4 in0 = [ mat2x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ]; |
| output mat2x4 out0 = [ mat2x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat2x4 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat2x4 vtx_var[]; |
| out mediump mat2x4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat2x4 tc_out[]; |
| out mediump mat2x4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat2x4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat3x2 |
| version 310 es |
| desc "varying of type mat3x2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat3x2 in0 = [ mat3x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ]; |
| output mat3x2 out0 = [ mat3x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat3x2 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat3x2 vtx_var[]; |
| out mediump mat3x2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat3x2 tc_out[]; |
| out mediump mat3x2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat3x2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat3 |
| version 310 es |
| desc "varying of type mat3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat3 in0 = [ mat3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 9.9) | mat3(0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0, -9.9) | mat3(3.4, 9.5, 19.5, 29.5, 16.0, 32.0, -64.0, -128.0, 256.0) ]; |
| output mat3 out0 = [ mat3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 9.9) | mat3(0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0, -9.9) | mat3(3.4, 9.5, 19.5, 29.5, 16.0, 32.0, -64.0, -128.0, 256.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat3 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat3 vtx_var[]; |
| out mediump mat3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat3 tc_out[]; |
| out mediump mat3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat3x4 |
| version 310 es |
| desc "varying of type mat3x4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat3x4 in0 = [ mat3x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ]; |
| output mat3x4 out0 = [ mat3x4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat3x4 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat3x4 vtx_var[]; |
| out mediump mat3x4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat3x4 tc_out[]; |
| out mediump mat3x4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat3x4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat4x2 |
| version 310 es |
| desc "varying of type mat4x2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat4x2 in0 = [ mat4x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ]; |
| output mat4x2 out0 = [ mat4x2(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat4x2 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat4x2 vtx_var[]; |
| out mediump mat4x2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat4x2 tc_out[]; |
| out mediump mat4x2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat4x2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat4x3 |
| version 310 es |
| desc "varying of type mat4x3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat4x3 in0 = [ mat4x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ]; |
| output mat4x3 out0 = [ mat4x3(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat4x3 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat4x3 vtx_var[]; |
| out mediump mat4x3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat4x3 tc_out[]; |
| out mediump mat4x3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat4x3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case mat4 |
| version 310 es |
| desc "varying of type mat4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input mat4 in0 = [ mat4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0) ]; |
| output mat4 out0 = [ mat4(-1.25, 1.25, -9.5, -12.2, -25.65, -7.25, 14.21, -77.7, 0.0, 1.0, -1.0, 2.0, 2.25, 2.25, 22.5, 225.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out mediump mat4 vtx_var; |
| void main() |
| { |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in mediump mat4 vtx_var[]; |
| out mediump mat4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in mediump mat4 tc_out[]; |
| out mediump mat4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in mat4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case int |
| version 310 es |
| desc "varying of type int" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input int in0 = [ -1 | -25 | 1 | 2 | 3 | 16 ]; |
| output int out0 = [ -1 | -25 | 1 | 2 | 3 | 16 ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump int vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump int vtx_var[]; |
| flat out mediump int tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump int tc_out[]; |
| flat out mediump int te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in int te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case ivec2 |
| version 310 es |
| desc "varying of type ivec2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input ivec2 in0 = [ ivec2(-1, 1) | ivec2(-25, 25) | ivec2(1, 1) | ivec2(2, 3) | ivec2(16, 17) ]; |
| output ivec2 out0 = [ ivec2(-1, 1) | ivec2(-25, 25) | ivec2(1, 1) | ivec2(2, 3) | ivec2(16, 17) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump ivec2 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump ivec2 vtx_var[]; |
| flat out mediump ivec2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump ivec2 tc_out[]; |
| flat out mediump ivec2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in ivec2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case ivec3 |
| version 310 es |
| desc "varying of type ivec3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input ivec3 in0 = [ ivec3(-1, 1, -2) | ivec3(-25, 25, -3) | ivec3(1, 1, 1) | ivec3(2, 3, 4) | ivec3(16, 17, 18) ]; |
| output ivec3 out0 = [ ivec3(-1, 1, -2) | ivec3(-25, 25, -3) | ivec3(1, 1, 1) | ivec3(2, 3, 4) | ivec3(16, 17, 18) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump ivec3 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump ivec3 vtx_var[]; |
| flat out mediump ivec3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump ivec3 tc_out[]; |
| flat out mediump ivec3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in ivec3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case ivec4 |
| version 310 es |
| desc "varying of type ivec4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input ivec4 in0 = [ ivec4(-1, 1, -2, 2) | ivec4(-25, 25, -3, 3) | ivec4(1, 1, 1, 1) | ivec4(2, 3, 4, 5) | ivec4(16, 17, 18, 19) ]; |
| output ivec4 out0 = [ ivec4(-1, 1, -2, 2) | ivec4(-25, 25, -3, 3) | ivec4(1, 1, 1, 1) | ivec4(2, 3, 4, 5) | ivec4(16, 17, 18, 19) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump ivec4 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump ivec4 vtx_var[]; |
| flat out mediump ivec4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump ivec4 tc_out[]; |
| flat out mediump ivec4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in ivec4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case uint |
| version 310 es |
| desc "varying of type int" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input uint in0 = [ 1 | 2 | 3 | 16 ]; |
| output uint out0 = [ 1 | 2 | 3 | 16 ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump uint vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump uint vtx_var[]; |
| flat out mediump uint tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump uint tc_out[]; |
| flat out mediump uint te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in uint te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case uvec2 |
| version 310 es |
| desc "varying of type uvec2" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input uvec2 in0 = [ uvec2(1, 1) | uvec2(25, 25) | uvec2(1, 1) | uvec2(2, 3) | uvec2(16, 17) ]; |
| output uvec2 out0 = [ uvec2(1, 1) | uvec2(25, 25) | uvec2(1, 1) | uvec2(2, 3) | uvec2(16, 17) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump uvec2 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump uvec2 vtx_var[]; |
| flat out mediump uvec2 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump uvec2 tc_out[]; |
| flat out mediump uvec2 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in uvec2 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case uvec3 |
| version 310 es |
| desc "varying of type uvec3" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input uvec3 in0 = [ uvec3(1, 1, 2) | uvec3(25, 25, 3) | uvec3(1, 1, 1) | uvec3(2, 3, 4) | uvec3(16, 17, 18) ]; |
| output uvec3 out0 = [ uvec3(1, 1, 2) | uvec3(25, 25, 3) | uvec3(1, 1, 1) | uvec3(2, 3, 4) | uvec3(16, 17, 18) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump uvec3 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump uvec3 vtx_var[]; |
| flat out mediump uvec3 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump uvec3 tc_out[]; |
| flat out mediump uvec3 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in uvec3 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case uvec4 |
| version 310 es |
| desc "varying of type uvec4" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input uvec4 in0 = [ uvec4(1, 1, 2, 2) | uvec4(25, 25, 3, 3) | uvec4(1, 1, 1, 1) | uvec4(2, 3, 4, 5) | uvec4(16, 17, 18, 19) ]; |
| output uvec4 out0 = [ uvec4(1, 1, 2, 2) | uvec4(25, 25, 3, 3) | uvec4(1, 1, 1, 1) | uvec4(2, 3, 4, 5) | uvec4(16, 17, 18, 19) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| flat out mediump uvec4 vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| flat in mediump uvec4 vtx_var[]; |
| flat out mediump uvec4 tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID] = vtx_var[gl_InvocationID]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| flat in mediump uvec4 tc_out[]; |
| flat out mediump uvec4 te_out; |
| void main() |
| { |
| te_out = tc_out[2]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| ${FRAGMENT_DECLARATIONS} |
| flat in uvec4 te_out; |
| void main() |
| { |
| out0 = te_out; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case float_struct |
| version 310 es |
| desc "varying of struct type containing float" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| values |
| { |
| input float in0 = [ -1.25 | -25.65 | 1.0 | 2.25 | 3.4 | 16.0 ]; |
| output float out0 = [ -1.25 | -25.65 | 1.0 | 2.25 | 3.4 | 16.0 ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| struct S { mediump float val; }; |
| out S vtx_var; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| vtx_var.val = in0; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| struct S { mediump float val; }; |
| in S vtx_var[]; |
| out S tc_out[]; |
| void main() |
| { |
| tc_out[gl_InvocationID].val = vtx_var[gl_InvocationID].val; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| struct S { mediump float val; }; |
| in S tc_out[]; |
| out S te_out; |
| void main() |
| { |
| te_out.val = tc_out[2].val; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| struct S { mediump float val; }; |
| in S te_out; |
| void main() |
| { |
| out0 = te_out.val; |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| |
| case float_array |
| version 310 es |
| desc "varying of float array type" |
| require extension { "GL_OES_tessellation_shader" | "GL_EXT_tessellation_shader" } in { tessellation_control, tessellation_evaluation } |
| require extension { "GL_OES_shader_io_blocks" | "GL_EXT_shader_io_blocks" } in { vertex, fragment } |
| values |
| { |
| input vec2 in0 = [ vec2(-1.25, 1.25) | vec2(-25.65, -7.25) | vec2(0.0, 1.0) | vec2(2.25, 2.25) | vec2(3.4, 9.5) | vec2(16.0, 32.0) ]; |
| output vec2 out0 = [ vec2(-1.25, 1.25) | vec2(-25.65, -7.25) | vec2(0.0, 1.0) | vec2(2.25, 2.25) | vec2(3.4, 9.5) | vec2(16.0, 32.0) ]; |
| } |
| vertex "" |
| #version 310 es |
| ${VERTEX_DECLARATIONS} |
| out VtxOutBlockName { mediump float vtx_var[2]; } instanceName; |
| void main() |
| { |
| ${VERTEX_SETUP} |
| instanceName.vtx_var[0] = in0.x; |
| instanceName.vtx_var[1] = in0.y; |
| ${VERTEX_OUTPUT} |
| } |
| "" |
| tessellation_control "" |
| #version 310 es |
| ${TESSELLATION_CONTROL_DECLARATIONS} |
| in VtxOutBlockName { mediump float vtx_var[2]; } inInstanceName[]; |
| out TCOutBlockName { mediump float vtx_var[2]; } outInstanceName[]; |
| void main() |
| { |
| outInstanceName[gl_InvocationID].vtx_var[0] = inInstanceName[gl_InvocationID].vtx_var[0]; |
| outInstanceName[gl_InvocationID].vtx_var[1] = inInstanceName[gl_InvocationID].vtx_var[1]; |
| ${TESSELLATION_CONTROL_OUTPUT} |
| } |
| "" |
| tessellation_evaluation "" |
| #version 310 es |
| ${TESSELLATION_EVALUATION_DECLARATIONS} |
| in TCOutBlockName { mediump float vtx_var[2]; } inInstanceName[]; |
| out TEOutBlockName { mediump float vtx_var[2]; } outInstanceName; |
| void main() |
| { |
| outInstanceName.vtx_var[0] = inInstanceName[2].vtx_var[0]; |
| outInstanceName.vtx_var[1] = inInstanceName[2].vtx_var[1]; |
| ${TESSELLATION_EVALUATION_OUTPUT} |
| } |
| "" |
| fragment "" |
| #version 310 es |
| precision mediump float; |
| ${FRAGMENT_DECLARATIONS} |
| in TEOutBlockName { mediump float vtx_var[2]; } inInstanceName; |
| void main() |
| { |
| out0 = vec2(inInstanceName.vtx_var[0], inInstanceName.vtx_var[1]); |
| ${FRAGMENT_OUTPUT} |
| } |
| "" |
| end |
| end |