OGRE-Next  3.0.0
Object-Oriented Graphics Rendering Engine
Ogre::NULLTexBufferPacked Class Reference

#include <OgreNULLTexBufferPacked.h>

+ Inheritance diagram for Ogre::NULLTexBufferPacked:

Public Member Functions

 NULLTexBufferPacked (size_t internalBufStartBytes, size_t numElements, uint32 bytesPerElement, uint32 numElementsPadding, BufferType bufferType, void *initialData, bool keepAsShadow, VaoManager *vaoManager, NULLBufferInterface *bufferInterface, PixelFormatGpu pf)
 
 ~NULLTexBufferPacked () override
 
void bindBufferCS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 
void bindBufferDS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 
void bindBufferGS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 
void bindBufferHS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 
void bindBufferPS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 
void bindBufferVS (uint16 slot, size_t offset=0, size_t sizeBytes=0) override
 Binds the texture buffer to the given slot in the Vertex/Pixel/Geometry/Hull/Domain/Compute Shader. More...
 
- Public Member Functions inherited from Ogre::TexBufferPacked
 TexBufferPacked (size_t internalBufferStartBytes, size_t numElements, uint32 bytesPerElement, uint32 numElementsPadding, BufferType bufferType, void *initialData, bool keepAsShadow, VaoManager *vaoManager, BufferInterface *bufferInterface, PixelFormatGpu pf)
 
virtual void _bindBufferDirectly (uint16 slot, size_t offset, size_t sizeBytes)
 To be overriden only by GL3+. More...
 
BufferPackedTypes getBufferPackedType () const override
 Useful to query which one is the derived class. More...
 
PixelFormatGpu getPixelFormat () const
 
- Public Member Functions inherited from Ogre::BufferPacked
 BufferPacked (size_t internalBufferStartBytes, size_t numElements, uint32 bytesPerElement, uint32 numElementsPadding, BufferType bufferType, void *initialData, bool keepAsShadow, VaoManager *vaoManager, BufferInterface *bufferInterface)
 Generic constructor. More...
 
virtual ~BufferPacked ()
 
size_t _getFinalBufferStart () const
 
size_t _getInternalBufferStart () const
 
size_t _getInternalNumElements () const
 
size_t _getInternalTotalSizeBytes () const
 
void _setBufferInterface (BufferInterface *bufferInterface)
 For internal use. More...
 
void _setShadowCopy (void *copy)
 This will not delete the existing shadow copy so it can be used for other purposes if it is not needed call OGRE_FREE_SIMD( m->getShadowCopy(), MEMCATEGORY_GEOMETRY ) before calling this function. More...
 
void advanceFrame ()
 
void copyTo (BufferPacked *dstBuffer, size_t dstElemStart=0, size_t srcElemStart=0, size_t srcNumElems=std::numeric_limits< size_t >::max())
 Copies the contents of this buffer to another, using GPU -> GPU transfers. More...
 
BufferInterfacegetBufferInterface () const
 
BufferType getBufferType () const
 
uint32 getBytesPerElement () const
 
MappingState getMappingState () const
 Returns the mapping state. More...
 
size_t getNumElements () const
 
virtual BufferPackedgetOriginalBufferType ()
 If this buffer has been reinterpreted from an UavBufferPacked, returns the original version, otherwise returns 'this'. More...
 
const void * getShadowCopy () const
 
size_t getTotalSizeBytes () const
 
bool isCurrentlyMapped () const
 Returns whether the buffer is currently mapped. More...
 
void *RESTRICT_ALIAS_RETURN map (size_t elementStart, size_t elementCount, bool bAdvanceFrame=true)
 Maps the specified region to a pointer the CPU can access. More...
 
AsyncTicketPtr readRequest (size_t elementStart, size_t elementCount)
 Async data read request. More...
 
void regressFrame ()
 Performs the opposite of. More...
 
void unmap (UnmapOptions unmapOption, size_t flushStartElem=0, size_t flushSizeElem=0)
 Unmaps or flushes the region mapped with. More...
 
virtual void upload (const void *data, size_t elementStart, size_t elementCount)
 Sends the provided data to the GPU. More...
 
- Public Member Functions inherited from Ogre::GpuTrackedResource
virtual ~GpuTrackedResource ()
 
virtual bool isTextureGpu () const
 

Constructor & Destructor Documentation

◆ NULLTexBufferPacked()

Ogre::NULLTexBufferPacked::NULLTexBufferPacked ( size_t  internalBufStartBytes,
size_t  numElements,
uint32  bytesPerElement,
uint32  numElementsPadding,
BufferType  bufferType,
void *  initialData,
bool  keepAsShadow,
VaoManager vaoManager,
NULLBufferInterface bufferInterface,
PixelFormatGpu  pf 
)

◆ ~NULLTexBufferPacked()

Ogre::NULLTexBufferPacked::~NULLTexBufferPacked ( )
override

Member Function Documentation

◆ bindBufferCS()

void Ogre::NULLTexBufferPacked::bindBufferCS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Implements Ogre::TexBufferPacked.

◆ bindBufferDS()

void Ogre::NULLTexBufferPacked::bindBufferDS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Implements Ogre::TexBufferPacked.

◆ bindBufferGS()

void Ogre::NULLTexBufferPacked::bindBufferGS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Implements Ogre::TexBufferPacked.

◆ bindBufferHS()

void Ogre::NULLTexBufferPacked::bindBufferHS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Implements Ogre::TexBufferPacked.

◆ bindBufferPS()

void Ogre::NULLTexBufferPacked::bindBufferPS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Implements Ogre::TexBufferPacked.

◆ bindBufferVS()

void Ogre::NULLTexBufferPacked::bindBufferVS ( uint16  slot,
size_t  offset = 0,
size_t  sizeBytes = 0 
)
inlineoverridevirtual

Binds the texture buffer to the given slot in the Vertex/Pixel/Geometry/Hull/Domain/Compute Shader.

Remarks
Not all RS API separate by shader stage. For best compatibility, don't assign two different buffers at the same slot for different stages (just leave the slot empty on the stages you don't use).
Parameters
slotThe slot to asign this constant buffer. In D3D11 it's called 'slot'. In GLSL it's called it's called 'binding'
offset0-based offset. It is possible to bind a region of the buffer. Offset needs to be aligned. You can query the RS capabilities for the alignment, however 256 bytes is the maximum allowed alignment per the OpenGL specification, making it a safe bet to hardcode.
sizeBytesSize in bytes to bind the tex buffer. When zero, binds from offset until the end of the buffer.

Implements Ogre::TexBufferPacked.


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