|
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.