Herramientas de usuario

Herramientas del sitio


rf_process

¡Esta es una revisión vieja del documento!


Tabla de Contenidos

RF_Process

Esta clase es la base del framework. Todas las clases que quieran integrarse en el pipeline deben heredar de ella.

Atributos

Nombre Tipo Descripción
id string Identificador del proceso
father string Identificador del proceso padre
signal unsigned int Estado en el que se encuentra el proceso
type string Tipo de proceso
transform Transform2D<int,float,float> Posición, rotación y escala del proceso
zLayer int Altura de capa en la que se posiciona el proceso
flipType SDL_RendererFlip Flag de renderizado de SDL
window RF_Window* Puntero a la ventana en la que se renderiza el proceso

Funciones

Las únicas funciones que contiene RF_Process son las que lo integran con el pipeline, las cuales son todas virtuales.

Nombre Descripción
Start Función que se invoca al instanciarse el objeto
Update Función que invoca tantas veces como sea posible entre fotograma y fotograma
FixedUpdate Función que se invoca únicamente una vez por fotograma
Draw Función que se invoca durante el proceso de renderizado, antes de ordenar los procesos para dicha tarea
LateDraw Función que se invoca durante el proceso de renderizado, después de ordenar los procesos para dicha tarea pero antes de renderizarlos
AfterDraw Función que se invoca durante el proceso de renderizado, tras renderizar el proceso
class RF_Process
{
  public:
    RF_Process(string _type="null", string _father="", RF_Window *_window = nullptr)
    {
      type=_type;
      father=_father;
      graph=NULL;
      window = _window;
 
      transform.position = RF_Structs::Vector2<int>(0,0);
      transform.scale = RF_Structs::Vector2<float>(1.0,1.0);
      transform.rotation = 0;
    }
 
    virtual ~RF_Process(){}
 
    virtual void Start(){return;}
    virtual void Update(){ return;}
    virtual void FixedUpdate(){ return;}
    virtual void Draw(){ return;}
    virtual void LateDraw(){ return;}
    virtual void AfterDraw(){return;}
    virtual void Dispose(){return;}
 
    /**Atributos******/
      string id, father;
      unsigned int signal = RF_Structs::S_AWAKE;
      string type="";
      SDL_Surface *graph;
      RF_Structs::Transform2D<int, float, float> transform;
      int zLayer = -1;
      SDL_RendererFlip flipType = FLIP_NONE;
      RF_Window *window;
    /*******************/
 
    bool operator<(const RF_Process* p) const;
    SDL_Rect getDimensions();
    virtual SDL_Rect normalizeBounds(const SDL_Rect& rect);
};
rf_process.1651769256.txt.gz · Última modificación: 2022/12/06 00:03 (editor externo)