OpenBarnyard
 
Loading...
Searching...
No Matches
TVertexBlockResource_DX8.h
Go to the documentation of this file.
1#pragma once
2#include "Toshi/TFreeList.h"
3#include "Render/TResource.h"
6
7#include <d3d8.h>
9
11
13
15{
16public:
19
21 {
22 return new TVertexBlockResource();
23 }
24
25public:
34
35public:
37
38 virtual TBOOL Validate() override;
39 virtual void Invalidate() override;
40 virtual TBOOL TryInvalidate() override;
41 virtual TBOOL TryValidate() override;
42
45 TBOOL CanFit( TVertexPoolResource* a_pPoolResource ) const;
46
47 void ChildVertexUsedChanged( TINT a_iChange );
48
49 TBOOL Lock( TVertexPoolResourceInterface::LockBuffer* a_pLockBuffer, TUINT16 a_uiNumVertices );
50 void Unlock();
51
52 TBOOL Create( TVertexFactoryResourceInterface* a_pFactory, TUINT16 a_uiMaxVertices, TUINT32 a_uiFlags );
53
55 void DestroyHAL();
56
57 TBOOL GetHALBuffer( HALBuffer* a_pHALBuffer ) const;
58
59private:
60 inline static TINT s_iCurrentNumHALCreated;
61 inline static TINT s_iTotalNumHALCreated;
62 inline static TINT s_iTotalNumHALDestroyed;
63 inline static TINT s_iCurrentVertexBufferBytesAllocated;
64 inline static TINT s_iTotalVertexBufferBytesAllocated;
65 inline static TINT s_iHALMemoryUsage;
66 inline static TINT s_iWastedVertexBufferBytesAllocated;
67
68protected:
77};
78
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
#define TDECLARE_FREELIST_ALLOCATOR(CLASS_NAME)
Definition TFreeList.h:3
uint16_t TUINT16
Definition Typedefs.h:15
unsigned int TUINT
Definition Typedefs.h:8
uint32_t TUINT32
Definition Typedefs.h:13
int TINT
Definition Typedefs.h:7
bool TBOOL
Definition Typedefs.h:6
virtual TBOOL Validate() override
virtual TBOOL TryInvalidate() override
static TVertexBlockResource * CreateNew()
TBOOL GetHALBuffer(HALBuffer *a_pHALBuffer) const
TDECLARE_CLASS(TVertexBlockResource, TResource)
TVertexFactoryResourceInterface * m_pFactory
TBOOL Lock(TVertexPoolResourceInterface::LockBuffer *a_pLockBuffer, TUINT16 a_uiNumVertices)
TBOOL AttachPool(TVertexPoolResource *a_pPool)
void ChildVertexUsedChanged(TINT a_iChange)
virtual void Invalidate() override
TBOOL DettachPool(TVertexPoolResource *a_pPool)
TBOOL CanFit(TVertexPoolResource *a_pPoolResource) const
virtual TBOOL TryValidate() override
IDirect3DVertexBuffer8 * apVertexBuffers[TVertexFactoryFormat::MAX_NUM_STREAMS]
virtual TBOOL Create()
Definition TResource.cpp:28
static constexpr TUINT MAX_NUM_STREAMS