[詳解]
34 template <AkMemID T_MEMID>
39 return AkAlloc(T_MEMID, in_uSize);
44 AkFree(T_MEMID, in_pAddress);
48 template <AkMemID T_MEMID>
58 AkFree(T_MEMID, in_pAddress);
66 template <
class T,
class TAlloc = AkRingBufferAllocatorDefault>
76 , m_nbReadableItems(0)
85 m_nbReadableItems = 0;
87 m_data =
reinterpret_cast<T*
>(TAlloc::Alloc(m_nbItems *
sizeof(T)));
100 m_nbReadableItems = 0;
114 m_nbReadableItems = 0;
126 return &m_data[m_writeIndex];
133 m_writeIndex = (m_writeIndex + nbItems) % m_nbItems;
147 return &m_data[m_readIndex];
154 m_readIndex = (m_readIndex + nbItems) % m_nbItems;
161 return m_nbReadableItems;
166 return m_nbItems - m_nbReadableItems;
AkUInt32 GetReadIndex() const
const T * GetReadPtr() const
AkUInt32 GetWriteIndex() const
#define AkFree(_pool, _pvmem)
static AkForceInline void Free(void *in_pAddress)
AKSOUNDENGINE_API void Free(AkMemPoolId in_poolId, void *in_pMemAddress)
static AkForceInline void * Alloc(size_t in_uSize)
AKRESULT
Standard function call result.
AkRingBufferAllocatorAligned< AkMemID_Processing > AkRingBufferAllocatorLEngineAligned
static AkForceInline void * Alloc(size_t in_uSize)
AkRingBufferAllocatorNoAlign< AkMemID_Object > AkRingBufferAllocatorDefault
#define AkAlloc(_pool, _size)
@ AK_Success
The operation was successful.
static AkForceInline void Free(void *in_pAddress)
void IncrementReadIndex(AkUInt32 nbItems)
AkUInt32 GetNbReadableItems() const
AkUInt32 GetNbWritableItems() const
#define AKASSERT(Condition)
AKRESULT Init(AkUInt32 nbItems)
#define AkMalign(_pool, _size, _align)
void IncrementWriteIndex(AkUInt32 nbItems)
@ AK_InsufficientMemory
Memory error.
AkRingBufferAllocatorNoAlign< AkMemID_Processing > AkRingBufferAllocatorLEngine
あなたのプロジェクトについて教えてください。ご不明な点はありませんか。
プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。
Wwiseからはじめよう