From 866e00474be3bfe0e7dac73b720af0b9ebf7109a Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 13 Apr 2019 20:15:07 +0800 Subject: *misc --- source/modules/asura-core/graphics/gpu_buffer.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (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 index f2e83fc..c492cbb 100644 --- a/source/modules/asura-core/graphics/gpu_buffer.h +++ b/source/modules/asura-core/graphics/gpu_buffer.h @@ -33,15 +33,17 @@ namespace AsuraEngine }; /// - /// GPU缓冲,分顶点缓冲vbo和索引缓冲ebo两种,避免每次都从内存向显存上传数据。 + /// VRAM缓冲,分顶点缓冲vbo和索引缓冲ebo两种,避免每次都从内存向显存上传数据。 /// - ASURA_ABSTRACT class GPUBuffer : public AEScripting::Object + ASURA_ABSTRACT class GPUBuffer { public: GPUBuffer(BufferType type, BufferUsage usage, BufferDataType datatype, size_t size); virtual ~GPUBuffer(); + static size_t GetDataTypeSize(GLenum datatype); + /// /// 初始化\更新缓存,如果没有gpu buffer资源,认为是初始化,否则认为是更新。 /// @@ -53,9 +55,16 @@ namespace AsuraEngine void Bind(); void UnBind(); + /// + /// 获得buffer的大小(Byte) + /// uint GetBufferSize(); - + /// + /// 获得buffer的元素个数=size/datatypesize + /// + uint GetBufferCount(); GLenum GetDataType(); + size_t GetDataTypeSize(); private: @@ -76,7 +85,6 @@ namespace AsuraEngine GLenum ConvertBufferType(BufferType type); GLenum ConvertBufferUsage(BufferUsage type); GLenum ConvertBufferDataType(BufferDataType type); - size_t GetDataTypeSize(); GLenum mTarget; GLuint mBuffer; -- cgit v1.1-26-g67d0