diff --git a/ShaderLibrary/Std2D/PureColor2D.mtl b/ShaderLibrary/Std2D/PureColor2D.mtl new file mode 100644 index 00000000..9386ee1c --- /dev/null +++ b/ShaderLibrary/Std2D/PureColor2D.mtl @@ -0,0 +1,38 @@ +#Material +Name PureColor2D +Base Std2D + +#MaterialInstance +Length 16 +Stage Fragment +Code +{ + vec4 Color +} + +#Vertex +Code +{ + void main() + { + HandoverMI(); + + gl_Position=GetPosition2D(); + } +} + +#Fragment +Output +{ + vec4 Color +} + +Code +{ + void main() + { + MaterialInstance mi=GetMI(); + + Color=mi.Color; + } +} diff --git a/ShaderLibrary/Std2D/PureTexture2D.mtl b/ShaderLibrary/Std2D/PureTexture2D.mtl new file mode 100644 index 00000000..65c3f8b7 --- /dev/null +++ b/ShaderLibrary/Std2D/PureTexture2D.mtl @@ -0,0 +1,41 @@ +#Material +Name PureTexture2D +Base Std2D + +#Vertex +Input +{ + vec2 TexCoord +} + +Output +{ + vec2 TexCoord +} + +Code +{ + void main() + { + Output.TexCoord=TexCoord; + + gl_Position=GetPosition2D(); + } +} + +#Fragment + +Sampler2D TextureColor + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + Color=texture(TextureColor,Input.TexCoord); + } +} diff --git a/ShaderLibrary/Std2D/RectTexture2D.mtl b/ShaderLibrary/Std2D/RectTexture2D.mtl new file mode 100644 index 00000000..9303a5a8 --- /dev/null +++ b/ShaderLibrary/Std2D/RectTexture2D.mtl @@ -0,0 +1,70 @@ +#Material +Name RectTexture2D +Base Std2D +Prim SolidRectangles,WireRectangles + +#Vertex +Input +{ + vec4 TexCoord +} + +Output +{ + vec4 TexCoord +} + +Code +{ + void main() + { + Output.TexCoord=TexCoord; + + gl_Position=GetPosition2D(); + } +} + +#Geometry +in points +out triangle_strip,4 + +Output +{ + vec2 TexCoord +} + +Code +{ + void main() + { + vec2 vlt=gl_in[0].gl_Position.xy; + vec2 vrb=gl_in[0].gl_Position.zw; + vec2 tlt=Input[0].TexCoord.xy; + vec2 trb=Input[0].TexCoord.zw; + + gl_Position=vec4(vlt, vec2(0,1));Output.TexCoord=tlt; EmitVertex(); + gl_Position=vec4(vlt.x, vrb.y, vec2(0,1));Output.TexCoord=vec2(tlt.x,trb.y); EmitVertex(); + gl_Position=vec4(vrb.x, vlt.y, vec2(0,1));Output.TexCoord=vec2(trb.x,tlt.y); EmitVertex(); + gl_Position=vec4(vrb, vec2(0,1));Output.TexCoord=trb; EmitVertex(); + + EndPrimitive(); + } +} + + +#Fragment + +Sampler2D TextureColor + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + Color=texture(TextureColor,Input.TexCoord); + } +} diff --git a/ShaderLibrary/Std2D/RectTexture2DArray.mtl b/ShaderLibrary/Std2D/RectTexture2DArray.mtl new file mode 100644 index 00000000..da56569e --- /dev/null +++ b/ShaderLibrary/Std2D/RectTexture2DArray.mtl @@ -0,0 +1,81 @@ +#Material +Name RectTexture2DArray +Base Std2D +Prim SolidRectangles,WireRectangles + +#MaterialInstance +Length 16 +Stage Fragment +Code +{ + uvec4 id; +} + +#Vertex +Input +{ + vec4 TexCoord +} + +Output +{ + vec4 TexCoord +} + +Code +{ + void main() + { + HandoverMI(); + Output.TexCoord=TexCoord; + + gl_Position=GetPosition2D(); + } +} + +#Geometry +in points +out triangle_strip,4 + +Output +{ + vec2 TexCoord +} + +Code +{ + void main() + { + vec2 vlt=gl_in[0].gl_Position.xy; + vec2 vrb=gl_in[0].gl_Position.zw; + vec2 tlt=Input[0].TexCoord.xy; + vec2 trb=Input[0].TexCoord.zw; + + HandoverMI();gl_Position=vec4(vlt, vec2(0,1));Output.TexCoord=tlt; EmitVertex(); + HandoverMI();gl_Position=vec4(vlt.x, vrb.y, vec2(0,1));Output.TexCoord=vec2(tlt.x,trb.y); EmitVertex(); + HandoverMI();gl_Position=vec4(vrb.x, vlt.y, vec2(0,1));Output.TexCoord=vec2(trb.x,tlt.y); EmitVertex(); + HandoverMI();gl_Position=vec4(vrb, vec2(0,1));Output.TexCoord=trb; EmitVertex(); + + EndPrimitive(); + } +} + + +#Fragment + +Sampler2DArray TextureColor + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + MaterialInstance mi=GetMI(); + + Color=texture(TextureColor,vec3(Input.TexCoord,mi.id.x)); + } +} diff --git a/ShaderLibrary/Std2D/VertexColor2D.mtl b/ShaderLibrary/Std2D/VertexColor2D.mtl new file mode 100644 index 00000000..d29fc4d1 --- /dev/null +++ b/ShaderLibrary/Std2D/VertexColor2D.mtl @@ -0,0 +1,39 @@ +#Material +Name VertexColor2D +Base Std2D + +#Vertex +Input +{ + vec4 Color +} + +Output +{ + vec4 Color +} + +Code +{ + void main() + { + Output.Color=Color; + + gl_Position=GetPosition2D(); + } +} + +#Fragment + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + Color=Input.Color; + } +} diff --git a/ShaderLibrary/Std3D/VertexColor3D.mtl b/ShaderLibrary/Std3D/VertexColor3D.mtl new file mode 100644 index 00000000..927265a3 --- /dev/null +++ b/ShaderLibrary/Std3D/VertexColor3D.mtl @@ -0,0 +1,39 @@ +#Material +Name VertexColor3D +Base Std3D + +#Vertex +Input +{ + vec4 Color +} + +Output +{ + vec4 Color +} + +Code +{ + void main() + { + Output.Color=Color; + + gl_Position=GetPosition3D(); + } +} + +#Fragment + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + Color=Input.Color; + } +} diff --git a/ShaderLibrary/Std3D/VertexLum3D.mtl b/ShaderLibrary/Std3D/VertexLum3D.mtl new file mode 100644 index 00000000..035bd16e --- /dev/null +++ b/ShaderLibrary/Std3D/VertexLum3D.mtl @@ -0,0 +1,49 @@ +#Material +Name VertexLum3D +Base Std3D + +#MaterialInstance +Length 16 +Stage Vertex +Code +{ + vec4 Color +} + +#Vertex +Input +{ + float Luminance; +} + +Output +{ + vec4 Color +} + +Code +{ + void main() + { + MaterialInstance mi=GetMI(); + + Output.Color=Luminance*mi.Color; + + gl_Position=GetPosition3D(); + } +} + +#Fragment + +Output +{ + vec4 Color; +} + +Code +{ + void main() + { + Color=Input.Color; + } +}