From 5288d983763ea57e4e1d33f37cc21384a82c5ba5 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Thu, 30 Jun 2016 20:52:41 -0700 Subject: [PATCH] Using pipelines properly where appropriate --- interface/src/ui/overlays/Circle3DOverlay.cpp | 8 ++++---- interface/src/ui/overlays/Cube3DOverlay.cpp | 6 ++++-- interface/src/ui/overlays/Grid3DOverlay.cpp | 6 ++---- interface/src/ui/overlays/Image3DOverlay.cpp | 6 ++---- interface/src/ui/overlays/Sphere3DOverlay.cpp | 3 +++ 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/interface/src/ui/overlays/Circle3DOverlay.cpp b/interface/src/ui/overlays/Circle3DOverlay.cpp index 1abcb0f5c0..2896ce711e 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.cpp +++ b/interface/src/ui/overlays/Circle3DOverlay.cpp @@ -149,7 +149,6 @@ void Circle3DOverlay::render(RenderArgs* args) { geometryCache->updateVertices(_quadVerticesID, points, color); } - geometryCache->bindSimpleProgram(batch); geometryCache->renderVertices(batch, gpu::TRIANGLES, _quadVerticesID); } else { @@ -188,8 +187,6 @@ void Circle3DOverlay::render(RenderArgs* args) { geometryCache->updateVertices(_lineVerticesID, points, color); } - // Render unlit - geometryCache->bindSimpleProgram(batch, false, false, true); if (getIsDashedLine()) { geometryCache->renderVertices(batch, gpu::LINES, _lineVerticesID); } else { @@ -282,10 +279,13 @@ void Circle3DOverlay::render(RenderArgs* args) { } const render::ShapeKey Circle3DOverlay::getShapeKey() { - auto builder = render::ShapeKey::Builder().withOwnPipeline(); + auto builder = render::ShapeKey::Builder().withoutCullFace(); if (getAlpha() != 1.0f) { builder.withTranslucent(); } + if (!getIsSolid()) { + builder.withUnlit().withDepthBias(); + } return builder.build(); } diff --git a/interface/src/ui/overlays/Cube3DOverlay.cpp b/interface/src/ui/overlays/Cube3DOverlay.cpp index 17894aa091..f72fb8d920 100644 --- a/interface/src/ui/overlays/Cube3DOverlay.cpp +++ b/interface/src/ui/overlays/Cube3DOverlay.cpp @@ -44,7 +44,6 @@ void Cube3DOverlay::render(RenderArgs* args) { Transform transform; transform.setTranslation(position); transform.setRotation(rotation); - auto geometryCache = DependencyManager::get(); auto pipeline = args->_pipeline; if (!pipeline) { @@ -97,10 +96,13 @@ void Cube3DOverlay::render(RenderArgs* args) { } const render::ShapeKey Cube3DOverlay::getShapeKey() { - auto builder = render::ShapeKey::Builder().withOwnPipeline(); + auto builder = render::ShapeKey::Builder(); if (getAlpha() != 1.0f) { builder.withTranslucent(); } + if (!getIsSolid()) { + builder.withUnlit().withDepthBias(); + } return builder.build(); } diff --git a/interface/src/ui/overlays/Grid3DOverlay.cpp b/interface/src/ui/overlays/Grid3DOverlay.cpp index 7d86395937..e9bbcddf59 100644 --- a/interface/src/ui/overlays/Grid3DOverlay.cpp +++ b/interface/src/ui/overlays/Grid3DOverlay.cpp @@ -75,11 +75,9 @@ void Grid3DOverlay::render(RenderArgs* args) { transform.setScale(glm::vec3(getDimensions(), 1.0f)); transform.setTranslation(position); batch->setModelTransform(transform); - auto geometryCache = DependencyManager::get(); - geometryCache->bindSimpleProgram(*batch, false, false, true, true); const float MINOR_GRID_EDGE = 0.0025f; const float MAJOR_GRID_EDGE = 0.005f; - geometryCache->renderGrid(*batch, minCorner, maxCorner, + DependencyManager::get()->renderGrid(*batch, minCorner, maxCorner, _minorGridRowDivisions, _minorGridColDivisions, MINOR_GRID_EDGE, _majorGridRowDivisions, _majorGridColDivisions, MAJOR_GRID_EDGE, gridColor, _drawInFront); @@ -87,7 +85,7 @@ void Grid3DOverlay::render(RenderArgs* args) { } const render::ShapeKey Grid3DOverlay::getShapeKey() { - return render::ShapeKey::Builder().withOwnPipeline(); + return render::ShapeKey::Builder().withOwnPipeline().withUnlit().withDepthBias(); } void Grid3DOverlay::setProperties(const QVariantMap& properties) { diff --git a/interface/src/ui/overlays/Image3DOverlay.cpp b/interface/src/ui/overlays/Image3DOverlay.cpp index 72ae246859..d59e552779 100644 --- a/interface/src/ui/overlays/Image3DOverlay.cpp +++ b/interface/src/ui/overlays/Image3DOverlay.cpp @@ -93,9 +93,7 @@ void Image3DOverlay::render(RenderArgs* args) { batch->setModelTransform(transform); batch->setResourceTexture(0, _texture->getGPUTexture()); - auto geometryCache = DependencyManager::get(); - geometryCache->bindSimpleProgram(*batch, true, false); - geometryCache->renderQuad( + DependencyManager::get()->renderQuad( *batch, topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, glm::vec4(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha) ); @@ -104,7 +102,7 @@ void Image3DOverlay::render(RenderArgs* args) { } const render::ShapeKey Image3DOverlay::getShapeKey() { - auto builder = render::ShapeKey::Builder().withOwnPipeline(); + auto builder = render::ShapeKey::Builder().withoutCullFace().withDepthBias(); if (_emissive) { builder.withUnlit(); } diff --git a/interface/src/ui/overlays/Sphere3DOverlay.cpp b/interface/src/ui/overlays/Sphere3DOverlay.cpp index 1dd61611f2..85530d1376 100644 --- a/interface/src/ui/overlays/Sphere3DOverlay.cpp +++ b/interface/src/ui/overlays/Sphere3DOverlay.cpp @@ -62,6 +62,9 @@ const render::ShapeKey Sphere3DOverlay::getShapeKey() { if (getAlpha() != 1.0f) { builder.withTranslucent(); } + if (!getIsSolid()) { + builder.withUnlit().withDepthBias(); + } return builder.build(); }