Bbop-2D 0.4.1-alpha
Bbop-2D is a c++ library based on openGL to make 2D game. It implement sprite, shape, light and more.
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 int width; //<! Largeur de l'image
33 int height; //<! Hauteur de l'image
34 int nrChannels; //<! Nombre de channels de couleur de l'image
35 unsigned char *data; //<! Données de l'image
36};
37
48{
49 public:
59 Texture(const char *textureFileName);
60
68 Texture(const Image &textureImage);
69
75 Texture(const Texture &other);
76
84 void Bind() const;
85
89 void Unbind() const;
90
94 void Delete();
95
101 int getWidth() const;
102
108 int getHeight() const;
109
110 private:
111 GLuint ID; //<! ID de la texture avec opengl
112 int width, height, nrChannels; //<! info sur la texture
113};
114
118Image bbopLoadImage(const char *filename, int nrChannels);
119
123Image bbopCCutImage(const Image &toCC, int x, int y, int width, int height);
124
138Image bbopLoadPartialImage(const char *filename, int nrChannels, int x, int y,
139 int width, int height);
140
151std::vector<Texture> bbopLoadSpriteSheet(
152 const char *spriteSheetPath, int rows, int columns);
153
159void bbopFreeImage(Image &image);
160
161#endif // !TEXTURE_CLASS_H
Contient une texture qui peut être utilisé dans un sprite.
Definition textureClass.h:48
int width
Definition textureClass.h:112
void Unbind() const
Détache la texture d'opengl.
Definition textureClass.cpp:80
int getHeight() const
Renvoie la hauteur de la Texture.
Definition textureClass.cpp:76
int getWidth() const
Renvoie la larguer de la Texture.
Definition textureClass.cpp:74
void Delete()
Supprime la texture d'opengl.
Definition textureClass.cpp:82
void Bind() const
Permet de bin la texture a opengl avant de Draw.
Definition textureClass.cpp:78
GLuint ID
Definition textureClass.h:111
int nrChannels
Definition textureClass.h:112
int height
Definition textureClass.h:112
Stock une image.
Definition textureClass.h:31
unsigned char * data
Definition textureClass.h:35
int height
Definition textureClass.h:33
int nrChannels
Definition textureClass.h:34
int width
Definition textureClass.h:32
void bbopFreeImage(Image &image)
Definition textureClass.cpp:164
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:131
std::vector< Texture > bbopLoadSpriteSheet(const char *spriteSheetPath, int rows, int columns)
Charge une sprite sheet dans un vector de Texture.
Definition textureClass.cpp:140
Image bbopCCutImage(const Image &toCC, int x, int y, int width, int height)
Copy et coupe une image.
Definition textureClass.cpp:100
Image bbopLoadImage(const char *filename, int nrChannels)
Load une image.
Definition textureClass.cpp:84