ecere/gfx/gl3/shading: Integration support to set material
authorJerome St-Louis <jerome@ecere.com>
Sat, 19 Dec 2015 21:09:25 +0000 (16:09 -0500)
committerJerome St-Louis <jerome@ecere.com>
Sun, 3 Jul 2016 08:08:03 +0000 (04:08 -0400)
ecere/src/gfx/drivers/gl3/shading.ec

index 28ad774..aaf64f8 100644 (file)
@@ -92,7 +92,7 @@ void shader_texturing(bool on)
    glUniform1ui(uTexturingOn, on);
 }
 
-void shader_setMaterial(Material material, bool perVertexColor)
+public void shader_setMaterial(Material material, bool perVertexColor)
 {
    glUniform1ui(uPerVertexColor, perVertexColor);
    glUniform1ui(uMatTwoSided, !material.flags.singleSideLight);
@@ -104,6 +104,27 @@ void shader_setMaterial(Material material, bool perVertexColor)
    glUniform1f(uMatOpacity, material.opacity);
 }
 
+public void shader_setSimpleMaterial(ColorAlpha color)
+{
+   float opacity = color.a / 255.0f;
+   float r = color.color.r / 255.0f;
+   float g = color.color.g / 255.0f;
+   float b = color.color.b / 255.0f;
+   glUniform1i(uPerVertexColor, 0);
+   glUniform1i(uMatTwoSided, 0);
+   glUniform3f(uMatDiffuse, r, g, b);
+   glUniform3f(uMatAmbient, r, g, b);
+   glUniform3f(uMatSpecular, r, g, b);
+   glUniform3f(uMatEmissive, 0, 0, 0);
+   glUniform1f(uMatPower, 0);
+   glUniform1f(uMatOpacity, opacity);
+}
+
+public void shader_setPerVertexColor(bool perVertexColor)
+{
+   glUniform1i(uPerVertexColor, perVertexColor);
+}
+
 void shader_setLight(Display display, uint id, Light light)
 {
    if(light != null)