diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/GfxDevice/null/GfxNullVBO.h |
Diffstat (limited to 'Runtime/GfxDevice/null/GfxNullVBO.h')
-rw-r--r-- | Runtime/GfxDevice/null/GfxNullVBO.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Runtime/GfxDevice/null/GfxNullVBO.h b/Runtime/GfxDevice/null/GfxNullVBO.h new file mode 100644 index 0000000..ce4d0fa --- /dev/null +++ b/Runtime/GfxDevice/null/GfxNullVBO.h @@ -0,0 +1,55 @@ +#pragma once + +#include "Runtime/Shaders/BufferedVBO.h" + + +class GfxNullVBO : public BufferedVBO +{ +public: + inline GfxNullVBO(void) {} + virtual ~GfxNullVBO(void) {} + + virtual void UpdateVertexData( const VertexBufferData& buffer ); + virtual void UpdateIndexData (const IndexBufferData& buffer); + virtual void DrawVBO (const ChannelAssigns& channels, UInt32 firstIndexByte, UInt32 indexCount, GfxPrimitiveType topology, UInt32 firstVertex, UInt32 vertexCount ); + #if GFX_ENABLE_DRAW_CALL_BATCHING + virtual void DrawCustomIndexed( const ChannelAssigns& channels, void* indices, UInt32 indexCount, + GfxPrimitiveType topology, UInt32 vertexRangeBegin, UInt32 vertexRangeEnd, UInt32 drawVertexCount ); + #endif + + virtual bool IsVertexBufferLost() const { return false; } + + virtual int GetRuntimeMemorySize() const { return 0; } +}; + + + +class GfxDynamicNullVBO : + public DynamicVBO +{ +private: + UInt8 *vertexBuffer; + UInt32 vertexBufferSize; + UInt8 *indexBuffer; + UInt32 indexBufferSize; + +public: + inline GfxDynamicNullVBO(void) : + vertexBuffer(NULL), + vertexBufferSize(0), + indexBuffer(NULL), + indexBufferSize(0) + { + } + + virtual ~GfxDynamicNullVBO(void) + { + delete[] this->vertexBuffer; + delete[] this->indexBuffer; + } + + virtual bool GetChunk( UInt32 shaderChannelMask, UInt32 maxVertices, UInt32 maxIndices, RenderMode renderMode, void** outVB, void** outIB ); + virtual void ReleaseChunk( UInt32 actualVertices, UInt32 actualIndices ); + virtual void DrawChunk (const ChannelAssigns& channels); + +};
\ No newline at end of file |