Brenta Engine 1.0
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
62 LoadTexture(std::string path, GLint wrapping = GL_REPEAT,
63 GLint filtering_min = GL_NEAREST,
64 GLint filtering_mag = GL_NEAREST, GLboolean hasMipmap = GL_TRUE,
65 GLint mipmap_min = GL_LINEAR_MIPMAP_LINEAR,
66 GLint mipmap_mag = GL_LINEAR, bool flip = true);
72 static void ActiveTexture(GLenum texture);
81 static void BindTexture(GLenum target, unsigned int texture,
82 GLint wrapping = GL_REPEAT,
83 GLint filtering_min = GL_NEAREST,
84 GLint filtering_mag = GL_NEAREST,
85 GLboolean hasMipmap = GL_TRUE,
86 GLint mipmap_min = GL_LINEAR_MIPMAP_LINEAR,
87 GLint mipmap_mag = GL_LINEAR);
88
89 private:
90 static void SetTextureWrapping(GLint wrapping);
91 static void SetTextureFiltering(GLint filtering_min, GLint filtering_mag);
92 static void SetMipmap(GLboolean hasMipmap, GLint mipmap_min,
93 GLint mipmap_mag);
94 static void ReadImage(const char *path, bool flip);
95};
96
97} // namespace Brenta
Texture class.
Definition texture.hpp:41
static void BindTexture(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:56
static void ActiveTexture(GLenum texture)
Activate a texture unit.
Definition texture.cpp:51
static unsigned int LoadTexture(std::string path, 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, bool flip=true)
Load a texture from a file.
Definition texture.cpp:36