OGRE-Next: Ogre::v1::MetalHardwareBufferCommon Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Public Member Functions | List of all members
Ogre::v1::MetalHardwareBufferCommon Class Reference

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 | 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 ()
size_t | getSizeBytes () 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)

## Detailed Description

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.

## Constructor & Destructor Documentation

## ◆ MetalHardwareBufferCommon()

Ogre::v1::MetalHardwareBufferCommon::MetalHardwareBufferCommon | ( | size_t | sizeBytes,
|  | HardwareBuffer::Usage | usage,
|  | uint16 | alignment,
|  | MetalDiscardBufferManager * | discardBufferManager,
|  | MetalDevice * | device )

Referenced by copyData().

## ◆ ~MetalHardwareBufferCommon()

virtual Ogre::v1::MetalHardwareBufferCommon::~MetalHardwareBufferCommon | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ _notifyDeviceStalled()

void Ogre::v1::MetalHardwareBufferCommon::_notifyDeviceStalled | ( |  | ) |

## ◆ copyData()

void Ogre::v1::MetalHardwareBufferCommon::copyData | ( | MetalHardwareBufferCommon * | srcBuffer,
|  | size_t | srcOffset,
|  | size_t | dstOffset,
|  | size_t | length,
|  | bool | discardWholeBuffer = false )

See also
  HardwareBuffer.

References MetalHardwareBufferCommon().

## ◆ getBufferName()

id< MTLBuffer > Ogre::v1::MetalHardwareBufferCommon::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.

Parameters

  outOffset | Out. Guaranteed to be written. Used by HBU_DISCARDABLE buffers which need an offset to the internal ring buffer we've allocated.

Returns
  The MTLBuffer in question.

## ◆ getBufferNameForGpuWrite()

id< MTLBuffer > Ogre::v1::MetalHardwareBufferCommon::getBufferNameForGpuWrite | ( |  | ) |

## ◆ getSizeBytes()

size_t Ogre::v1::MetalHardwareBufferCommon::getSizeBytes | ( |  | ) | const
| inline

## ◆ lockImpl()

void * Ogre::v1::MetalHardwareBufferCommon::lockImpl | ( | size_t | offset,
|  | size_t | length,
|  | HardwareBuffer::LockOptions | options,
|  | bool | isLocked )

See also
  HardwareBuffer.

## ◆ readData()

void Ogre::v1::MetalHardwareBufferCommon::readData | ( | size_t | offset,
|  | size_t | length,
|  | void * | pDest )

See also
  HardwareBuffer.

## ◆ unlockImpl()

void Ogre::v1::MetalHardwareBufferCommon::unlockImpl | ( | size_t | lockStart,
|  | size_t | lockSize )

See also
  HardwareBuffer.

## ◆ writeData()

void Ogre::v1::MetalHardwareBufferCommon::writeData | ( | size_t | offset,
|  | size_t | length,
|  | const void * | pSource,
|  | bool | discardWholeBuffer = false )

See also
  HardwareBuffer.

The documentation for this class was generated from the following file:

- OgreMetalHardwareBufferCommon.h