From b207d97f72c31c46c395021dcdefcdddcdfd0954 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Thu, 17 Sep 2015 12:28:17 -0700 Subject: [PATCH] Fix the lighting when the rear view mirror is showing up --- libraries/gpu/src/gpu/Resource.h | 25 ++++++++++++------- .../src/DeferredLightingEffect.cpp | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/libraries/gpu/src/gpu/Resource.h b/libraries/gpu/src/gpu/Resource.h index 42897e9947..177c798e2c 100644 --- a/libraries/gpu/src/gpu/Resource.h +++ b/libraries/gpu/src/gpu/Resource.h @@ -160,15 +160,22 @@ typedef std::vector< BufferPointer > Buffers; class BufferView { +protected: + void initFromBuffer(const BufferPointer& buffer) { + _buffer = (buffer); + if (_buffer) { + _size = (buffer->getSize()); + } + } public: typedef Resource::Size Size; typedef int Index; BufferPointer _buffer; - Size _offset; - Size _size; + Size _offset{ 0 }; + Size _size{ 0 }; Element _element; - uint16 _stride; + uint16 _stride{ 1 }; BufferView() : _buffer(NULL), @@ -188,19 +195,19 @@ public: // create the BufferView and own the Buffer BufferView(Buffer* newBuffer, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) : - _buffer(newBuffer), _offset(0), - _size(newBuffer->getSize()), _element(element), _stride(uint16(element.getSize())) - {}; + { + initFromBuffer(BufferPointer(newBuffer)); + }; BufferView(const BufferPointer& buffer, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) : - _buffer(buffer), _offset(0), - _size(buffer->getSize()), _element(element), _stride(uint16(element.getSize())) - {}; + { + initFromBuffer(buffer); + }; BufferView(const BufferPointer& buffer, Size offset, Size size, const Element& element = Element(gpu::SCALAR, gpu::UINT8, gpu::RAW)) : _buffer(buffer), _offset(offset), diff --git a/libraries/render-utils/src/DeferredLightingEffect.cpp b/libraries/render-utils/src/DeferredLightingEffect.cpp index b19e2f62b7..ce387e648b 100644 --- a/libraries/render-utils/src/DeferredLightingEffect.cpp +++ b/libraries/render-utils/src/DeferredLightingEffect.cpp @@ -582,6 +582,7 @@ void DeferredLightingEffect::render(RenderArgs* args) { batch.setResourceTexture(1, nullptr); batch.setResourceTexture(2, nullptr); batch.setResourceTexture(3, nullptr); + batch.setUniformBuffer(_directionalLightLocations->deferredTransformBuffer, nullptr); args->_context->render(batch);