|
@@ -184,6 +184,7 @@ void* VertexBuffer::Lock(unsigned start, unsigned count, bool discard)
|
|
|
|
|
|
|
|
lockStart_ = start;
|
|
lockStart_ = start;
|
|
|
lockCount_ = count;
|
|
lockCount_ = count;
|
|
|
|
|
+ discardLock_ = discard;
|
|
|
|
|
|
|
|
if (shadowData_)
|
|
if (shadowData_)
|
|
|
{
|
|
{
|
|
@@ -205,12 +206,12 @@ void VertexBuffer::Unlock()
|
|
|
switch (lockState_)
|
|
switch (lockState_)
|
|
|
{
|
|
{
|
|
|
case LOCK_SHADOW:
|
|
case LOCK_SHADOW:
|
|
|
- SetDataRange(shadowData_.Get() + lockStart_ * vertexSize_, lockStart_, lockCount_);
|
|
|
|
|
|
|
+ SetDataRange(shadowData_.Get() + lockStart_ * vertexSize_, lockStart_, lockCount_, discardLock_);
|
|
|
lockState_ = LOCK_NONE;
|
|
lockState_ = LOCK_NONE;
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case LOCK_SCRATCH:
|
|
case LOCK_SCRATCH:
|
|
|
- SetDataRange(lockScratchData_, lockStart_, lockCount_);
|
|
|
|
|
|
|
+ SetDataRange(lockScratchData_, lockStart_, lockCount_, discardLock_);
|
|
|
if (graphics_)
|
|
if (graphics_)
|
|
|
graphics_->FreeScratchBuffer(lockScratchData_);
|
|
graphics_->FreeScratchBuffer(lockScratchData_);
|
|
|
lockScratchData_ = 0;
|
|
lockScratchData_ = 0;
|