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
spriteClass.h
Go to the documentation of this file.
1/*
2 * spriteClass.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 SPRITE_CLASS_H
15#define SPRITE_CLASS_H
16
17#include <GL/glew.h>
18#include <GLFW/glfw3.h>
19#include <cmath>
20
21#include "textureClass.h"
22#include "collisionBoxClass.h"
23#include "bbopMathClass.h"
24#include "bbopGlobal.h"
25#include "shapeClass.h"
26#include "VAO.h"
27#include "VBO.h"
28#include "EBO.h"
29
38class Sprite : public Shape
39{
40public:
41 Sprite(Texture nTexture, Vector2f nPos, Vector3i nRGB, Vector2f nOrigin, float nRotation, float nAlpha);
42 Sprite(Texture nTexture, Vector2f nPos, Vector3i nRGB, Vector2f nOrigin);
43 Sprite(Texture nTexture, Vector2f nPos);
44
50 Sprite(Texture nTexture);
51
57 Sprite();
58
62 Sprite(const Sprite& other);
63
67 ~Sprite();
68
72 Sprite& operator=(const Sprite& other);
73
74 void Draw(GLint* renderUniforms) const override;
75
81 void setTexture(const Texture &nTexture);
82
89
97 void setNormalMap(const Texture &nNormalMap);
98
105
111 bool getRGBFilterState() const;
112
118 void setRGBFilterState(bool etat);
119
123 void flipHorizontally();
124
128 void flipVertically();
129
130private:
131 Texture* spriteTexture; // pointeur ves la Texture a bing avec opengl lors du dessin
132 Texture* spriteNormalMap; // normal map de la texture du sprite
133protected:
134 GLfloat vertices[32];
135 GLuint indices[6];
137 void buildVAO() override; //<! Calcule de la geométrie
138 void updateVBO() override; //<! Recalcule de la géométrie
139 void updateVBORGB() override;
140 void updateVBOAlpha() override;
141 };
142
149{
150public:
151 void Draw(GLint* renderUniforms) const override;
152 void DrawAsFrameBuffer() const;
153};
154
155#endif // !SPRITE_CLASS_H
Definition spriteClass.h:149
void Draw(GLint *renderUniforms) const override
Déssine l'objet héritant de la class.
Definition spriteClass.cpp:312
void DrawAsFrameBuffer() const
Definition spriteClass.cpp:322
Shape(GLfloat *vertices, GLsizeiptr verticesSize, GLuint *indices, GLsizeiptr indicesSize)
Constructeur de Shape.
Definition shapeClass.cpp:19
GLuint indices[6]
Definition spriteClass.h:135
Sprite()
Constructeur par défault de Sprite.
Definition spriteClass.cpp:45
void Draw(GLint *renderUniforms) const override
Déssine l'objet héritant de la class.
Definition spriteClass.cpp:205
void setTexture(const Texture &nTexture)
Change la texture du sprite.
Definition spriteClass.cpp:246
void updateVBOAlpha() override
Definition spriteClass.cpp:197
void buildVAO() override
Definition spriteClass.cpp:109
bool isRGBFilter
Definition spriteClass.h:136
Sprite(Texture nTexture, Vector2f nPos, Vector3i nRGB, Vector2f nOrigin, float nRotation, float nAlpha)
Definition spriteClass.cpp:16
bool getRGBFilterState() const
Renvoie si oui ou non le filtre de couleur est activé
Definition spriteClass.cpp:274
~Sprite()
Destructeur de sprite.
Definition spriteClass.cpp:100
Texture * getTexture()
renvoie un pointeur vers la texture du sprite
Definition spriteClass.cpp:252
void flipHorizontally()
Retourne la Texture horizontallement.
Definition spriteClass.cpp:296
void updateVBORGB() override
Definition spriteClass.cpp:188
void setRGBFilterState(bool etat)
Change l'etat du filtre de couleur.
Definition spriteClass.cpp:269
void updateVBO() override
Definition spriteClass.cpp:156
Sprite & operator=(const Sprite &other)
Operateur = de sprite.
Definition spriteClass.cpp:80
Texture * getNormalMap()
renvoie la normal map du sprite
Definition spriteClass.cpp:264
void flipVertically()
Retourne la Texture Verticallement.
Definition spriteClass.cpp:279
GLfloat vertices[32]
Definition spriteClass.h:134
void setNormalMap(const Texture &nNormalMap)
Change la texture de la normal map du sprite.
Definition spriteClass.cpp:258
Contient une texture qui peut être utilisé dans un sprite.
Definition textureClass.h:49
Definition bbopMathClass.h:45
Definition bbopMathClass.h:76