![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <ShaderBuffer.h>
Public Member Functions | |
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 |
Static Public Member Functions | |
static size_t | AlignmentRequirement (BufferUsageType usage) noexcept |
![]() | |
static I64 | generateGUID () noexcept |
Protected Member Functions | |
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 | |
Protected Attributes | |
BufferParams | _params |
size_t | _maxSize { 0u } |
U64 | _lastWriteFrameNumber { 0u } |
![]() | |
const I64 | _guid |
![]() | |
GFXDevice & | _context |
Friends | |
class | Attorney::ShaderBufferBind |
Additional Inherited Members | |
![]() | |
enum class | Type : U8 { RENDER_TARGET , SHADER_BUFFER , BUFFER , SHADER , SHADER_PROGRAM , TEXTURE , COUNT } |
Definition at line 48 of file ShaderBuffer.h.
|
explicit |
Definition at line 25 of file ShaderBuffer.cpp.
|
staticnoexcept |
Definition at line 8 of file ShaderBuffer.cpp.
BufferLock Divide::ShaderBuffer::clearBytes | ( | BufferRange | range | ) |
Definition at line 77 of file ShaderBuffer.cpp.
|
inline |
Definition at line 75 of file ShaderBuffer.h.
BufferLock Divide::ShaderBuffer::clearData | ( | BufferRange | range | ) |
Definition at line 38 of file ShaderBuffer.cpp.
|
pure virtual |
Implemented in Divide::noUniformBuffer, Divide::glShaderBuffer, and Divide::vkShaderBuffer.
|
inlinenoexcept |
Definition at line 70 of file ShaderBuffer.h.
|
inlinenoexcept |
Definition at line 71 of file ShaderBuffer.h.
|
inlinenoexcept |
Definition at line 68 of file ShaderBuffer.h.
|
inlinenoexcept |
Definition at line 69 of file ShaderBuffer.h.
|
noexcept |
Definition at line 99 of file ShaderBuffer.cpp.
|
noexcept |
Definition at line 94 of file ShaderBuffer.cpp.
|
inlinenoexcept |
Definition at line 72 of file ShaderBuffer.h.
Divide::ShaderBuffer::PROPERTY_R | ( | size_t | , |
alignedBufferSize | , | ||
0u | |||
) |
Divide::ShaderBuffer::PROPERTY_R | ( | size_t | , |
alignmentRequirement | , | ||
sizeof(U32) | |||
) |
Divide::ShaderBuffer::PROPERTY_R | ( | string | , |
name | |||
) |
Divide::ShaderBuffer::PROPERTY_R | ( | U64 | , |
lastReadFrame | , | ||
0u | |||
) |
Divide::ShaderBuffer::PROPERTY_R | ( | U64 | , |
lastWrittenFrame | , | ||
0u | |||
) |
void Divide::ShaderBuffer::readBytes | ( | BufferRange | range, |
std::pair< bufferPtr, size_t > | outData | ||
) |
Definition at line 64 of file ShaderBuffer.cpp.
|
protectedpure virtual |
Implemented in Divide::noUniformBuffer, Divide::vkShaderBuffer, and Divide::glShaderBuffer.
void Divide::ShaderBuffer::readData | ( | BufferRange | range, |
std::pair< bufferPtr, size_t > | outData | ||
) |
Definition at line 55 of file ShaderBuffer.cpp.
BufferLock Divide::ShaderBuffer::writeBytes | ( | BufferRange | range, |
const bufferPtr | data | ||
) |
Definition at line 81 of file ShaderBuffer.cpp.
|
protectedpure virtual |
Implemented in Divide::noUniformBuffer, Divide::vkShaderBuffer, and Divide::glShaderBuffer.
BufferLock Divide::ShaderBuffer::writeData | ( | BufferRange | range, |
const bufferPtr | data | ||
) |
Definition at line 46 of file ShaderBuffer.cpp.
|
inline |
Definition at line 74 of file ShaderBuffer.h.
|
friend |
Definition at line 53 of file ShaderBuffer.h.
|
protected |
Definition at line 94 of file ShaderBuffer.h.
|
protected |
Definition at line 93 of file ShaderBuffer.h.
|
protected |
Definition at line 92 of file ShaderBuffer.h.