diff --git a/interface/src/ui/overlays/Circle3DOverlay.cpp b/interface/src/ui/overlays/Circle3DOverlay.cpp index 132f58b6f0..0e20fd8ce4 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.cpp +++ b/interface/src/ui/overlays/Circle3DOverlay.cpp @@ -98,6 +98,9 @@ void Circle3DOverlay::render(RenderArgs* args) { const float MAX_COLOR = 255.0f; glm::vec4 color(colorX.red / MAX_COLOR, colorX.green / MAX_COLOR, colorX.blue / MAX_COLOR, alpha); + bool colorChanged = colorX.red != _lastColor.red || colorX.green != _lastColor.green || colorX.blue != _lastColor.blue; + _lastColor = colorX; + glDisable(GL_LIGHTING); glm::vec3 position = getPosition(); @@ -131,7 +134,7 @@ void Circle3DOverlay::render(RenderArgs* args) { _quadVerticesID = geometryCache->allocateID(); } - if (geometryChanged) { + if (geometryChanged || colorChanged) { QVector points; @@ -170,7 +173,7 @@ void Circle3DOverlay::render(RenderArgs* args) { _lineVerticesID = geometryCache->allocateID(); } - if (geometryChanged) { + if (geometryChanged || colorChanged) { QVector points; float angle = startAt; diff --git a/interface/src/ui/overlays/Circle3DOverlay.h b/interface/src/ui/overlays/Circle3DOverlay.h index 10b7a5dbfa..fa9ecd0f25 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.h +++ b/interface/src/ui/overlays/Circle3DOverlay.h @@ -70,6 +70,7 @@ protected: int _majorTicksVerticesID; int _minorTicksVerticesID; + xColor _lastColor; float _lastStartAt; float _lastEndAt; float _lastOuterRadius;