From c302f5ae5f9e30a28e487e8a764d9cc31546bbea Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 29 Mar 2019 22:51:04 +0800 Subject: *rename --- source/libs/asura-lib-core/graphics/shader.h | 126 --------------------------- 1 file changed, 126 deletions(-) delete mode 100644 source/libs/asura-lib-core/graphics/shader.h (limited to 'source/libs/asura-lib-core/graphics/shader.h') diff --git a/source/libs/asura-lib-core/graphics/shader.h b/source/libs/asura-lib-core/graphics/shader.h deleted file mode 100644 index 1c81355..0000000 --- a/source/libs/asura-lib-core/graphics/shader.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __ASURA_ENGINE_SHADER_H__ -#define __ASURA_ENGINE_SHADER_H__ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "color.h" -#include "texture.h" -#include "gl.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - /// - /// 一个shader是一个在材质间共享的程序。Shader本身不保存uniforms和顶点数据,只提供设置uniforms和use着色器的方法。编辑 - /// 器针对每个shader,会通过shader代码找到声明的uniforms变量,并暴露给framework的material设置。 - /// - class Shader ASURA_FINAL - : public Scripting::Portable - , public AEIO::Reloadable - { - public: - - Shader(); - - ~Shader(); - - /// - /// 从代码编译shader,编译时会先检测是否有上次缓存的uniforms location map。使用glAttachShader重新编译生成着色器, - /// 不会重新申请着色器程序。 - /// - bool Load(const std::string& vertexShader, const std::string& fragmentShader); - - /// - /// 将当期shader设置为活动 - /// - void Use(); - - /// - /// 将当期shader设置为非活动 - /// - void Unuse(); - - /// - /// 在已经知道uniform location的情况下,设置值。 - /// - void SetUniformFloat(uint loc, float value); - void SetUniformTexture(uint loc, const Texture& texture); - void SetUniformVector2(uint loc, const Math::Vector2f& vec2); - void SetUniformVector3(uint loc, const Math::Vector3f& vec3); - void SetUniformVector4(uint loc, const Math::Vector4f& vec4); - void SetUniformColor(uint loc, const Color& color); - void SetUniformMatrix44(uint loc, const Math::Matrix44& mat44); - - uint GetUniformLocation(const std::string& uniform); - - bool HasUniform(const std::string& uniform); - - GLuint GetGLProgramHandle(); - - /// - /// 获得texture unit数量,一般为16个 - /// - static uint GetGLTextureUnitCount(); - - private: - - /// - /// 当前活动的shader - /// - static Shader* mCurrentShader; - - /// - /// 设置内置变量: - /// vec2 Asura_Time x值为进入当前场景开始的时间,y值为上一帧的时间间隔 - /// vec2 Asura_RenderTargetSize RT的大小,以像素为单位 - /// Texture Asura_MainTexture 主纹理 - /// - void SetBuiltInUniforms(); - - /// - /// OpenGL shader program handle. - /// - GLuint mProgramHandle; - - //------------------------------------------------------------------------------// - - public: - - LUAX_DECL_FACTORY(SimShader); - - LUAX_DECL_METHOD(_New); - LUAX_DECL_METHOD(_Use); - LUAX_DECL_METHOD(_Unuse); - LUAX_DECL_METHOD(_Load); - LUAX_DECL_METHOD(_HasUniform); - LUAX_DECL_METHOD(_GetUniformLocation); - LUAX_DECL_METHOD(_SetBuiltInUniforms); - LUAX_DECL_METHOD(_SetUniformFloat); - LUAX_DECL_METHOD(_SetUniformTexture); - LUAX_DECL_METHOD(_SetUniformVector2); - LUAX_DECL_METHOD(_SetUniformVector3); - LUAX_DECL_METHOD(_SetUniformVector4); - LUAX_DECL_METHOD(_SetUniformColor); - - private: - - Luax::LuaxMemberRef mCodeLuaRef; - - }; - - } -} - -#endif \ No newline at end of file -- cgit v1.1-26-g67d0