21TIndexBlockResource::TIndexBlockResource()
33TIndexBlockResource::~TIndexBlockResource()
86 if (
Lock( &pair.second, 0 ) )
91 [](
TResource* a_pResource,
void* a_pUserData ) {
97 if ( pPool->m_uiFlags & 1 )
99 pPool->m_uiIndexOffset = pPair->second.uiOffset;
100 pPair->second.uiOffset += pPool->GetNumIndices();
103 pPair->second.pBuffer + pPool->m_uiIndexOffset,
164 DWORD usage = D3DUSAGE_WRITEONLY;
168 usage = D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY;
172 if ( !pRenderer->GetCurrentDevice()->SupportsHardwareTransfomations() )
174 usage |= D3DUSAGE_SOFTWAREPROCESSING;
177 HRESULT hRes = pRenderer->GetDirect3DDevice()->CreateIndexBuffer(
181 (
m_uiFlags & 1 ) ? D3DPOOL_MANAGED : D3DPOOL_DEFAULT,
185 if ( FAILED( hRes ) )
210 s_iHALMemoryUsage = s_iHALMemoryUsage - memInfoHAL.
m_uiMemUsage;
219 TUINT uiNumIndices = 0;
224 uiFlags = D3DLOCK_NOSYSLOCK;
237 uiNumIndices = a_uiNumIndices;
241 uiFlags = D3DLOCK_DISCARD | D3DLOCK_NOSYSLOCK;
247 uiFlags = D3DLOCK_NOOVERWRITE | D3DLOCK_NOSYSLOCK;
255 uiFlags = D3DLOCK_DISCARD | D3DLOCK_NOSYSLOCK;
263 (BYTE**)&a_pLockBuffer->
pBuffer,
267 if ( FAILED( hRes ) )
285 if ( FAILED( hRes ) )
#define TSTATICCAST(POINTERTYPE, VALUE)
#define HASANYFLAG(STATE, FLAG)
#define TOSHI_NAMESPACE_START
#define TOSHI_NAMESPACE_END
#define TDEFINE_FREELIST_ALLOCATOR(CLASS_NAME)
#define TDEFINE_CLASS(...)
static void GetHALMemInfo(HALMemInfo &a_rHALMemInfo)
Hardware abstraction layer memory information.
TSIZE m_uiMemUsage
Total memory usage.
virtual TBOOL Validate() override
TBOOL DettachPool(TIndexPoolResource *a_pPool)
TBOOL Lock(TIndexPoolResourceInterface::LockBuffer *a_pLockBuffer, TUINT16 a_uiNumIndices)
virtual TBOOL TryValidate() override
TIndexFactoryResourceInterface * m_pFactory
TBOOL AttachPool(TIndexPoolResource *a_pPool)
TBOOL CanFit(TIndexPoolResource *a_pPoolResource) const
virtual void Invalidate() override
void ChildIndexUsedChanged(TINT a_iChange)
TBOOL GetHALBuffer(HALBuffer *a_pHALBuffer) const
virtual TBOOL TryInvalidate() override
static void PrintError(TINT32 a_eError, const TCHAR *a_szInfo)
Prints error text caused by some directx call.
static TFORCEINLINE TRenderD3DInterface * Interface()
Gets the render interface singleton.
TUINT16 GetNumIndices() const
void DestroyResource(TResource *resource)
virtual void Invalidate()
void SetParent(TResource *a_pParent)
TBOOL RecurseSimple(t_RecurseCb a_pCallback, TResource *a_pResource, void *a_pUserData)
TRenderInterface * GetRenderer() const
TNodeTree< T > * Tree() const
TBOOL IsExactly(TClass *a_pClass)
static void * MemCopy(void *dst, const void *src, TSIZE size)