30#include "GraphicsApi.h"
37#ifndef DOXYGEN_SHOULD_SKIP_THIS
203 Shader(
const char *vertexShader,
const char *fragmentShader);
386 int getUniformLocation(
const std::string& name);
387 int getAttributeLocation(
const std::string& name);
394 std::map<int, const BareTexture *> m_textures;
397#ifndef DOXYGEN_SHOULD_SKIP_THIS
An image that lives in the graphic memory that can be used for drawing.
Definition: Texture.h:79
Base class for all render targets (window, texture, ...)
Definition: RenderTarget.h:102
An OpenGL vertex and/or fragment shader.
Definition: Shader.h:119
void setUniform(const std::string &name, float val)
Specify value for a float uniform.
void setUniform(const std::string &name, const Vector2f &vec)
Specify value for a vec2 uniform.
Shader(InputStream &stream, Type type)
Load the vertex or fragment shader from a custom stream.
static void bind(const Shader *shader)
Bind a shader for rendering.
void setUniform(const std::string &name, const Vector3f &vec)
Specify value for a vec3 uniform.
Shader()
Default constructor.
void setUniform(const std::string &name, const Matrix3f &mat)
Specify value for a mat3 uniform.
Type
Type of shaders.
Definition: Shader.h:124
@ Fragment
Type for a fragment (or pixel) shader.
Definition: Shader.h:126
@ Vertex
Type for a vertex shader.
Definition: Shader.h:125
void setUniform(const std::string &name, const Vector2i &vec)
Specify value for a ivec2 uniform.
Shader(InputStream &vertexShaderStream, InputStream &fragmentShaderStream)
Load both the vertex and fragment shaders from custom streams.
void setUniform(const std::string &name, const Vector4f &vec)
Specify value for a vec4 uniform.
Shader(const char *vertexShader, const char *fragmentShader)
Load both the vertex and fragment shaders from source codes in memory.
Shader(const char *shader, Type type)
Load the vertex or fragment shader from a source code in memory.
Shader(const Path &filename, Type type)
Load the vertex of fragment shader from a file.
Shader(const Shader &)=delete
Deleted copy constructor.
void setUniform(const std::string &name, const BareTexture &tex)
Specify a texture for a sampler2D uniform.
void setUniform(const std::string &name, int val)
Specify value for a int uniform.
void setUniform(const std::string &name, const Vector4i &vec)
Specify value for a ivec4 uniform.
void setUniform(const std::string &name, const Matrix4f &mat)
Specify value for a mat4 uniform.
Shader(const Path &vertexShaderFilename, const Path &fragmentShaderFilename)
Load both the vertex and fragment shaders from files.
Shader & operator=(const Shader &)=delete
Deleted copy assignment.
void setUniform(const std::string &name, const Vector3i &vec)
Specify value for a ivec3 uniform.
std::filesystem::path Path
A path in the filesystem.
Definition: Path.h:40
The namespace for gf classes.