|  | OGRE 2.1
    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 | ||
| ) |