summaryrefslogtreecommitdiff
path: root/Source/Asura.Engine/Graphics/Shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Asura.Engine/Graphics/Shader.h')
-rw-r--r--Source/Asura.Engine/Graphics/Shader.h53
1 files changed, 29 insertions, 24 deletions
diff --git a/Source/Asura.Engine/Graphics/Shader.h b/Source/Asura.Engine/Graphics/Shader.h
index 7dbfb0d..932cc42 100644
--- a/Source/Asura.Engine/Graphics/Shader.h
+++ b/Source/Asura.Engine/Graphics/Shader.h
@@ -11,7 +11,7 @@
#include "Math/Vector4.h"
#include "Math/Matrix44.h"
#include "StringMap.hpp"
-#include "Object.h"
+#include "Scripting/Portable.h"
#include "Color.h"
#include "Manager.hpp"
#include "Texture.h"
@@ -26,13 +26,16 @@ namespace AsuraEngine
/// һshaderһڲʼ乲ijShaderuniformsͶݣֻṩuniformsuseɫķ༭
/// ÿshaderͨshaderҵuniforms¶frameworkmaterialá
///
- class Shader final : virtual public Object, public Filesystem::Reloadable
+ class Shader ASURA_FINAL
+ : public Scripting::Portable
+ , public Filesystem::Reloadable
{
public:
Shader();
+
~Shader();
-
+
///
/// ӴshaderʱȼǷϴλuniforms location mapʹglAttachShader±ɫ
/// ɫ
@@ -42,12 +45,12 @@ namespace AsuraEngine
///
/// shaderΪ
///
- void Use();
+ void Use();
///
/// shaderΪǻ
///
- void Unuse();
+ void Unuse();
///
/// Ѿ֪uniform location£ֵ
@@ -71,25 +74,6 @@ namespace AsuraEngine
///
static uint GetGLTextureUnitCount();
- //----------------------------------------------------------------------------------------------------------
-
- LUAX_DECL_FACTORY(SimShader);
-
- LUAX_DECL_METHOD(l_Use);
- LUAX_DECL_METHOD(l_Unuse);
- LUAX_DECL_METHOD(l_Load);
- LUAX_DECL_METHOD(l_HasUniform);
- LUAX_DECL_METHOD(l_GetUniformLocation);
- LUAX_DECL_METHOD(l_SetBuiltInUniforms);
- LUAX_DECL_METHOD(l_SetUniformFloat);
- LUAX_DECL_METHOD(l_SetUniformTexture);
- LUAX_DECL_METHOD(l_SetUniformVector2);
- LUAX_DECL_METHOD(l_SetUniformVector3);
- LUAX_DECL_METHOD(l_SetUniformVector4);
- LUAX_DECL_METHOD(l_SetUniformColor);
-
- //----------------------------------------------------------------------------------------------------------
-
private:
///
@@ -110,6 +94,27 @@ namespace AsuraEngine
///
GLuint mProgramHandle;
+ public:
+
+ //----------------------------------------------------------------------------------------------------------
+
+ LUAX_DECL_FACTORY(SimShader);
+
+ LUAX_DECL_METHOD(l_Use);
+ LUAX_DECL_METHOD(l_Unuse);
+ LUAX_DECL_METHOD(l_Load);
+ LUAX_DECL_METHOD(l_HasUniform);
+ LUAX_DECL_METHOD(l_GetUniformLocation);
+ LUAX_DECL_METHOD(l_SetBuiltInUniforms);
+ LUAX_DECL_METHOD(l_SetUniformFloat);
+ LUAX_DECL_METHOD(l_SetUniformTexture);
+ LUAX_DECL_METHOD(l_SetUniformVector2);
+ LUAX_DECL_METHOD(l_SetUniformVector3);
+ LUAX_DECL_METHOD(l_SetUniformVector4);
+ LUAX_DECL_METHOD(l_SetUniformColor);
+
+ //----------------------------------------------------------------------------------------------------------
+
};
}