Go to the documentation of this file.
32 #include <unordered_map>
44 class PipelineStateGLImpl;
92 static_assert(MAX_BUFFER_SLOTS <=
sizeof(UsedSlotsMask) * 8,
"Use more bits for UsedSlotsMask");
105 } Streams[MAX_BUFFER_SLOTS];
121 void ClearStaleKeys(
const std::vector<VAOHashKey>& StaleKeys);
124 std::unordered_map<VAOHashKey, GLObjectWrappers::GLVertexArrayObj, VAOHashKey::Hasher> m_Cache;
126 std::unordered_multimap<UniqueIdentifier, VAOHashKey> m_PSOToKey;
127 std::unordered_multimap<UniqueIdentifier, VAOHashKey> m_BuffToKey;
void OnDestroyBuffer(const BufferGLImpl &Buffer)
Definition: VAOCache.cpp:62
Definition: VAOCache.hpp:60
Uint32 Offset
Definition: VAOCache.hpp:97
Definition: VAOCache.hpp:94
VAOCache & operator=(const VAOCache &)=delete
bool operator==(const Plane3D &p1, const Plane3D &p2)
Definition: AdvancedMath.hpp:442
const Uint32 NumVertexStreams
Definition: VAOCache.hpp:65
void OnDestroyPSO(const PipelineStateGLImpl &PSO)
Definition: VAOCache.cpp:82
bool operator!=(const StreamAttribs &rhs) const
Definition: VAOCache.hpp:101
Definition: VAOCache.hpp:47
VAOCache()
Definition: VAOCache.cpp:47
VertexStreamInfo< BufferGLImpl > *const VertexStreams
Definition: VAOCache.hpp:64
Definition: VAOCache.hpp:111
Pipeline state object implementation in OpenGL backend.
Definition: PipelineStateGLImpl.hpp:45
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
std::size_t operator()(const VAOHashKey &Key) const
Definition: VAOCache.hpp:113
Buffer object implementation in OpenGL backend.
Definition: BufferGLImpl.hpp:41
Describes input vertex stream.
Definition: DeviceContextBase.hpp:87
UniqueIdentifier BufferUId
Definition: VAOCache.hpp:96
const GLObjectWrappers::GLVertexArrayObj & GetVAO(const VAOAttribs &Attribs, class GLContextState &GLContextState)
Definition: VAOCache.cpp:213
Definition: GLObjectWrapper.hpp:36
~VAOCache()
Definition: VAOCache.cpp:55
Definition: GLContextState.hpp:39
const GLObjectWrappers::GLVertexArrayObj & GetEmptyVAO()
Definition: VAOCache.cpp:339
Int32 UniqueIdentifier
Definition: UniqueIdentifier.hpp:36
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
const PipelineStateGLImpl & PSO
Definition: VAOCache.hpp:62
BufferGLImpl *const pIndexBuffer
Definition: VAOCache.hpp:63