Tapioca Engine 1.0
Motor de videojuegos creado por Bubble Studios
|
Clase que se encarga de la gestion de la grafica del motor. Más...
#include <GraphicsManager.h>
Métodos públicos | |
GraphicsManager (GraphicsManager &)=delete | |
GraphicsManager (GraphicsManager &&)=delete | |
GraphicsManager & | operator= (GraphicsManager &)=delete |
GraphicsManager & | operator= (GraphicsManager &&)=delete |
virtual | ~GraphicsManager () |
Destructor de la clase GraphicsManager. | |
bool | init () override |
Inicializa el puntero al WindowManager. | |
bool | initConfig () override |
Crea el root de Ogre y prepara los recursos para empezar a renderizar. | |
void | render () override |
Renderiza 1 frame. | |
bool | handleEvents (const SDL_Event &event) override |
Maneja los eventos de SDL. | |
void | shutDown () |
Libera la memoria que usa GraphicsManager. | |
Ogre::RenderWindow * | getOgreRenderTarget () const |
Devuelve la ventana de ogre. | |
bool | checkResourceExists (std::string name) |
Comprueba si existe un recurso con el nombre especificado. | |
bool | checkParticleSystemExists (std::string name) |
Comprueba si existe un sistema de particulas con el nombre especificado. | |
int | askForZOrder (int requiredZOrder) |
Devuelve el zOrder disponible mas cercano al requerido. | |
void | removeZOrder (int zOrder) |
Elimina un zOrder. | |
RenderNode * | createNode (const Vector3 pos=Vector3(0.0f, 0.0f, 0.0f), const Vector3 scale=Vector3(1.0f, 1.0f, 1.0f)) |
Crea un nodo. | |
RenderNode * | createSelfManagedNode (const Vector3 pos=Vector3(0.0f, 0.0f, 0.0f), const Vector3 scale=Vector3(1.0f, 1.0f, 1.0f)) |
Crea un nodo solo para manual object. | |
Camera * | createCamera (RenderNode *const node, std::string const &name) |
Crea una camara. | |
Viewport * | createViewport (Camera *const camera, const int zOrder) |
Crea un viewport a partir de una camara y un indice. | |
LightDirectional * | createLightDirectional (RenderNode *const node, const Vector3 direction, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f)) |
Crea una luz direccional. | |
LightPoint * | createLightPoint (RenderNode *const node, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f)) |
Crea una luz posicional. | |
LightRectlight * | createLightRectlight (RenderNode *const node, const Vector3 direction, const float width, const float height, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f)) |
Crea una luz rectangular. | |
LightSpotlight * | createLightSpotlight (RenderNode *const node, const Vector3 direction, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f)) |
Crea un foco de luz. | |
void | setMainLight (LightDirectional *lightDir) |
Se establece la luz principal, es decir, la luz direccional que produce sombras. Solo puede haber una. | |
void | removeMainLight (LightDirectional *lightDir) |
Se elimina la luz principal. | |
Mesh * | createMesh (RenderNode *const node, std::string const &meshName) |
Crea una malla. | |
Billboard * | createBillboard (RenderNode *const node, std::string const &name, const Vector3 position, const Vector4 colour) |
Crea un billboard. | |
BillboardSet * | createBillboardSet (RenderNode *const node, std::string const &name, const unsigned int poolSize) |
Crea un billboardSet. | |
BillboardSet * | createBillboardSetWithName (RenderNode *const node, const unsigned int poolSize) |
Crea un billboardSet sin nombre especificado. | |
ParticleSystem * | createParticleSystem (RenderNode *const node, std::string const &name, std::string const &templateName, const bool emitting) |
Crea un particleSystem. | |
ParticleSystem * | createParticleSystemWithName (RenderNode *const node, std::string const &templateName, const bool emitting) |
Crea un particleSystem sin nombre especificado. | |
Plane * | createPlane (RenderNode *const node, const Vector3 rkNormal, const float fConstant, const Vector3 &up, std::string const &name, const float width, const float height, const int xSegments, const int ySegments, std::string const &material="") |
Crea un plane Construye el plano a partir de la normal rkNormal y la mueve una distancia fConstant en la normal. | |
Plane * | createPlaneWithName (RenderNode *const node, const Vector3 rkNormal, const float fConstant, const Vector3 &up, const float width, const float height, const int xSegments, const int ySegments, std::string const &material="") |
Crea un plane sin nombre especificado Construye el plano a partir de la normal rkNormal y la mueve una distancia fConstant en la normal. | |
Plane * | createPlane (RenderNode *const node, const float a, const float b, const float c, const float d, const Vector3 &up, std::string const &name, const float width, const float height, const int xSegments, const int ySegments, std::string const &material="") |
Crea un plane Construye un plano usando 4 constantes. | |
AnimationHelper * | createAnimationHelper (Mesh *const object, bool autoPlay=true, const bool loop=true) |
Crea una animacion. | |
NodeAnimator * | createNodeAnimator (RenderNode *const node, const float duration, const std::string &name) |
Crea una animacion. | |
NodeAnimator * | createNodeAnimatorWithName (RenderNode *const node, const float duration) |
Crea una animacion sin nombre especificado. | |
Ogre::ManualObject * | createManualObject (RenderNode *const node) |
Crea un manual object. | |
void | destroyManualObject (Ogre::ManualObject *const object) |
Elimina un manual object. | |
Métodos públicos heredados de Tapioca::Singleton< GraphicsManager > | |
Singleton (const Singleton< GraphicsManager > &s)=delete | |
Singleton< GraphicsManager > & | operator= (const Singleton< GraphicsManager > &s)=delete |
virtual | ~Singleton () |
Destructor vacio. | |
Métodos públicos heredados de Tapioca::Module | |
Module () | |
virtual | ~Module () |
virtual void | start () |
Inicializa las variables. | |
virtual void | update (const uint64_t deltaTime) |
Actualiza el modulo. | |
virtual void | fixedUpdate () |
Actualiza el modulo a una velocidad fija. | |
virtual void | refresh () |
Refresca el modulo. | |
Otros miembros heredados | |
Métodos públicos estáticos heredados de Tapioca::Singleton< GraphicsManager > | |
static GraphicsManager * | create (T_args &&... args) |
Inicializa la instancia con los parametros deseados (... args) | |
static GraphicsManager * | instance () |
Obtener el puntero a la instancia. | |
Métodos protegidos heredados de Tapioca::Singleton< GraphicsManager > | |
Singleton () | |
Constructor vacio. | |
Clase que se encarga de la gestion de la grafica del motor.
|
delete |
|
delete |
|
virtual |
Destructor de la clase GraphicsManager.
int Tapioca::GraphicsManager::askForZOrder | ( | int | requiredZOrder | ) |
Devuelve el zOrder disponible mas cercano al requerido.
requiredZOrder | zOrder requerido |
bool Tapioca::GraphicsManager::checkParticleSystemExists | ( | std::string | name | ) |
Comprueba si existe un sistema de particulas con el nombre especificado.
name | Nombre del sistema de particulas |
bool Tapioca::GraphicsManager::checkResourceExists | ( | std::string | name | ) |
Comprueba si existe un recurso con el nombre especificado.
name | Nombre del recurso |
AnimationHelper * Tapioca::GraphicsManager::createAnimationHelper | ( | Mesh *const | object, |
bool | autoPlay = true, | ||
const bool | loop = true ) |
Crea una animacion.
object | Malla a animar |
autoPlay | Indica si se reproduce automaticamente |
loop | Indica si se reproduce en bucle |
Billboard * Tapioca::GraphicsManager::createBillboard | ( | RenderNode *const | node, |
std::string const & | name, | ||
const Vector3 | position, | ||
const Vector4 | colour ) |
Crea un billboard.
node | Nodo para renderizado |
name | Nombre del billboard |
position | Posicion del billboard |
colour | Color del billboard |
BillboardSet * Tapioca::GraphicsManager::createBillboardSet | ( | RenderNode *const | node, |
std::string const & | name, | ||
const unsigned int | poolSize ) |
Crea un billboardSet.
node | Nodo para renderizado |
name | Nombre del billboardSet |
poolSize | Numero maximo de billboards que puede tener |
BillboardSet * Tapioca::GraphicsManager::createBillboardSetWithName | ( | RenderNode *const | node, |
const unsigned int | poolSize ) |
Crea un billboardSet sin nombre especificado.
node | Nodo para renderizado |
poolSize | Numero maximo de billboards que puede tener |
Camera * Tapioca::GraphicsManager::createCamera | ( | RenderNode *const | node, |
std::string const & | name ) |
Crea una camara.
node | Nodo para renderizado |
name | Nombre de la camara |
LightDirectional * Tapioca::GraphicsManager::createLightDirectional | ( | RenderNode *const | node, |
const Vector3 | direction, | ||
const Vector4 | color = Vector4(1.0f, 1.0f, 1.0f, 1.0f) ) |
Crea una luz direccional.
node | Nodo para renderizado |
direction | Direccion a la que apunta |
color | Color de la luz |
LightPoint * Tapioca::GraphicsManager::createLightPoint | ( | RenderNode *const | node, |
const Vector4 | color = Vector4(1.0f, 1.0f, 1.0f, 1.0f) ) |
Crea una luz posicional.
node | Nodo para renderizado |
color | Color de la luz |
LightRectlight * Tapioca::GraphicsManager::createLightRectlight | ( | RenderNode *const | node, |
const Vector3 | direction, | ||
const float | width, | ||
const float | height, | ||
const Vector4 | color = Vector4(1.0f, 1.0f, 1.0f, 1.0f) ) |
Crea una luz rectangular.
node | Nodo para renderizado |
direction | Direccion a la que apunta |
width | Ancho del rectangulo |
height | Altura del rectangulo |
color | Color de la luz |
LightSpotlight * Tapioca::GraphicsManager::createLightSpotlight | ( | RenderNode *const | node, |
const Vector3 | direction, | ||
const Vector4 | color = Vector4(1.0f, 1.0f, 1.0f, 1.0f) ) |
Crea un foco de luz.
node | Nodo para renderizado |
direction | Direccion a la que apunta |
color | Color de la luz |
Ogre::ManualObject * Tapioca::GraphicsManager::createManualObject | ( | RenderNode *const | node | ) |
Crea un manual object.
node | Nodo para renderizado |
Mesh * Tapioca::GraphicsManager::createMesh | ( | RenderNode *const | node, |
std::string const & | meshName ) |
Crea una malla.
node | Nodo para renderizado |
meshName | Nombre de la malla |
RenderNode * Tapioca::GraphicsManager::createNode | ( | const Vector3 | pos = Vector3(0.0f, 0.0f, 0.0f), |
const Vector3 | scale = Vector3(1.0f, 1.0f, 1.0f) ) |
Crea un nodo.
pos | Posicion inicial del nodo. Se crea en el origen (0, 0, 0) si no se especifica |
scale | Escala inicial del nodo. Se inicia con escala "normal" (1, 1, 1) si no se especifica |
NodeAnimator * Tapioca::GraphicsManager::createNodeAnimator | ( | RenderNode *const | node, |
const float | duration, | ||
const std::string & | name ) |
Crea una animacion.
node | Nodo a animar |
duration | Duracion de la animacion |
name | Nombre de la animacion |
NodeAnimator * Tapioca::GraphicsManager::createNodeAnimatorWithName | ( | RenderNode *const | node, |
const float | duration ) |
Crea una animacion sin nombre especificado.
node | Nodo a animar |
duration | Duracion de la animacion |
ParticleSystem * Tapioca::GraphicsManager::createParticleSystem | ( | RenderNode *const | node, |
std::string const & | name, | ||
std::string const & | templateName, | ||
const bool | emitting ) |
Crea un particleSystem.
node | Nodo para renderizado |
name | Nombre del particleSystem |
templateName | TemplateName del particleSystem |
emitting | Indica si esta emitiendo particulas |
ParticleSystem * Tapioca::GraphicsManager::createParticleSystemWithName | ( | RenderNode *const | node, |
std::string const & | templateName, | ||
const bool | emitting ) |
Crea un particleSystem sin nombre especificado.
node | Nodo para renderizado |
templateName | TemplateName del particleSystem |
emitting | Indica si esta emitiendo particulas |
Plane * Tapioca::GraphicsManager::createPlane | ( | RenderNode *const | node, |
const float | a, | ||
const float | b, | ||
const float | c, | ||
const float | d, | ||
const Vector3 & | up, | ||
std::string const & | name, | ||
const float | width, | ||
const float | height, | ||
const int | xSegments, | ||
const int | ySegments, | ||
std::string const & | material = "" ) |
Crea un plane Construye un plano usando 4 constantes.
node | Nodo para renderizado |
a | Componente x del vector normal |
b | Componente y del vector normal |
c | Componente z del vector normal |
d | Distancia del plano al origen en la direccion de la normal |
up | Vector que indica la direccion de arriba |
name | Nombre del plano |
width | Anchura del plano |
height | Altura del plano |
xSegments | Numero de segmentos del plano en la direccion x |
ySegments | Numero de segmentos del plano en la direccion y |
material | Nombre del material |
Plane * Tapioca::GraphicsManager::createPlane | ( | RenderNode *const | node, |
const Vector3 | rkNormal, | ||
const float | fConstant, | ||
const Vector3 & | up, | ||
std::string const & | name, | ||
const float | width, | ||
const float | height, | ||
const int | xSegments, | ||
const int | ySegments, | ||
std::string const & | material = "" ) |
Crea un plane Construye el plano a partir de la normal rkNormal y la mueve una distancia fConstant en la normal.
node | Nodo para renderizado |
rkNormal | Normal del plano |
fConstant | Distancia que se mueve el plano a traves de la normal |
up | Vector que indica la direccion de arriba |
name | Nombre del plano |
width | Anchura del plano |
height | Altura del plano |
xSegments | Numero de segmentos del plano en la direccion x |
ySegments | Numero de segmentos del plano en la direccion y |
material | Nombre del material |
Plane * Tapioca::GraphicsManager::createPlaneWithName | ( | RenderNode *const | node, |
const Vector3 | rkNormal, | ||
const float | fConstant, | ||
const Vector3 & | up, | ||
const float | width, | ||
const float | height, | ||
const int | xSegments, | ||
const int | ySegments, | ||
std::string const & | material = "" ) |
Crea un plane sin nombre especificado Construye el plano a partir de la normal rkNormal y la mueve una distancia fConstant en la normal.
node | Nodo para renderizado |
rkNormal | Normal del plano |
fConstant | Distancia que se mueve el plano a traves de la normal |
up | Vector que indica la direccion de arriba |
width | Anchura del plano |
height | Altura del plano |
xSegments | Numero de segmentos del plano en la direccion x |
ySegments | Numero de segmentos del plano en la direccion y |
material | Nombre del material |
RenderNode * Tapioca::GraphicsManager::createSelfManagedNode | ( | const Vector3 | pos = Vector3(0.0f, 0.0f, 0.0f), |
const Vector3 | scale = Vector3(1.0f, 1.0f, 1.0f) ) |
Crea un nodo solo para manual object.
pos | Posicion inicial del nodo. Se crea en el origen (0, 0, 0) si no se especifica |
scale | Escala inicial del nodo. Se inicia con escala "normal" (1, 1, 1) si no se especifica |
Crea un viewport a partir de una camara y un indice.
camera | Camara para el viewport |
zOrder | Orden por el cual se renderiza el viewport |
void Tapioca::GraphicsManager::destroyManualObject | ( | Ogre::ManualObject *const | object | ) |
Elimina un manual object.
object | Manual object a eliminar |
|
inline |
Devuelve la ventana de ogre.
|
overridevirtual |
Maneja los eventos de SDL.
event | Evento de SDL |
Reimplementado de Tapioca::WindowModule.
|
overridevirtual |
Inicializa el puntero al WindowManager.
Reimplementado de Tapioca::Module.
|
overridevirtual |
Crea el root de Ogre y prepara los recursos para empezar a renderizar.
Reimplementado de Tapioca::Module.
|
delete |
|
delete |
void Tapioca::GraphicsManager::removeMainLight | ( | LightDirectional * | lightDir | ) |
Se elimina la luz principal.
lightDir | Luz principal a eliminar |
void Tapioca::GraphicsManager::removeZOrder | ( | int | zOrder | ) |
Elimina un zOrder.
zOrder | ZOrder a eliminar |
|
overridevirtual |
Renderiza 1 frame.
Reimplementado de Tapioca::Module.
void Tapioca::GraphicsManager::setMainLight | ( | LightDirectional * | lightDir | ) |
Se establece la luz principal, es decir, la luz direccional que produce sombras. Solo puede haber una.
lightDir | Nueva luz principal |
void Tapioca::GraphicsManager::shutDown | ( | ) |
Libera la memoria que usa GraphicsManager.