diff options
Diffstat (limited to 'Source/Asura.Engine/Graphics/Shader.h')
-rw-r--r-- | Source/Asura.Engine/Graphics/Shader.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Source/Asura.Engine/Graphics/Shader.h b/Source/Asura.Engine/Graphics/Shader.h new file mode 100644 index 0000000..c3c67ad --- /dev/null +++ b/Source/Asura.Engine/Graphics/Shader.h @@ -0,0 +1,67 @@ +#ifndef __AE_SHADER_H__ +#define __AE_SHADER_H__ + +#include "luax/luax.h" + +#include "FileSystem/Asset.h" +#include "Containers/Map.h" +#include "Containers/StringMap.hpp" +#include "Object.h" +#include "Color.h" +#include "Manager.hpp" + +namespace AsuraEngine +{ + namespace Graphics + { + + class Material; + + /// + /// һshaderһڲʼ乲ijShaderuniformsͶݣֻuniforms location + /// + class Shader final : public Filesystem::Asset + { + public: + + Shader(); + ~Shader(); + + private: + + friend class Material; + + /// + /// shaderuniformsIDӳ䡣 + /// + static Containers::StringMap<int> sUniformsID; + + /// + /// uniformID + /// + static int GetUniformID(const Containers::String& name); + + /// + /// ñ + /// vec2 Asura_Time xֵΪ뵱ǰʼʱ䣬yֵΪһ֡ʱ + /// vec2 Asura_RenderTargetSize RTĴСΪλ + /// Texture Asura_MainTexture + /// + void SetBuiltInUniforms(); + + /// + /// ӳuniforms IDlocation + /// + Containers::Map<int, int> mLocations; + + }; + + class ShaderManager final : public Manager + { + + }; + + } +} + +#endif
\ No newline at end of file |