[vert.glsl] #version 130 attribute vec4 in_Position; attribute vec4 in_Color; varying vec4 pass_Color; uniform mat4 u_projection; uniform mat4 u_view; void main() { if (in_Position.w > 0.5) gl_Position = vec4(in_Position.xyz, 1.0); else gl_Position = u_projection * u_view * vec4(in_Position.xyz, 1.0); pass_Color = in_Color; } [frag.glsl] #version 130 #if defined GL_ES precision mediump float; #endif varying vec4 pass_Color; void main() { gl_FragColor = pass_Color; } [vert.hlsl] void main(float4 in_Position : POSITION, float4 in_Color : COLOR, uniform float4x4 u_projection, uniform float4x4 u_view, out float4 out_Color : COLOR, out float4 out_Position : POSITION) { out_Position = mul(u_projection, mul(u_view, in_Position)); out_Color = in_Color; } [frag.hlsl] void main(float4 in_Color : COLOR, out float4 out_FragColor : COLOR) { out_FragColor = in_Color; }