Tapioca Engine 1.0
Motor de videojuegos creado por Bubble Studios
Cargando...
Buscando...
Nada coincide
Métodos públicos | Lista de todos los miembros
Referencia de la clase Tapioca::GraphicsManager

Clase que se encarga de la gestion de la grafica del motor. Más...

#include <GraphicsManager.h>

Diagrama de herencia de Tapioca::GraphicsManager
Tapioca::Singleton< GraphicsManager > Tapioca::WindowModule Tapioca::Module

Métodos públicos

 GraphicsManager (GraphicsManager &)=delete
 
 GraphicsManager (GraphicsManager &&)=delete
 
GraphicsManageroperator= (GraphicsManager &)=delete
 
GraphicsManageroperator= (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.
 
RenderNodecreateNode (const Vector3 pos=Vector3(0.0f, 0.0f, 0.0f), const Vector3 scale=Vector3(1.0f, 1.0f, 1.0f))
 Crea un nodo.
 
RenderNodecreateSelfManagedNode (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.
 
CameracreateCamera (RenderNode *const node, std::string const &name)
 Crea una camara.
 
ViewportcreateViewport (Camera *const camera, const int zOrder)
 Crea un viewport a partir de una camara y un indice.
 
LightDirectionalcreateLightDirectional (RenderNode *const node, const Vector3 direction, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f))
 Crea una luz direccional.
 
LightPointcreateLightPoint (RenderNode *const node, const Vector4 color=Vector4(1.0f, 1.0f, 1.0f, 1.0f))
 Crea una luz posicional.
 
LightRectlightcreateLightRectlight (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.
 
LightSpotlightcreateLightSpotlight (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.
 
MeshcreateMesh (RenderNode *const node, std::string const &meshName)
 Crea una malla.
 
BillboardcreateBillboard (RenderNode *const node, std::string const &name, const Vector3 position, const Vector4 colour)
 Crea un billboard.
 
BillboardSetcreateBillboardSet (RenderNode *const node, std::string const &name, const unsigned int poolSize)
 Crea un billboardSet.
 
BillboardSetcreateBillboardSetWithName (RenderNode *const node, const unsigned int poolSize)
 Crea un billboardSet sin nombre especificado.
 
ParticleSystemcreateParticleSystem (RenderNode *const node, std::string const &name, std::string const &templateName, const bool emitting)
 Crea un particleSystem.
 
ParticleSystemcreateParticleSystemWithName (RenderNode *const node, std::string const &templateName, const bool emitting)
 Crea un particleSystem sin nombre especificado.
 
PlanecreatePlane (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.
 
PlanecreatePlaneWithName (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.
 
PlanecreatePlane (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.
 
AnimationHelpercreateAnimationHelper (Mesh *const object, bool autoPlay=true, const bool loop=true)
 Crea una animacion.
 
NodeAnimatorcreateNodeAnimator (RenderNode *const node, const float duration, const std::string &name)
 Crea una animacion.
 
NodeAnimatorcreateNodeAnimatorWithName (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 GraphicsManagercreate (T_args &&... args)
 Inicializa la instancia con los parametros deseados (... args)
 
static GraphicsManagerinstance ()
 Obtener el puntero a la instancia.
 
- Métodos protegidos heredados de Tapioca::Singleton< GraphicsManager >
 Singleton ()
 Constructor vacio.
 

Descripción detallada

Clase que se encarga de la gestion de la grafica del motor.

Documentación de constructores y destructores

◆ GraphicsManager() [1/2]

Tapioca::GraphicsManager::GraphicsManager ( GraphicsManager & )
delete

◆ GraphicsManager() [2/2]

Tapioca::GraphicsManager::GraphicsManager ( GraphicsManager && )
delete

◆ ~GraphicsManager()

Tapioca::GraphicsManager::~GraphicsManager ( )
virtual

Destructor de la clase GraphicsManager.

Documentación de funciones miembro

◆ askForZOrder()

int Tapioca::GraphicsManager::askForZOrder ( int requiredZOrder)

Devuelve el zOrder disponible mas cercano al requerido.

Parámetros
requiredZOrderzOrder requerido

◆ checkParticleSystemExists()

bool Tapioca::GraphicsManager::checkParticleSystemExists ( std::string name)

Comprueba si existe un sistema de particulas con el nombre especificado.

Parámetros
nameNombre del sistema de particulas
Devuelve
true si existe, false si no

◆ checkResourceExists()

bool Tapioca::GraphicsManager::checkResourceExists ( std::string name)

Comprueba si existe un recurso con el nombre especificado.

Parámetros
nameNombre del recurso
Devuelve
true si existe, false si no

◆ createAnimationHelper()

AnimationHelper * Tapioca::GraphicsManager::createAnimationHelper ( Mesh *const object,
bool autoPlay = true,
const bool loop = true )

Crea una animacion.

Parámetros
objectMalla a animar
autoPlayIndica si se reproduce automaticamente
loopIndica si se reproduce en bucle
Devuelve
Puntero a la animacion creada

◆ createBillboard()

Billboard * Tapioca::GraphicsManager::createBillboard ( RenderNode *const node,
std::string const & name,
const Vector3 position,
const Vector4 colour )

Crea un billboard.

Parámetros
nodeNodo para renderizado
nameNombre del billboard
positionPosicion del billboard
colourColor del billboard
Devuelve
Puntero al billboard creado

◆ createBillboardSet()

BillboardSet * Tapioca::GraphicsManager::createBillboardSet ( RenderNode *const node,
std::string const & name,
const unsigned int poolSize )

Crea un billboardSet.

Parámetros
nodeNodo para renderizado
nameNombre del billboardSet
poolSizeNumero maximo de billboards que puede tener
Devuelve
Puntero al billboard creado

◆ createBillboardSetWithName()

BillboardSet * Tapioca::GraphicsManager::createBillboardSetWithName ( RenderNode *const node,
const unsigned int poolSize )

Crea un billboardSet sin nombre especificado.

Parámetros
nodeNodo para renderizado
poolSizeNumero maximo de billboards que puede tener
Devuelve
Puntero al billboard creado

◆ createCamera()

Camera * Tapioca::GraphicsManager::createCamera ( RenderNode *const node,
std::string const & name )

Crea una camara.

Parámetros
nodeNodo para renderizado
nameNombre de la camara
Devuelve
Puntero a la camara creada

◆ createLightDirectional()

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.

Parámetros
nodeNodo para renderizado
directionDireccion a la que apunta
colorColor de la luz
Devuelve
Puntero a la luz direccional creada

◆ createLightPoint()

LightPoint * Tapioca::GraphicsManager::createLightPoint ( RenderNode *const node,
const Vector4 color = Vector4(1.0f, 1.0f, 1.0f, 1.0f) )

Crea una luz posicional.

Parámetros
nodeNodo para renderizado
colorColor de la luz
Devuelve
Puntero a la luz posicional creada

◆ createLightRectlight()

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.

Parámetros
nodeNodo para renderizado
directionDireccion a la que apunta
widthAncho del rectangulo
heightAltura del rectangulo
colorColor de la luz
Devuelve
Puntero a la luz rectangular creada

◆ createLightSpotlight()

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.

Parámetros
nodeNodo para renderizado
directionDireccion a la que apunta
colorColor de la luz
Devuelve
Puntero al foco de luz creado

◆ createManualObject()

Ogre::ManualObject * Tapioca::GraphicsManager::createManualObject ( RenderNode *const node)

Crea un manual object.

Parámetros
nodeNodo para renderizado
Devuelve
Puntero al manual object creado

◆ createMesh()

Mesh * Tapioca::GraphicsManager::createMesh ( RenderNode *const node,
std::string const & meshName )

Crea una malla.

Parámetros
nodeNodo para renderizado
meshNameNombre de la malla
Devuelve
Puntero a la malla creada

◆ createNode()

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.

Parámetros
posPosicion inicial del nodo. Se crea en el origen (0, 0, 0) si no se especifica
scaleEscala inicial del nodo. Se inicia con escala "normal" (1, 1, 1) si no se especifica
Devuelve
Puntero a la ventana de SDL

◆ createNodeAnimator()

NodeAnimator * Tapioca::GraphicsManager::createNodeAnimator ( RenderNode *const node,
const float duration,
const std::string & name )

Crea una animacion.

Parámetros
nodeNodo a animar
durationDuracion de la animacion
nameNombre de la animacion
Devuelve
Puntero a la animacion creada

◆ createNodeAnimatorWithName()

NodeAnimator * Tapioca::GraphicsManager::createNodeAnimatorWithName ( RenderNode *const node,
const float duration )

Crea una animacion sin nombre especificado.

Parámetros
nodeNodo a animar
durationDuracion de la animacion

◆ createParticleSystem()

ParticleSystem * Tapioca::GraphicsManager::createParticleSystem ( RenderNode *const node,
std::string const & name,
std::string const & templateName,
const bool emitting )

Crea un particleSystem.

Parámetros
nodeNodo para renderizado
nameNombre del particleSystem
templateNameTemplateName del particleSystem
emittingIndica si esta emitiendo particulas
Devuelve
Puntero al particleSystem creado

◆ createParticleSystemWithName()

ParticleSystem * Tapioca::GraphicsManager::createParticleSystemWithName ( RenderNode *const node,
std::string const & templateName,
const bool emitting )

Crea un particleSystem sin nombre especificado.

Parámetros
nodeNodo para renderizado
templateNameTemplateName del particleSystem
emittingIndica si esta emitiendo particulas
Devuelve
Puntero al particleSystem creado

◆ createPlane() [1/2]

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.

Parámetros
nodeNodo para renderizado
aComponente x del vector normal
bComponente y del vector normal
cComponente z del vector normal
dDistancia del plano al origen en la direccion de la normal
upVector que indica la direccion de arriba
nameNombre del plano
widthAnchura del plano
heightAltura del plano
xSegmentsNumero de segmentos del plano en la direccion x
ySegmentsNumero de segmentos del plano en la direccion y
materialNombre del material

◆ createPlane() [2/2]

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.

Parámetros
nodeNodo para renderizado
rkNormalNormal del plano
fConstantDistancia que se mueve el plano a traves de la normal
upVector que indica la direccion de arriba
nameNombre del plano
widthAnchura del plano
heightAltura del plano
xSegmentsNumero de segmentos del plano en la direccion x
ySegmentsNumero de segmentos del plano en la direccion y
materialNombre del material

◆ createPlaneWithName()

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.

Parámetros
nodeNodo para renderizado
rkNormalNormal del plano
fConstantDistancia que se mueve el plano a traves de la normal
upVector que indica la direccion de arriba
widthAnchura del plano
heightAltura del plano
xSegmentsNumero de segmentos del plano en la direccion x
ySegmentsNumero de segmentos del plano en la direccion y
materialNombre del material

◆ createSelfManagedNode()

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.

Parámetros
posPosicion inicial del nodo. Se crea en el origen (0, 0, 0) si no se especifica
scaleEscala inicial del nodo. Se inicia con escala "normal" (1, 1, 1) si no se especifica
Devuelve
Puntero a la ventana de SDL

◆ createViewport()

Viewport * Tapioca::GraphicsManager::createViewport ( Camera *const camera,
const int zOrder )

Crea un viewport a partir de una camara y un indice.

Parámetros
cameraCamara para el viewport
zOrderOrden por el cual se renderiza el viewport
Devuelve
Puntero al viewport creado

◆ destroyManualObject()

void Tapioca::GraphicsManager::destroyManualObject ( Ogre::ManualObject *const object)

Elimina un manual object.

Parámetros
objectManual object a eliminar

◆ getOgreRenderTarget()

Ogre::RenderWindow * Tapioca::GraphicsManager::getOgreRenderTarget ( ) const
inline

Devuelve la ventana de ogre.

Devuelve
Puntero a la ventana de ogre

◆ handleEvents()

bool Tapioca::GraphicsManager::handleEvents ( const SDL_Event & event)
overridevirtual

Maneja los eventos de SDL.

Parámetros
eventEvento de SDL
Devuelve
true si se ha manejado el evento, false si no

Reimplementado de Tapioca::WindowModule.

◆ init()

bool Tapioca::GraphicsManager::init ( )
overridevirtual

Inicializa el puntero al WindowManager.

Reimplementado de Tapioca::Module.

◆ initConfig()

bool Tapioca::GraphicsManager::initConfig ( )
overridevirtual

Crea el root de Ogre y prepara los recursos para empezar a renderizar.

Reimplementado de Tapioca::Module.

◆ operator=() [1/2]

GraphicsManager & Tapioca::GraphicsManager::operator= ( GraphicsManager && )
delete

◆ operator=() [2/2]

GraphicsManager & Tapioca::GraphicsManager::operator= ( GraphicsManager & )
delete

◆ removeMainLight()

void Tapioca::GraphicsManager::removeMainLight ( LightDirectional * lightDir)

Se elimina la luz principal.

Parámetros
lightDirLuz principal a eliminar

◆ removeZOrder()

void Tapioca::GraphicsManager::removeZOrder ( int zOrder)

Elimina un zOrder.

Parámetros
zOrderZOrder a eliminar

◆ render()

void Tapioca::GraphicsManager::render ( )
overridevirtual

Renderiza 1 frame.

Reimplementado de Tapioca::Module.

◆ setMainLight()

void Tapioca::GraphicsManager::setMainLight ( LightDirectional * lightDir)

Se establece la luz principal, es decir, la luz direccional que produce sombras. Solo puede haber una.

Parámetros
lightDirNueva luz principal

◆ shutDown()

void Tapioca::GraphicsManager::shutDown ( )

Libera la memoria que usa GraphicsManager.


La documentación de esta clase está generada de los siguientes archivos: