![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
Base class for shader uniform blocks. More...
#include <glShaderBuffer.h>
Public Member Functions | |
glShaderBuffer (GFXDevice &context, const ShaderBufferDescriptor &descriptor) | |
bool | bindByteRange (U8 bindIndex, BufferRange range, I32 readIndex=-1) |
const glBufferImpl_uptr & | bufferImpl () const noexcept |
LockableBuffer * | getBufferImpl () override final |
![]() | |
ShaderBuffer (GFXDevice &context, const ShaderBufferDescriptor &descriptor) | |
void | readData (BufferRange range, std::pair< bufferPtr, size_t > outData) |
void | readBytes (BufferRange range, std::pair< bufferPtr, size_t > outData) |
BufferLock | clearData (BufferRange range) |
BufferLock | clearBytes (BufferRange range) |
BufferLock | writeData (BufferRange range, const bufferPtr data) |
BufferLock | writeBytes (BufferRange range, const bufferPtr data) |
BufferUpdateUsage | getUpdateUsage () const noexcept |
BufferUpdateFrequency | getUpdateFrequency () const noexcept |
FORCE_INLINE I32 | getStartIndex (const bool read) const noexcept |
FORCE_INLINE size_t | getStartOffset (const bool read) const noexcept |
FORCE_INLINE U32 | getPrimitiveCount () const noexcept |
FORCE_INLINE size_t | getPrimitiveSize () const noexcept |
FORCE_INLINE BufferUsageType | getUsage () const noexcept |
FORCE_INLINE BufferLock | writeData (const bufferPtr data) |
FORCE_INLINE BufferLock | clearData () |
virtual LockableBuffer * | getBufferImpl ()=0 |
PROPERTY_R (size_t, alignedBufferSize, 0u) | |
PROPERTY_R (size_t, alignmentRequirement, sizeof(U32)) | |
PROPERTY_R (string, name) | |
PROPERTY_R (U64, lastWrittenFrame, 0u) | |
PROPERTY_R (U64, lastReadFrame, 0u) | |
![]() | |
GUIDWrapper () noexcept | |
GUIDWrapper (const GUIDWrapper &old) noexcept | |
GUIDWrapper (GUIDWrapper &&old) noexcept | |
virtual | ~GUIDWrapper ()=default |
FORCE_INLINE I64 | getGUID () const noexcept |
GUIDWrapper & | operator= (const GUIDWrapper &old)=delete |
GUIDWrapper & | operator= (GUIDWrapper &&other)=delete |
![]() | |
virtual | ~GraphicsResource () |
GFXDevice & | context () const noexcept |
U64 | nameHash () const noexcept |
![]() | |
NonCopyable (const NonCopyable &)=delete | |
NonCopyable & | operator= (const NonCopyable &)=delete |
NonCopyable (NonCopyable &&)=default | |
NonCopyable & | operator= (NonCopyable &&)=default |
![]() | |
NonMovable (NonMovable &&)=delete | |
NonMovable & | operator= (NonMovable &&)=delete |
NonMovable (const NonMovable &)=default | |
NonMovable & | operator= (const NonMovable &)=default |
![]() | |
RingBufferSeparateWrite (U16 queueLength, bool separateReadWrite, bool writeAhead=true) noexcept | |
virtual | ~RingBufferSeparateWrite ()=default |
virtual void | resize (U16 queueLength) |
U16 | queueLength () const noexcept |
I32 | queueWriteIndex () const noexcept |
I32 | queueReadIndex () const noexcept |
I32 | incQueue () noexcept |
I32 | decQueue () noexcept |
Protected Member Functions | |
void | readBytesInternal (BufferRange range, std::pair< bufferPtr, size_t > outData) override |
BufferLock | writeBytesInternal (BufferRange range, const bufferPtr data) override |
virtual void | readBytesInternal (BufferRange range, std::pair< bufferPtr, size_t > outData)=0 |
virtual BufferLock | writeBytesInternal (BufferRange range, const bufferPtr data)=0 |
![]() | |
GraphicsResource (GFXDevice &context, Type type, I64 GUID, U64 nameHash) | |
![]() | |
NonCopyable ()=default | |
~NonCopyable ()=default | |
![]() | |
NonMovable ()=default | |
~NonMovable ()=default | |
Private Attributes | |
glBufferImpl_uptr | _bufferImpl { nullptr } |
Additional Inherited Members | |
![]() | |
enum class | Type : U8 { RENDER_TARGET , SHADER_BUFFER , BUFFER , SHADER , SHADER_PROGRAM , TEXTURE , COUNT } |
![]() | |
static size_t | AlignmentRequirement (BufferUsageType usage) noexcept |
![]() | |
static I64 | generateGUID () noexcept |
![]() | |
BufferParams | _params |
size_t | _maxSize { 0u } |
U64 | _lastWriteFrameNumber { 0u } |
![]() | |
const I64 | _guid |
![]() | |
GFXDevice & | _context |
Base class for shader uniform blocks.
Definition at line 44 of file glShaderBuffer.h.
Divide::glShaderBuffer::glShaderBuffer | ( | GFXDevice & | context, |
const ShaderBufferDescriptor & | descriptor | ||
) |
Definition at line 16 of file glShaderBuffer.cpp.
bool Divide::glShaderBuffer::bindByteRange | ( | U8 | bindIndex, |
BufferRange | range, | ||
I32 | readIndex = -1 |
||
) |
Definition at line 66 of file glShaderBuffer.cpp.
|
inlinenoexcept |
Definition at line 49 of file glShaderBuffer.h.
|
finaloverridevirtual |
Implements Divide::ShaderBuffer.
Definition at line 104 of file glShaderBuffer.cpp.
|
overrideprotectedvirtual |
Implements Divide::ShaderBuffer.
Definition at line 60 of file glShaderBuffer.cpp.
|
overrideprotectedvirtual |
Implements Divide::ShaderBuffer.
Definition at line 55 of file glShaderBuffer.cpp.
|
private |
Definition at line 58 of file glShaderBuffer.h.