diff options
Diffstat (limited to 'source/modules/asura-core/graphics/gpu_buffer.h')
-rw-r--r-- | source/modules/asura-core/graphics/gpu_buffer.h | 95 |
1 files changed, 0 insertions, 95 deletions
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 <asura-utils/scripting/portable.hpp> -#include <asura-utils/exceptions/exception.h> -#include <asura-utils/type.h> - -#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壬ֶ㻺vboebo֣ÿζڴԴϴݡframeworkrenderers -/// -/// -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 |