Definir funciones que se ejecutan una vez por FRAME en un módulo

Started by josebita, September 15, 2009, 04:34:12 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Preguntilla rápida que me suena que se ha respondido alguna vez:

Si para definir una rutina que se ejecuta al cargar mi módulo hago:
[code language="c"]
/* Routines to be run when the library is imported */
void __bgdexport( mod_cosas, module_initialize )()
{
   cosas();
}
[/code]
¿Cómo defino una rutina que quiero que se ejecute una vez por FRAME?.

josebita

Vale, me autorepondo:
[code language="c"]
/* Bigest priority first execute
  Lowest priority last execute */

HOOK __bgdexport( libwm, handler_hooks )[] =
{
   { 4700, cosas   },
   {    0, NULL        }
} ;

[/code]

Windgate

¿Eso es C++, no? ¿Estás metiendo código C++ para ejecutarlo al cargar un módulo en Bennu? ¿O estás haciendo un módulo para Bennu con C++?

El tema de crear nuevas DLL para Bennu me tiene intranquilo desde hace tiempo, ¿Dónde puedo encontrar información sobre el temita josebita? xD
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

C++??? no, eso no es c++... asi son las dlls de bennu...

en documentacion en el foro
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

Umn, entonces al importar la librería todos los procesos ejecutarán esa función antes del frame? o solo el proceso principal antes de su frame.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

josebita

La idea es que desde la propia librería se pueden definir varias rutinas que se ejecuten en ciertos momentos. Es una de las ventajas del sistema de módulos de Bennu respecto a Fenix.

Por ejemplo, para el mini-binding para FMOD tengo definidas:

  • Una rutina para inicializar FMOD que se ejecuta cuando se carga la librería.
  • Otra rutina que se ejecuta cada FRAME (pero sólo una vez, no tiene que ver con los procesos, la ejecuta la propia librería) que actualiza el estado de FMOD.
  • Una más que define rutinas que se ejecuten cuando se descarga la librería.


No sé si se pueden definir rutinas en algún momento particular más, pero sí se pueden tocar las variables de los procesos.... Está muy completo el sistema de librerías; ¡gracias Splinter!