25 #ifndef SFML_SHADER_HPP    26 #define SFML_SHADER_HPP    31 #include <SFML/Graphics/Export.hpp>    32 #include <SFML/Graphics/Glsl.hpp>    33 #include <SFML/Window/GlResource.hpp>    34 #include <SFML/System/NonCopyable.hpp>    35 #include <SFML/System/Vector2.hpp>    36 #include <SFML/System/Vector3.hpp>   119     bool loadFromFile(
const std::string& filename, 
Type type);
   140     bool loadFromFile(
const std::string& vertexShaderFilename, 
const std::string& fragmentShaderFilename);
   162     bool loadFromFile(
const std::string& vertexShaderFilename, 
const std::string& geometryShaderFilename, 
const std::string& fragmentShaderFilename);
   182     bool loadFromMemory(
const std::string& shader, 
Type type);
   203     bool loadFromMemory(
const std::string& vertexShader, 
const std::string& fragmentShader);
   225     bool loadFromMemory(
const std::string& vertexShader, 
const std::string& geometryShader, 
const std::string& fragmentShader);
   297     void setUniform(
const std::string& name, 
float x);
   306     void setUniform(
const std::string& name, 
const Glsl::Vec2& vector);
   315     void setUniform(
const std::string& name, 
const Glsl::Vec3& vector);
   333     void setUniform(
const std::string& name, 
const Glsl::Vec4& vector);
   342     void setUniform(
const std::string& name, 
int x);
   351     void setUniform(
const std::string& name, 
const Glsl::Ivec2& vector);
   360     void setUniform(
const std::string& name, 
const Glsl::Ivec3& vector);
   377     void setUniform(
const std::string& name, 
const Glsl::Ivec4& vector);
   386     void setUniform(
const std::string& name, 
bool x);
   395     void setUniform(
const std::string& name, 
const Glsl::Bvec2& vector);
   404     void setUniform(
const std::string& name, 
const Glsl::Bvec3& vector);
   413     void setUniform(
const std::string& name, 
const Glsl::Bvec4& vector);
   422     void setUniform(
const std::string& name, 
const Glsl::Mat3& matrix);
   431     void setUniform(
const std::string& name, 
const Glsl::Mat4& matrix);
   463     void setUniform(
const std::string& name, 
const Texture& texture);
   496     void setUniformArray(
const std::string& name, 
const float* scalarArray, std::size_t length);
   506     void setUniformArray(
const std::string& name, 
const Glsl::Vec2* vectorArray, std::size_t length);
   516     void setUniformArray(
const std::string& name, 
const Glsl::Vec3* vectorArray, std::size_t length);
   526     void setUniformArray(
const std::string& name, 
const Glsl::Vec4* vectorArray, std::size_t length);
   536     void setUniformArray(
const std::string& name, 
const Glsl::Mat3* matrixArray, std::size_t length);
   546     void setUniformArray(
const std::string& name, 
const Glsl::Mat4* matrixArray, std::size_t length);
   554     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
float x);
   562     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
float x, 
float y);
   570     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
float x, 
float y, 
float z);
   578     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
float x, 
float y, 
float z, 
float w);
   586     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
const Vector2f& vector);
   594     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
const Vector3f& vector);
   602     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
const Color& color);
   610     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
const Transform& transform);
   618     SFML_DEPRECATED 
void setParameter(
const std::string& name, 
const Texture& texture);
   638     unsigned int getNativeHandle() 
const;
   661     static void bind(
const Shader* shader);
   673     static bool isAvailable();
   692     static bool isGeometryAvailable();
   709     bool compile(
const char* vertexShaderCode, 
const char* geometryShaderCode, 
const char* fragmentShaderCode);
   718     void bindTextures() 
const;
   728     int getUniformLocation(
const std::string& name);
   737     struct UniformBinder;
   742     typedef std::map<int, const Texture*> TextureTable;
   743     typedef std::map<std::string, int> UniformTable;
   748     unsigned int m_shaderProgram;  
   749     int          m_currentTexture; 
   750     TextureTable m_textures;       
   751     UniformTable m_uniforms;       
   757 #endif // SFML_SHADER_HPP implementation defined Bvec4
4D bool vector (bvec4 in GLSL) 
Image living on the graphics card that can be used for drawing. 
implementation defined Ivec4
4D int vector (ivec4 in GLSL) 
implementation defined Mat4
4x4 float matrix (mat4 in GLSL) 
Utility class for manipulating RGBA colors. 
Utility template class for manipulating 3-dimensional vectors. 
implementation defined Vec4
4D float vector (vec4 in GLSL) 
implementation defined Mat3
3x3 float matrix (mat3 in GLSL) 
Special type that can be passed to setUniform(), and that represents the texture of the object being ...
Utility class that makes any derived class non-copyable. 
static CurrentTextureType CurrentTexture
Represents the texture of the object being drawn. 
Shader class (vertex, geometry and fragment) 
Base class for classes that require an OpenGL context.