From e62817b8252974b8a98393275874ee303840bf13 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Fri, 12 May 2017 18:49:50 +0500 Subject: 2017-05-12 --- graphics/Shader.hpp | 72 +++++++++++++---------------------------------------- 1 file changed, 17 insertions(+), 55 deletions(-) (limited to 'graphics/Shader.hpp') diff --git a/graphics/Shader.hpp b/graphics/Shader.hpp index 83e06e1..8178d2a 100644 --- a/graphics/Shader.hpp +++ b/graphics/Shader.hpp @@ -1,60 +1,22 @@ -#pragma once - #include +#include +#include +#include -class Shader { - std::string shaderSource; - GLuint shaderId; - bool isVertex = true; - - Shader(const Shader &); - -public: - Shader(std::string fileName, bool vertex = true); - - ~Shader(); - - void bind(); - - GLuint GetId() { - return shaderId; - } +#include -}; - -class ShaderProgram { - GLuint shaderProgram; +class Shader +{ +private: + const GLchar *vertex; + const GLchar *fragment; public: - ShaderProgram() { - shaderProgram = glCreateProgram(); - } - - ~ShaderProgram() { - glDeleteProgram(shaderProgram); - } - - void Attach(Shader &shader) { - glAttachShader(shaderProgram, shader.GetId()); - } - - void Link() { - glLinkProgram(shaderProgram); - GLint success; - GLchar infoLog[512]; - glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success); - if (!success) { - glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog); - std::cout << "Shader program linking failed: " << infoLog << std::endl; - } - glUseProgram(shaderProgram); - } - - GLuint GetId() { - return shaderProgram; - } - - explicit operator GLuint() const { - return shaderProgram; - } - + // Идентификатор программы + GLuint Program; + // Конструктор считывает и собирает шейдер + Shader(const GLchar* vertexPath, const GLchar* fragmentPath); + // Использование программы + void Use(); + + void Reload(); }; \ No newline at end of file -- cgit v1.2.3