summaryrefslogtreecommitdiff
path: root/Source/modules/asura-core/Graphics/binding/VertexBuffer.binding.cpp
blob: 8ed487b9c8f38f78705f128cea214d1dc44e497c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "../VertexBuffer.h"

using namespace std;
using namespace Luax;

namespace_begin(AsuraEngine)
namespace_begin(Graphics)

		
		LUAX_REGISTRY(VertexBuffer)
		{
			LUAX_REGISTER_METHODS(state,
				{ "New", _New }
			);
		}

		LUAX_POSTPROCESS(VertexBuffer)
		{

		}

		// vbo = VertexBuffer.New(usage, data_type, count)
		LUAX_IMPL_METHOD(VertexBuffer, _New)
		{
			LUAX_STATE(L);

			BufferUsage usage = (BufferUsage)state.CheckValue<uint>(1);
			BufferDataType datatype = (BufferDataType)state.CheckValue<uint>(2);
			uint count = state.CheckValue<uint>(3);

			VertexBuffer* vbo = new VertexBuffer(usage, datatype, count * GPUBuffer::GetDataTypeSize(datatype));
			vbo->PushLuaxUserdata(state);

			return 1;
		}

	}
}