¡Esta es una revisión vieja del documento!
Esta clase es la base del framework. Todas las clases que quieran integrarse en el pipeline deben heredar de ella.
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 |
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 |
Opcionalmente, al invocar al constructor de RF_Process en la declaración del constructor que lo hereda, se puede porporcionar un string que representa el type del proceso.
class exeProcess : public RF_Process { public: exeProcess():RF_Process("exeProcess"){} virtual ~exeProcess(); virtual void Update() { if(RF_Engine::instance->key[_esc] || RF_Engine::instance->key[_close_window]) { RF_Engine::instance->isRunning(false); } } }
class RF_Process { public: RF_Process(string _type="null", RF_Window *_window = nullptr); 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); };