our_dick/include/sprite_shader.hpp
2020-10-11 12:36:05 -07:00

60 lines
2.5 KiB
C++

/**
This file is a part of our_dick
Copyright (C) 2020 rexy712
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef OUR_DICK_SPRITE_SHADER_HPP
#define OUR_DICK_SPRITE_SHADER_HPP
#include "graphics/shader_program.hpp"
class sprite_shader : public gfx::shader_program
{
private:
static constexpr char s_vertex_shader_text[] = "#version 430 core\n"
"layout (location = 0) in vec3 position;"
"layout (location = 1) in vec2 tex_coords;"
"layout (location = 2) in vec4 color;"
"out vec2 frag_tex_coords;"
"out vec4 frag_vertex_color;"
"uniform mat4 model_mat;"
"uniform mat4 vp_mat;"
"void main(){"
"gl_Position = vp_mat * model_mat * vec4(position, 1.0);"
"frag_tex_coords = tex_coords;"
"frag_vertex_color = color;"
"}";
static constexpr char s_fragment_shader_text[] = "#version 430 core\n"
"out vec4 FragColor;"
"in vec2 frag_tex_coords;"
"in vec4 frag_vertex_color;"
"uniform sampler2D texture1;"
"void main(){"
"FragColor = texture(texture1, frag_tex_coords);"
"}";
public:
sprite_shader();
};
#endif