Showing the changes to libraries/render-utils/src/GeometryCache.cpp (1 of 10 files). Show all
Unified · Split
| @@ -1749,7 +1749,7 @@ QSharedPointer<Resource> GeometryCache::createResource(const QUrl& url, const QS · 1748 unmodified lines | ||
| 1749 | 1749 | return geometry.staticCast<Resource>(); |
| 1750 | 1750 | } |
| 1751 | 1751 | |
| 1752 | −void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch) { | |
| 1752 | +void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch, bool noBlend) { | |
| 1753 | 1753 | if (!_standardDrawPipeline) { |
| 1754 | 1754 | auto vs = gpu::ShaderPointer(gpu::Shader::createVertex(std::string(standardTransformPNTC_vert))); |
| 1755 | 1755 | auto ps = gpu::ShaderPointer(gpu::Shader::createPixel(std::string(standardDrawTexture_frag))); |
| @@ -1762,8 +1762,18 @@ void GeometryCache::useSimpleDrawPipeline(gpu::Batch& batch) { · 6 unmodified lines | ||
| 1762 | 1762 | state->setBlendFunction(true, gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA); |
| 1763 | 1763 | |
| 1764 | 1764 | _standardDrawPipeline.reset(gpu::Pipeline::create(program, state)); |
| 1765 | + | |
| 1766 | + auto stateNoBlend = std::make_shared<gpu::State>(); | |
| 1767 | + stateNoBlend->setColorWriteMask(true, true, true, false); | |
| 1768 | + stateNoBlend->setBlendFunction(true, gpu::State::SRC_ALPHA, gpu::State::BLEND_OP_ADD, gpu::State::INV_SRC_ALPHA); | |
| 1769 | + | |
| 1770 | + _standardDrawPipelineNoBlend.reset(gpu::Pipeline::create(program, stateNoBlend)); | |
| 1771 | + } | |
| 1772 | + if (noBlend) { | |
| 1773 | + batch.setPipeline(_standardDrawPipelineNoBlend); | |
| 1774 | + } else { | |
| 1775 | + batch.setPipeline(_standardDrawPipeline); | |
| 1765 | 1776 | } |
| 1766 | − batch.setPipeline(_standardDrawPipeline); | |
| 1767 | 1777 | } |
| 1768 | 1778 | |
| 1769 | 1779 | const float NetworkGeometry::NO_HYSTERESIS = -1.0f; |