| 171 | } |
| 172 | |
| 173 | void GLES2HardwareBuffer::writeDataImpl(size_t offset, size_t length, const void* pSource, |
| 174 | bool discardWholeBuffer) |
| 175 | { |
| 176 | mRenderSystem->_getStateCacheManager()->bindGLBuffer(mTarget, mBufferId); |
| 177 | |
| 178 | if (offset == 0 && length == mSizeInBytes) |
| 179 | { |
| 180 | OGRE_CHECK_GL_ERROR(glBufferData(mTarget, mSizeInBytes, pSource, getGLUsage(mUsage))); |
| 181 | } |
| 182 | else |
| 183 | { |
| 184 | if(discardWholeBuffer) |
| 185 | { |
| 186 | OGRE_CHECK_GL_ERROR(glBufferData(mTarget, mSizeInBytes, NULL, getGLUsage(mUsage))); |
| 187 | } |
| 188 | |
| 189 | OGRE_CHECK_GL_ERROR(glBufferSubData(mTarget, offset, length, pSource)); |
| 190 | } |
| 191 | } |
| 192 | |
| 193 | void GLES2HardwareBuffer::copyData(HardwareBuffer& srcBuffer, size_t srcOffset, size_t dstOffset, |
| 194 | size_t length, bool discardWholeBuffer) |
nothing calls this directly
no test coverage detected