summaryrefslogtreecommitdiff
path: root/source/modules/asura-core/graphics/binding/_shader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-core/graphics/binding/_shader.cpp')
-rw-r--r--source/modules/asura-core/graphics/binding/_shader.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/source/modules/asura-core/graphics/binding/_shader.cpp b/source/modules/asura-core/graphics/binding/_shader.cpp
index e0a6320..0484997 100644
--- a/source/modules/asura-core/graphics/binding/_shader.cpp
+++ b/source/modules/asura-core/graphics/binding/_shader.cpp
@@ -136,11 +136,16 @@ namespace AsuraEngine
return 0;
}
- // shader:SetAttribPosition()
+ // shader:SetAttribPosition(vbo, offseti, stridei, normalized)
LUAX_IMPL_METHOD(Shader, _SetAttribPosition)
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ bool normalized = state.GetValue<bool>(5, false);
+ self->SetAttribPosition(vbo, offseti, stridei, normalized);
return 0;
}
@@ -149,6 +154,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribTangent(vbo, offseti, stridei);
return 0;
}
@@ -157,6 +166,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribNormal(vbo, offseti, stridei);
return 0;
}
@@ -165,6 +178,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribColor(vbo, offseti, stridei);
return 0;
}
@@ -173,6 +190,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribPosition(vbo, offseti, stridei);
return 0;
}
@@ -181,6 +202,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribPosition(vbo, offseti, stridei);
return 0;
}
@@ -189,6 +214,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribPosition(vbo, offseti, stridei);
return 0;
}
@@ -197,6 +226,10 @@ namespace AsuraEngine
{
LUAX_PREPARE(L, Shader);
+ VertexBuffer* vbo = state.CheckUserdata<VertexBuffer>(2);
+ uint offseti = state.GetValue<uint>(3, 0);
+ uint stridei = state.GetValue<uint>(4, 0);
+ self->SetAttribPosition(vbo, offseti, stridei);
return 0;
}