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
Public Member Functions | Private Attributes | List of all members
Scene Class Reference

Gère la scene et affiche des BbopDrawable. More...

#include <sceneClass.h>

Collaboration diagram for Scene:
Collaboration graph
[legend]

Public Member Functions

 Scene ()
 Constructeur par défault de Scene.
 
 Scene (float nAmbiantLightValue, Vector3i nAmbiantLightColor)
 Constructeur de Scene.
 
 ~Scene ()
 
void Use ()
 Charge les valeur de la scene dans le shader de celle ci.
 
void useCamera (Camera *camAddr)
 Utilise une camera pour Draw avec la scene.
 
void setAmbiantLightValue (float nAmbiantLightValue)
 Change l'intensité de la lumière ambiante de Scene.
 
float getAmbiantLightValue () const
 Renvoie l'intensité de la lumière ambiante de Scene.
 
void setAmbiantLightColor (const Vector3i &nAmbiantLightColor)
 Change la couleur de la lumière ambiante de Scene.
 
const Vector3igetAmbiantLightColor () const
 Renvoie la couleur de la lumière ambiante de Scene.
 
void addLight (Light &l)
 Ajoute un point de lumière dans la Scene.
 
void Draw (const BbopDrawable &spr) const
 Permet de dessiner sur la fenêtre GFLW initialisée dans bbopInt() avec l'environement de la Scene.
 
void DrawFrameBuffer (const NoTextureSprite &spr) const
 Dessine le frame buffer de la scene.
 
void render ()
 Permet de render le framebuffer de la scene en calculant sont éclairage final.
 

Private Attributes

Shader sceneShader
 
Shader sceneLightShader
 
float ambiantLightValue
 
Vector3i ambiantLightColor
 
GLint * renderUniforms
 
GLint * lightRenderUniforms
 
GLuint lightsUBO
 
std::vector< UniformLightlightsVec
 
Vector3f ambiantLight
 
CamerasceneCamera
 
unsigned int frameBuffer
 
unsigned int textureColorBuffer
 
unsigned int textureNormalMapBuffer
 
NoTextureSprite frameBufferSprite
 

Detailed Description

Gère la scene et affiche des BbopDrawable.

Tous les paramètre d'affichage sont gèré par Scene comme la lumières ambiante, la camera ou encore les points de lumièrenderModeLoc. La Scene gère donc l'environement de vos BbopDrawable

La class Scene gère les shaders d'affichage

See also
BbopDrawable
Attention
Cette class est obligatoire pour afficher des éléments

Constructor & Destructor Documentation

◆ Scene() [1/2]

Scene::Scene ( )

Constructeur par défault de Scene.

La scene par défault est éclairé par une lumière blanche d'intensité 1.0

◆ Scene() [2/2]

Scene::Scene ( float  nAmbiantLightValue,
Vector3i  nAmbiantLightColor 
)

Constructeur de Scene.

Parameters
[in]nAmbiantLightValueIntensité de la lumière ambiante
[in]nAmbiantLightColorCouleur de la lumière ambiante

◆ ~Scene()

Scene::~Scene ( )

Member Function Documentation

◆ addLight()

void Scene::addLight ( Light l)

Ajoute un point de lumière dans la Scene.

See also
Light
Parameters
[in]lpoint de lumière
Attention
La list de Light de Scene est reset à chaque usage de Use(), il est donc nécessaire d'ajouter vos point de lumière avant de spécifier la scene à utilser dans votre rendue de frame

◆ Draw()

void Scene::Draw ( const BbopDrawable spr) const

Permet de dessiner sur la fenêtre GFLW initialisée dans bbopInt() avec l'environement de la Scene.

Parameters
[in]sprObjet à dessiner

◆ DrawFrameBuffer()

void Scene::DrawFrameBuffer ( const NoTextureSprite spr) const

Dessine le frame buffer de la scene.

◆ getAmbiantLightColor()

const Vector3i & Scene::getAmbiantLightColor ( ) const

Renvoie la couleur de la lumière ambiante de Scene.

Returns
ambiantLightColor Couleur de la lumière ambiante

◆ getAmbiantLightValue()

float Scene::getAmbiantLightValue ( ) const

Renvoie l'intensité de la lumière ambiante de Scene.

Returns
ambiantLightValue Intensité de la lumière ambiante

◆ render()

void Scene::render ( )

Permet de render le framebuffer de la scene en calculant sont éclairage final.

Clear le vecteur de lumière

◆ setAmbiantLightColor()

void Scene::setAmbiantLightColor ( const Vector3i nAmbiantLightColor)

Change la couleur de la lumière ambiante de Scene.

Parameters
[in]nAmbiantLightColorCouleur de la lumière ambiante

◆ setAmbiantLightValue()

void Scene::setAmbiantLightValue ( float  nAmbiantLightValue)

Change l'intensité de la lumière ambiante de Scene.

See also
Camera
Parameters
[in]nAmbiantLightValueIntensité

◆ Use()

void Scene::Use ( )

Charge les valeur de la scene dans le shader de celle ci.

Parameters
[in]windowFenêtre GLFW utilisée par votre programme et initialisée avec bbopInit()
Attention
Cette méthode est à utiliser à l'initialisation de votre programme et avant chaque changement de scene si la scene doit changer

◆ useCamera()

void Scene::useCamera ( Camera camAddr)

Utilise une camera pour Draw avec la scene.

Parameters
[in]camAddrAddresse de la camera à utiliser ou pointeur ves celle ci, nullptr pour la cam par défault
Attention
Cette méthode utilise le prisme de la camera passé en paramètre pour tous les prochains Draw(), pour revenir à la camera par défault il faut l'utilser avec nullptr comme camAddr

Member Data Documentation

◆ ambiantLight

Vector3f Scene::ambiantLight
private

◆ ambiantLightColor

Vector3i Scene::ambiantLightColor
private

◆ ambiantLightValue

float Scene::ambiantLightValue
private

◆ frameBuffer

unsigned int Scene::frameBuffer
private

◆ frameBufferSprite

NoTextureSprite Scene::frameBufferSprite
private

◆ lightRenderUniforms

GLint* Scene::lightRenderUniforms
private

◆ lightsUBO

GLuint Scene::lightsUBO
private

◆ lightsVec

std::vector<UniformLight> Scene::lightsVec
private

◆ renderUniforms

GLint* Scene::renderUniforms
private

◆ sceneCamera

Camera* Scene::sceneCamera
private

◆ sceneLightShader

Shader Scene::sceneLightShader
private

◆ sceneShader

Shader Scene::sceneShader
private

◆ textureColorBuffer

unsigned int Scene::textureColorBuffer
private

◆ textureNormalMapBuffer

unsigned int Scene::textureNormalMapBuffer
private

The documentation for this class was generated from the following files: