![]() |
OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
|
Common buffer operations for most v1 buffer interfaces used in Metal This implementation treats: Ignores STATIC and DYNAMIC bit in buffers Lack of WRITE_ONLY and DISCARDABLE buffer puts it in slowest path. More...
#include <OgreMetalHardwareBufferCommon.h>
Public Member Functions | |
| MetalHardwareBufferCommon (size_t sizeBytes, HardwareBuffer::Usage usage, uint16 alignment, MetalDiscardBufferManager *discardBufferManager, MetalDevice *device) | |
| virtual | ~MetalHardwareBufferCommon () |
| void | _notifyDeviceStalled (void) |
| void | copyData (MetalHardwareBufferCommon *srcBuffer, size_t srcOffset, size_t dstOffset, size_t length, bool discardWholeBuffer=false) |
| id< MTLBuffer > | getBufferName (size_t &outOffset) |
| Returns the actual API buffer, but first sets mLastFrameUsed as we assume you're calling this function to use the buffer in the GPU. | |
| id< MTLBuffer > | getBufferNameForGpuWrite (void) |
| size_t | getSizeBytes (void) const |
| void * | lockImpl (size_t offset, size_t length, HardwareBuffer::LockOptions options, bool isLocked) |
| void | readData (size_t offset, size_t length, void *pDest) |
| void | unlockImpl (size_t lockStart, size_t lockSize) |
| void | writeData (size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false) |
Common buffer operations for most v1 buffer interfaces used in Metal This implementation treats: Ignores STATIC and DYNAMIC bit in buffers Lack of WRITE_ONLY and DISCARDABLE buffer puts it in slowest path.
Puts WRITE_ONLY in device memory and uses staging buffers to avoid blocking. Use WRITE_ONLY when possible. When DISCARDABLE bit is set, it uses MetalDiscardBuffer.
| Ogre::v1::MetalHardwareBufferCommon::MetalHardwareBufferCommon | ( | size_t | sizeBytes, |
| HardwareBuffer::Usage | usage, | ||
| uint16 | alignment, | ||
| MetalDiscardBufferManager * | discardBufferManager, | ||
| MetalDevice * | device ) |
|
virtual |
| void Ogre::v1::MetalHardwareBufferCommon::copyData | ( | MetalHardwareBufferCommon * | srcBuffer, |
| size_t | srcOffset, | ||
| size_t | dstOffset, | ||
| size_t | length, | ||
| bool | discardWholeBuffer = false ) |
Returns the actual API buffer, but first sets mLastFrameUsed as we assume you're calling this function to use the buffer in the GPU.
| outOffset | Out. Guaranteed to be written. Used by HBU_DISCARDABLE buffers which need an offset to the internal ring buffer we've allocated. |
| void * Ogre::v1::MetalHardwareBufferCommon::lockImpl | ( | size_t | offset, |
| size_t | length, | ||
| HardwareBuffer::LockOptions | options, | ||
| bool | isLocked ) |
| void Ogre::v1::MetalHardwareBufferCommon::writeData | ( | size_t | offset, |
| size_t | length, | ||
| const void * | pSource, | ||
| bool | discardWholeBuffer = false ) |