diff options
author | chai <chaifix@163.com> | 2019-01-12 21:48:33 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-01-12 21:48:33 +0800 |
commit | 8b00d67febf133e89f6a0bfabc41feed555dc4a9 (patch) | |
tree | fe48ef17c250afa40c2588300fcdb5920dba6951 /src/libjin/graphics/shaders/je_shader.h | |
parent | a907c39756ef6b368d06643afa491c49a9044a8e (diff) |
*去掉文件前缀je_
Diffstat (limited to 'src/libjin/graphics/shaders/je_shader.h')
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.h | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h deleted file mode 100644 index 240f24f..0000000 --- a/src/libjin/graphics/shaders/je_shader.h +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef __JE_SHADER_H__ -#define __JE_SHADER_H__ - -#include "../../core/je_configuration.h" -#if defined(jin_graphics) && (jin_graphics & jin_graphics_shader) - -#include <string> -#include <map> - -#include "../../common/je_string.h" - -#include "../je_color.h" -#include "../je_texture.h" -#include "../je_canvas.h" - -#include "je_jsl_compiler.h" - -namespace JinEngine -{ - namespace Graphics - { - namespace Shaders - { - - /// - /// Built in shader program. - /// - /// Built in shader program written with custom shading language called JSL (jin shading language). A - /// JSL program is compiled into glsl, so most glsl built in functions and structs are available in - /// JSL. - /// - class Shader : public Object - { - public: - /// - /// Shader constructor. - /// - Shader(const std::string& program); - - /// - /// Destructor of shader. - /// - virtual ~Shader(); - - /// - /// Prepare shader and set default uniforms. - /// - Shader& begin(); - - /// - /// End use shader. - /// - void end(); - - /// - /// Send float value to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param number Value of uniform variable to be sent. - /// - Shader& sendFloat(const char* name, float number); - - /// - /// Send texture to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param texture Texture to be sent. - /// - Shader& sendTexture(const char* name, const Texture* texture); - - /// - /// Send integer value to shader - /// - /// @param name Name of the uniform variable to be assigned. - /// @param value Value to be sent. - /// - Shader& sendInt(const char* name, int value); - - /// - /// Send 2D vector to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param x X value of the vector to be sent. - /// @param y Y value of the vector to be sent. - /// - Shader& sendVec2(const char* name, float x, float y); - - /// - /// Send 3D vector to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param x X value of the vector to be sent. - /// @param y Y value of the vector to be sent. - /// @param z Z value of the vector to be sent. - /// - Shader& sendVec3(const char* name, float x, float y, float z); - - /// - /// Send 4D vector to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param x X value of the vector to be sent. - /// @param y Y value of the vector to be sent. - /// @param z Z value of the vector to be sent. - /// @param w W value of the vector to be sent. - /// - Shader& sendVec4(const char* name, float x, float y, float z, float w); - - /// - /// Send canvas to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param canvas Canvas to be sent. - /// - Shader& sendCanvas(const char* name, const Canvas* canvas); - - /// - /// Send color to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param color Color to be sent. - /// - Shader& sendColor(const char* name, const Color* color); - - /// - /// Send 4 by 4 matrix to shader. - /// - /// @param name Name of the uniform variable to be assigned. - /// @param mat4 Matrix to be sent. - /// - Shader& sendMatrix4(const char* name, const Math::Matrix* mat4); - - /// - /// Set vertices value. - /// - /// @param n Number of vertices. - /// @param type Data type of each component in the array. - /// @param stride Byte offset between consecutive generic vertex attributes. - /// @param pointers Pointer to the first component of the first generic vertex attribute in the array. - /// - Shader& uploadVertices(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized = GL_FALSE); - - /// - /// Set texture UV coordinates. - /// - /// @param n Number of vertices. - /// @param type Data type of each component in the array. - /// @param stride Byte offset between consecutive generic vertex attributes. - /// @param pointers Pointer to the first component of the first generic vertex attribute in the array. - /// - Shader& uploadUV(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized = GL_FALSE); - - /// - /// Upload vertex color array. - /// - Shader& uploadColor(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized = GL_FALSE); - - /// - /// Set attribute. - /// - Shader& uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized = GL_FALSE); - - /// - /// Program ID. - /// - inline GLuint getGLProgramID() { return mPID; }; - - protected: - /// - /// Get texture unit of the uniform texture. If not, assign one. - /// - /// @param name Name of the texture uniform variable. - /// @return Texture unit which texture variable be assigned. - /// - GLint claimTextureUnit(/*const std::string& name*/); - - GLint getUniformLocation(const char* uniforms); - - /// - /// Compile JSL program into GLSL source. - /// - /// @param program JSL source code. - /// @return Return true if compile successed, otherwise return false. - /// - bool compile(const std::string& program); - - //static GLint mTextureUnit; - static GLint mAttributeIndex; - - GLuint mPID; - //GLint mCurrentTextureUnit; - //std::map<std::string, GLint> mTextureUnits; - - std::map<std::string, GLint> mUniformsLocation; - - }; - - } // namespace Shaders - } // namespace Graphics -} // namespace JinEngine - -#endif // (jin_graphics) && (jin_graphics & jin_graphics_shader) - -#endif // __JE_SHADER_H__
\ No newline at end of file |