![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <LockManager.h>
Classes | |
struct | BufferLockPoolEntry |
Public Types | |
using | BufferLockPool = eastl::fixed_vector< BufferLockPoolEntry, 1024, true > |
Public Member Functions | |
virtual | ~LockManager () override=default |
bool | waitForLockedRange (size_t lockBeginBytes, size_t lockLength) |
Returns false if we encountered an error. | |
bool | lockRange (size_t lockBeginBytes, size_t lockLength, SyncObjectHandle syncObj) |
Returns false if we encountered an error. | |
![]() | |
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 |
Static Public Member Functions | |
static void | CleanExpiredSyncObjects (RenderAPI api, U64 frameNumber) |
static void | Clear () |
static SyncObjectHandle | CreateSyncObject (RenderAPI api, U8 flag=DEFAULT_SYNC_FLAG_INTERNAL) |
![]() | |
static I64 | generateGUID () noexcept |
Static Public Attributes | |
static constexpr U8 | DEFAULT_SYNC_FLAG_INTERNAL = 254u |
static constexpr U8 | DEFAULT_SYNC_FLAG_GVD = 255u |
static constexpr U8 | DEFAULT_SYNC_FLAG_SSBO = 252u |
static constexpr U8 | DEFAULT_SYNC_FLAG_TEXTURE = 253u |
Protected Member Functions | |
virtual bool | waitForLockedRangeLocked (const SyncObject_uptr &sync, const BufferRange &testRange, const BufferLockInstance &lock) |
Static Protected Member Functions | |
static bool | InitLockPoolEntry (RenderAPI api, BufferLockPoolEntry &entry, U8 flag, U64 frameIdx) |
Protected Attributes | |
Mutex | _bufferLockslock |
eastl::fixed_vector< BufferLockInstance, 64, true > | _bufferLocks |
eastl::fixed_vector< BufferLockInstance, 64, true > | _swapLocks |
![]() | |
const I64 | _guid |
Static Protected Attributes | |
static Mutex | s_bufferLockLock |
static BufferLockPool | s_bufferLockPool |
Definition at line 74 of file LockManager.h.
using Divide::LockManager::BufferLockPool = eastl::fixed_vector<BufferLockPoolEntry, 1024, true> |
Definition at line 88 of file LockManager.h.
|
overridevirtualdefault |
Definition at line 29 of file LockManager.cpp.
|
static |
Definition at line 64 of file LockManager.cpp.
|
static |
Definition at line 172 of file LockManager.cpp.
|
staticprotected |
Definition at line 70 of file LockManager.cpp.
bool Divide::LockManager::lockRange | ( | size_t | lockBeginBytes, |
size_t | lockLength, | ||
SyncObjectHandle | syncObj | ||
) |
Returns false if we encountered an error.
Definition at line 146 of file LockManager.cpp.
bool Divide::LockManager::waitForLockedRange | ( | size_t | lockBeginBytes, |
size_t | lockLength | ||
) |
Returns false if we encountered an error.
Definition at line 104 of file LockManager.cpp.
|
protectedvirtual |
Reimplemented in Divide::glLockManager.
Definition at line 140 of file LockManager.cpp.
|
protected |
Definition at line 110 of file LockManager.h.
|
mutableprotected |
Definition at line 109 of file LockManager.h.
|
protected |
Definition at line 111 of file LockManager.h.
|
staticconstexpr |
Definition at line 78 of file LockManager.h.
|
staticconstexpr |
Definition at line 77 of file LockManager.h.
|
staticconstexpr |
Definition at line 79 of file LockManager.h.
|
staticconstexpr |
Definition at line 80 of file LockManager.h.
|
staticprotected |
Definition at line 113 of file LockManager.h.
|
staticprotected |
Definition at line 114 of file LockManager.h.