[vert.glsl] #version 120 attribute vec3 in_Position; attribute vec3 in_Color; uniform mat4 in_Matrix; varying vec3 pass_Color; void main(void) { gl_Position = in_Matrix * vec4(in_Position, 1.0); pass_Color = in_Color; } [frag.glsl] #version 120 #if defined GL_ES precision highp float; #endif varying vec3 pass_Color; void main(void) { gl_FragColor = vec4(pass_Color, 1.0); } [vert.hlsl] void main(float3 in_Vertex : POSITION, float3 in_Color : COLOR, uniform float4x4 in_Matrix, out float4 out_Position : POSITION, out float3 pass_Color : COLOR) { pass_Color = in_Color; out_Position = mul(in_Matrix, float4(in_Vertex, 1.0)); } [frag.hlsl] void main(float3 pass_Color : COLOR, out float4 out_FragColor : COLOR) { out_FragColor = float4(pass_Color, 1.0); }