Bbop-Library 0.4.1-alpha
Opengl library to build 2d apps and game that implement a light system named Lumop
 
Loading...
Searching...
No Matches
textureClass.h
Go to the documentation of this file.
1/*
2 * textureClass.h
3 *
4 * Ce programme est distribué sous les termes de la Licence Publique
5 * Générale GNU, version 3.0, telle que publiée par la Free Software
6 * Foundation. Consultez la Licence Publique Générale GNU pour plus de
7 * détails.
8 *
9 * Vous devez avoir reçu une copie de la Licence Publique Générale GNU
10 * en même temps que ce programme. Si ce n'est pas le cas, consultez
11 * <https://www.gnu.org/licenses/>.
12 */
13
14#ifndef TEXTURE_CLASS_H
15#define TEXTURE_CLASS_H
16
17#include "bbopMathClass.h"
18#include <GL/glew.h>
19#include <GLFW/glfw3.h>
20#include <iostream>
21#include <vector>
22
31struct Image
32{
33 int width; //<! Largeur de l'image
34 int height; //<! Hauteur de l'image
35 int nrChannels; //<! Nombre de channels de couleur de l'image
36 unsigned char *data; //<! Données de l'image
37};
38
48class Texture
49{
50public:
51
61 Texture(const char* textureFileName);
62
70 Texture(const Image &textureImage);
71
77 Texture(const Texture &other);
78
86 void Bind() const;
87
91 void Unbind() const;
92
96 void Delete();
97
103 int getWidth() const;
104
110 int getHeight() const;
111private:
112 GLuint ID; //<! ID de la texture avec opengl
113 int width, height, nrChannels; //<! info sur la texture
114};
115
119Image bbopLoadImage(const char *filename, int nrChannels);
120
124Image bbopCCutImage(const Image &toCC, int x, int y, int width, int height);
125
139Image bbopLoadPartialImage(const char *filename, int nrChannels, int x, int y, int width, int height);
140
151std::vector<Texture> bbopLoadSpriteSheet(const char *spriteSheetPath, int rows, int columns);
152
158void bbopFreeImage(Image &image);
159
160#endif // !TEXTURE_CLASS_H
void Unbind() const
Détache la texture d'opengl.
Definition textureClass.cpp:89
int getHeight() const
Renvoie la hauteur de la Texture.
Definition textureClass.cpp:79
int getWidth() const
Renvoie la larguer de la Texture.
Definition textureClass.cpp:74
Texture(const char *textureFileName)
Constructeur par défault de la class Texture.
Definition textureClass.cpp:24
void Delete()
Supprime la texture d'opengl.
Definition textureClass.cpp:94
void Bind() const
Permet de bin la texture a opengl avant de Draw.
Definition textureClass.cpp:84
Stock une image.
Definition textureClass.h:32
unsigned char * data
Definition textureClass.h:36
int height
Definition textureClass.h:34
int nrChannels
Definition textureClass.h:35
int width
Definition textureClass.h:33
void bbopFreeImage(Image &image)
Definition textureClass.cpp:168
Image bbopLoadPartialImage(const char *filename, int nrChannels, int x, int y, int width, int height)
Charge de manière partiel une image.
Definition textureClass.cpp:139
std::vector< Texture > bbopLoadSpriteSheet(const char *spriteSheetPath, int rows, int columns)
Charge une sprite sheet dans un vector de Texture.
Definition textureClass.cpp:146
Image bbopCCutImage(const Image &toCC, int x, int y, int width, int height)
Copy et coupe une image.
Definition textureClass.cpp:114
Image bbopLoadImage(const char *filename, int nrChannels)
Load une image.
Definition textureClass.cpp:99