History

Merge branch 'master' of https://github.com/highfidelity/hifi into rig

Howard Stearns committed 11 years ago

Commit 1663d092 parents cff7bb7 f3dc15944 files · +515 −226Browse files

Showing the changes to libraries/render-utils/src/GeometryCache.cpp (1 of 44 files). Show all

Unified · Split

libraries/render-utils/src/GeometryCache.cpp+16−2
@@ -29,6 +29,8 @@ · 28 unmodified lines
2929 #include "standardTransformPNTC_vert.h"
3030 #include "standardDrawTexture_frag.h"
3131
32+#include "gpu/StandardShaderLib.h"
33+
3234 //#define WANT_DEBUG
3335
3436 const int GeometryCache::UNKNOWN_ID = -1;
@@ -1651,7 +1653,7 @@ QSharedPointer<Resource> GeometryCache::createResource(const QUrl& url, const QS · 1616 unmodified lines
16511653 return geometry.staticCast<Resource>();
16521654 }
16531655
1654−void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch) {
1656+void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch, bool noBlend) {
16551657 if (!_standardDrawPipeline) {
16561658 auto vs = gpu::ShaderPointer(gpu::Shader::createVertex(std::string(standardTransformPNTC_vert)));
16571659 auto ps = gpu::ShaderPointer(gpu::Shader::createPixel(std::string(standardDrawTexture_frag)));
@@ -1660,12 +1662,24 @@ void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch) { · 2 unmodified lines
16601662
16611663 auto state = std::make_shared<gpu::State>();
16621664
1665+
16631666 // enable decal blend
16641667 state->setBlendFunction(true, gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA);
16651668
16661669 _standardDrawPipeline.reset(gpu::Pipeline::create(program, state));
1670+
1671+
1672+ auto stateNoBlend = std::make_shared<gpu::State>();
1673+ auto noBlendPS = gpu::StandardShaderLib::getDrawTextureOpaquePS();
1674+ auto programNoBlend = gpu::ShaderPointer(gpu::Shader::createProgram(vs, noBlendPS));
1675+ gpu::Shader::makeProgram((*programNoBlend));
1676+ _standardDrawPipelineNoBlend.reset(gpu::Pipeline::create(programNoBlend, stateNoBlend));
1677+ }
1678+ if (noBlend) {
1679+ batch.setPipeline(_standardDrawPipelineNoBlend);
1680+ } else {
1681+ batch.setPipeline(_standardDrawPipeline);
16671682 }
1668− batch.setPipeline(_standardDrawPipeline);
16691683 }
16701684
16711685 const float NetworkGeometry::NO_HYSTERESIS = -1.0f;