From bad78945ceba425f6a80e3b8dca2414d592970eb Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 2 Aug 2019 20:51:00 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=90=8D=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/modules/asura-core/graphics/gpu_buffer.h | 95 ------------------------- 1 file changed, 95 deletions(-) delete mode 100644 source/modules/asura-core/graphics/gpu_buffer.h (limited to 'source/modules/asura-core/graphics/gpu_buffer.h') diff --git a/source/modules/asura-core/graphics/gpu_buffer.h b/source/modules/asura-core/graphics/gpu_buffer.h deleted file mode 100644 index 3153904..0000000 --- a/source/modules/asura-core/graphics/gpu_buffer.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef __ASURA_GPU_BUFFER_H__ -#define __ASURA_GPU_BUFFER_H__ - -#include -#include -#include - -#include "gfx_device.h" - -namespace_begin(AsuraEngine) -namespace_begin(Graphics) - -enum BufferType -{ - BUFFER_TYPE_VERTEX, ///< 顶点缓冲,保存position\tangent\normal\color\texcoord(n) - BUFFER_TYPE_INDEX, ///< 索引缓冲 -}; - -enum BufferUsage -{ - BUFFER_USAGE_STREAM, ///< 修改一次,使用次数低 - BUFFER_USAGE_DYNAMIC, ///< 修改一次,经常使用 - BUFFER_USAGE_STATIC, ///< 经常修改和使用 -}; - -enum BufferDataType -{ - BUFFER_DATA_TYPE_INT, - BUFFER_DATA_TYPE_FLOAT, - BUFFER_DATA_TYPE_UNSIGNED_BYTE, -}; - -/// -/// VRAM缓冲,分顶点缓冲vbo和索引缓冲ebo两种,避免每次都从内存向显存上传数据。在framework的renderers中 -/// 构建。 -/// -ASURA_ABSTRACT class GPUBuffer -{ -public: - - GPUBuffer(BufferType type, BufferUsage usage, BufferDataType datatype, size_t size); - virtual ~GPUBuffer(); - - static size_t GetDataTypeSize(GLenum datatype); - - bool Fill(const void* data, size_t size, uint offset = 0) ASURA_THROW(Exception); - - void Bind(); - void UnBind(); - - uint GetBufferSize(); - uint GetBufferCount(); - GLenum GetDataType(); - size_t GetDataTypeSize(); - -private: - - GLenum ConvertBufferType(BufferType type); - GLenum ConvertBufferUsage(BufferUsage type); - GLenum ConvertBufferDataType(BufferDataType type); - - GLenum m_Target; - GLuint m_Buffer; - - /// opengl的显存缓冲并没有对数据类型的要求,只在glVertexAttribPointer时会指定,并在drawcall 时根据给定 - /// 的数据起始地址和类型从buffer中取各类顶点数据,所以不同的数据类型可以保存在一个buffer中。但是为了保持 - /// 接口的简洁,这里在初始化buffer时指明保存的数据类型,并在整个周期内保持数据类型的一致,所以不同的数据 - /// 类型分属不同的buffer。 - - GLenum m_DataType; - GLuint m_Usage; - uint m_Size; - -#if ASURA_DEBUG - byte* m_Data; -#endif - -luaxport: - - LUAX_DECL_ABSTRACT_FACTORY(GPUBuffer); - - LUAX_DECL_ENUM(BufferType, 1); - LUAX_DECL_ENUM(BufferUsage, 1); - LUAX_DECL_ENUM(BufferDataType, 2); - - LUAX_DECL_METHOD(_Fill); - LUAX_DECL_METHOD(_GetSize); - LUAX_DECL_METHOD(_GetCount); - -}; - -namespace_end -namespace_end - -#endif \ No newline at end of file -- cgit v1.1-26-g67d0