diff options
author | Marius Kintel <marius@kintel.net> | 2011-12-25 23:38:03 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-12-25 23:38:03 (GMT) |
commit | c4bffdaf37fdf72a84a225ec584d3698fe398857 (patch) | |
tree | 503b819d69c00f007709cfee0f332c7adc7ad818 /src/OpenCSGRenderer.cc | |
parent | 3e64e63b0113a99666ad68aa3e82bb7b80324d9b (diff) |
Color overriding now works. The outermost color will win if multiple colors are specified for the same object
Diffstat (limited to 'src/OpenCSGRenderer.cc')
-rw-r--r-- | src/OpenCSGRenderer.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/OpenCSGRenderer.cc b/src/OpenCSGRenderer.cc index 233124b..eb66687 100644 --- a/src/OpenCSGRenderer.cc +++ b/src/OpenCSGRenderer.cc @@ -86,7 +86,7 @@ void OpenCSGRenderer::renderCSGChain(CSGChain *chain, GLint *shaderinfo, if (shaderinfo) glUseProgram(shaderinfo[0]); for (; j < i; j++) { const Transform3d &m = chain->matrices[j]; - double *c = chain->colors[j]; + const Color4f &c = chain->colors[j]; glPushMatrix(); glMultMatrixd(m.data()); PolySet::csgmode_e csgmode = chain->types[j] == CSGTerm::TYPE_DIFFERENCE ? PolySet::CSGMODE_DIFFERENCE : PolySet::CSGMODE_NORMAL; @@ -99,7 +99,7 @@ void OpenCSGRenderer::renderCSGChain(CSGChain *chain, GLint *shaderinfo, csgmode = PolySet::csgmode_e(csgmode + 10); } else if (c[0] >= 0 || c[1] >= 0 || c[2] >= 0 || c[3] >= 0) { // User-defined color or alpha from source - setColor(c, shaderinfo); + setColor(c.data(), shaderinfo); } else if (chain->types[j] == CSGTerm::TYPE_DIFFERENCE) { setColor(COLORMODE_CUTOUT, shaderinfo); } else { |