diff --git a/src/celengine/renderglsl.cpp b/src/celengine/renderglsl.cpp index 207edecb..73e37760 100644 --- a/src/celengine/renderglsl.cpp +++ b/src/celengine/renderglsl.cpp @@ -317,8 +317,8 @@ void renderGeometry_GLSL(Geometry* geometry, if (texOverride != InvalidResource) { Material m; - m.diffuse = Material::Color(ri.color.red(), ri.color.green(), ri.color.blue()); - m.specular = Material::Color(ri.specularColor.red(), ri.specularColor.green(), ri.specularColor.blue()); + m.diffuse = Material::Color(ri.color); + m.specular = Material::Color(ri.specularColor); m.specularPower = ri.specularPower; CelestiaTextureResource textureResource(texOverride); @@ -361,8 +361,8 @@ void renderGeometry_GLSL_Unlit(Geometry* geometry, if (texOverride != InvalidResource) { Material m; - m.diffuse = Material::Color(ri.color.red(), ri.color.green(), ri.color.blue()); - m.specular = Material::Color(ri.specularColor.red(), ri.specularColor.green(), ri.specularColor.blue()); + m.diffuse = Material::Color(ri.color); + m.specular = Material::Color(ri.specularColor); m.specularPower = ri.specularPower; CelestiaTextureResource textureResource(texOverride); @@ -478,8 +478,7 @@ void renderClouds_GLSL(const RenderInfo& ri, prog->setLightParameters(ls, ri.color, ri.specularColor, Color::Black); prog->eyePosition = ls.eyePos_obj; - prog->ambientColor = Vector3f(ri.ambientColor.red(), ri.ambientColor.green(), - ri.ambientColor.blue()); + prog->ambientColor = ri.ambientColor.toVector3(); prog->textureOffset = texOffset; if (atmosphere != nullptr) diff --git a/src/celmodel/material.h b/src/celmodel/material.h index 6cfe0849..332ed3b0 100644 --- a/src/celmodel/material.h +++ b/src/celmodel/material.h @@ -14,6 +14,7 @@ #include #include #include +#include namespace cmod @@ -42,6 +43,13 @@ public: { } + Color(const ::Color& color) : + m_red(color.red()), + m_green(color.green()), + m_blue(color.blue()) + { + } + float red() const { return m_red;