summaryrefslogtreecommitdiff
path: root/source/modules/asura-core/graphics/binding/_gpu_buffer.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-16 08:54:08 +0800
committerchai <chaifix@163.com>2019-08-16 08:54:08 +0800
commita077eb38b01292611f4f6031b75e3e2c1c20f06e (patch)
tree8f760483d7b0290952bbdb5bcd8f3943102aeb3a /source/modules/asura-core/graphics/binding/_gpu_buffer.cpp
parent6a065c913e9308cc72e1ad0723b6167048f439b6 (diff)
Diffstat (limited to 'source/modules/asura-core/graphics/binding/_gpu_buffer.cpp')
-rw-r--r--source/modules/asura-core/graphics/binding/_gpu_buffer.cpp118
1 files changed, 0 insertions, 118 deletions
diff --git a/source/modules/asura-core/graphics/binding/_gpu_buffer.cpp b/source/modules/asura-core/graphics/binding/_gpu_buffer.cpp
deleted file mode 100644
index 8c39a59..0000000
--- a/source/modules/asura-core/graphics/binding/_gpu_buffer.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#include <stdlib.h>
-
-#include "../image.h"
-#include "../GPUBuffer.h"
-
-using namespace std;
-using namespace Luax;
-
-namespace_begin(AsuraEngine)
-namespace_begin(Graphics)
-
-
- LUAX_REGISTRY(GPUBuffer)
- {
- LUAX_REGISTER_METHODS(state,
- { "Fill", _Fill },
- { "GetSize", _GetSize },
- { "GetCount", _GetCount }
- );
- }
-
- LUAX_POSTPROCESS(GPUBuffer)
- {
- LUAX_REGISTER_ENUM(state, "EBufferType",
- { "VERTEX", BUFFER_TYPE_VERTEX },
- { "INDEX", BUFFER_TYPE_INDEX }
- );
- LUAX_REGISTER_ENUM(state, "EBufferUsage",
- { "STREAM", BUFFER_USAGE_STREAM },
- { "DYNAMIC", BUFFER_USAGE_DYNAMIC },
- { "STATIC", BUFFER_USAGE_STATIC }
- );
- LUAX_REGISTER_ENUM(state, "EBufferDataType",
- { "INT", BUFFER_DATA_TYPE_INT },
- { "FLOAT", BUFFER_DATA_TYPE_FLOAT },
- { "UNSIGNED_BYTE", BUFFER_DATA_TYPE_UNSIGNED_BYTE }
- );
-
- }
-
- // buffer = GPUBuffer.New(bufferType, bufferUsage, bufferDataType, size)
- // buffer = GPUBuffer.New(image)
- // buffer = GPUBuffer.New(mesh2d)
- // buffer = GPUBuffer.New(canvas)
- // buffer = GPUBuffer.New(shape)
- //LUAX_IMPL_METHOD(GPUBuffer, _New)
- //{
- // LUAX_STATE(L);
-
- // return 0;
- //}
-
- // gpubuffer:Fill({data_unit_list}, offseti)
- // data_unit_list ݵtable
- // offseti : ʼǵĵطڵ(0ʼ
- LUAX_IMPL_METHOD(GPUBuffer, _Fill)
- {
- LUAX_PREPARE(L, GPUBuffer);
-
- // ʹbufferӦ޸bufferڵһεʱʼsizeСbufferȻ䡣
- int offset = state.GetValue(3, 0);
- int count = lua_objlen(L, 2);
- int size = count * self->GetDataTypeSize();
- byte* data = (byte*)malloc(size);
- int unit = self->GetDataTypeSize();
- int i = 1;
- lua_rawgeti(L, 2, i);
- while (!lua_isnil(L, -1))
- {
- switch (self->m_DataType)
- {
- case GL_INT:
- {
- int n = state.CheckValue<int>(-1);
- memcpy(data + (i - 1)*unit, &n, unit);
- break;
- }
- case GL_FLOAT:
- {
- float n = state.CheckValue<float>(-1);
- memcpy(data + (i - 1)*unit, &n, unit);
- break;
- }
- case GL_UNSIGNED_BYTE:
- {
- unsigned char n = state.CheckValue<unsigned char>(-1);
- memcpy(data + (i - 1)*unit, &n, unit);
- break;
- }
- }
- state.Pop(1); // value
- lua_rawgeti(L, 2, ++i);
- }
- state.Pop(); // nil
-
- self->Fill(data, size, offset * unit);
-
- free(data);
- return 0;
- }
-
- // gpubuffer:GetSize()
- LUAX_IMPL_METHOD(GPUBuffer, _GetSize)
- {
- LUAX_PREPARE(L, GPUBuffer);
- state.Push(self->m_Size);
- return 0;
- }
-
- LUAX_IMPL_METHOD(GPUBuffer, _GetCount)
- {
- LUAX_PREPARE(L, GPUBuffer);
- state.Push(self->m_Size / self->GetDataTypeSize());
- return 0;
- }
-
- }
-}