summaryrefslogtreecommitdiff
path: root/Runtime/GfxDevice/null/GfxNullVBO.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/GfxDevice/null/GfxNullVBO.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/GfxDevice/null/GfxNullVBO.h')
-rw-r--r--Runtime/GfxDevice/null/GfxNullVBO.h55
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