Brenta Engine 1.1
Loading...
Searching...
No Matches
texture.hpp
1/*
2 * MIT License
3 *
4 * Copyright (c) 2024 Giovanni Santini
5
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 */
26
27#pragma once
28
29#include <glad/glad.h> /* OpenGL driver */
30#include <string>
31
32namespace brenta
33{
34
41{
42 public:
61 static unsigned int load_texture(std::string path,
62 GLint wrapping = GL_REPEAT,
63 GLint filtering_min = GL_NEAREST,
64 GLint filtering_mag = GL_NEAREST,
65 GLboolean has_mipmap = GL_TRUE,
66 GLint mipmap_min = GL_LINEAR_MIPMAP_LINEAR,
67 GLint mipmap_mag = GL_LINEAR,
68 bool flip = true);
74 static void active_texture(GLenum texture);
83 static void bind_texture(GLenum target, unsigned int texture,
84 GLint wrapping = GL_REPEAT,
85 GLint filtering_min = GL_NEAREST,
86 GLint filtering_mag = GL_NEAREST,
87 GLboolean hasMipmap = GL_TRUE,
88 GLint mipmap_min = GL_LINEAR_MIPMAP_LINEAR,
89 GLint mipmap_mag = GL_LINEAR);
90
91 private:
92 static void set_texture_wrapping(GLint wrapping);
93 static void set_texture_filtering(GLint filtering_min, GLint filtering_mag);
94 static void set_mipmap(GLboolean has_mipmap, GLint mipmap_min,
95 GLint mipmap_mag);
96 static void read_image(const char *path, bool flip);
97};
98
99} // namespace brenta
Texture class.
Definition texture.hpp:41
static void active_texture(GLenum texture)
Activate a texture unit.
Definition texture.cpp:52
static unsigned int load_texture(std::string path, GLint wrapping=GL_REPEAT, GLint filtering_min=GL_NEAREST, GLint filtering_mag=GL_NEAREST, GLboolean has_mipmap=GL_TRUE, GLint mipmap_min=GL_LINEAR_MIPMAP_LINEAR, GLint mipmap_mag=GL_LINEAR, bool flip=true)
Load a texture from a file.
Definition texture.cpp:37
static void bind_texture(GLenum target, unsigned int texture, GLint wrapping=GL_REPEAT, GLint filtering_min=GL_NEAREST, GLint filtering_mag=GL_NEAREST, GLboolean hasMipmap=GL_TRUE, GLint mipmap_min=GL_LINEAR_MIPMAP_LINEAR, GLint mipmap_mag=GL_LINEAR)
Bind a texture.
Definition texture.cpp:57