PDA

Ver la versión completa : embeber archivos en ejecutables



efegea
13/02/2006, 03:22
Hola,

Estoy planteándome un sustituto para el menú principal de la gepé, en el que la parte que dibuja el menú sea una librería dinámica, pudiendo cambiarla al vuelo, como si de plugins se tratase. Así se podría cambiar la interfaz de la consola con una simple opcion de menu, y que cualquiera pueda programar una nueva.

Pero un menú se tiene que instalar en la nand, y no quiero mil archivos de imagen .png repartidos por la nand, por lo que he pensado que podría integrarlos dentro del ejecutable (o más bien librería dinamica) pero no encuentro nada sobre como incrustar un archivo dentro del código o del ejecutable

¡oh! ¡venerables coders! :D ¿sabeis algo del tema?

un saludo :)

Edito para mencionar que lo quiero hacer en SDL (aceleradas of course :D) y necesito que sea compatible con IMG_Load y tal

KaosOverride
13/02/2006, 03:30
Creo que lo que necesitas es la clasica herramienta que dado un fichero grafico, lo carga como SDL_surface, y despues vuelca todos los valores de la surface (bitmap inclusive) a un fichero .h con todos los componentes del surface... No necesitas SDL_loads ni nada, porque simplemente declaras una variable tipo surface con el contenido "ya cargado" :D

Osea que tu idea es crear un .o que tenga los graficos y segun cambies un unico archivo, cambies el skin del gui? :D

Hay otra posibilidad que es meterlo dentro de un zip y usar el acceso sdlRWops, y hacer los loads a traves de esta interfaz de SDL para cargar ficheros dentro de un zip, pero es un coñazo :confused:

efegea
13/02/2006, 03:35
Osea que tu idea es crear un .o que tenga los graficos y segun cambies un unico archivo, cambies el skin del gui? :D

No exactamente. El .o incluye todo el codigo de dibujado, no solo los graficos. Por ejemplo un .o dibujaría el menú como una cuadrícula de iconos, pero otro puede dibujarlo como si fuera el menu de la PSP, etc... El problema que tengo es cómo integrar las imagenes para que no esten sueltas por la nand


Hay otra posibilidad que es meterlo dentro de un zip y usar el acceso sdlRWops, y hacer los loads a traves de esta interfaz de SDL para cargar ficheros dentro de un zip, pero es un coñazo :confused:

Ahora mismo estaba mirando eso en la documentacion de las SDL, parece que los RWops es la solucion a mis problemas :) Pero ahora necesito entender como se usan :confused:

Puck2099
13/02/2006, 03:36
Mírate el código de mi demo1.

Cargo un bmp incrustrado (el image.h), pero con pngs supongo que será muy parecido.

Para generar los .h hay programas para Windows y Linux, dime qué usas y te informo mejor :)

Saludos

efegea
13/02/2006, 03:38
Mírate el código de mi demo1.

Cargo un bmp incrustrado (el image.h), pero con pngs supongo que será muy parecido.

Para generar los .h hay programas para Windows y Linux, dime qué usas y te informo mejor :)

Saludos

Muchas gracias, ahora lo miraré. Uso linux :)

Puck2099
13/02/2006, 03:58
Muchas gracias, ahora lo miraré. Uso linux :)

Pues para Linux usa por ejemplo el archivo que te incluyo.

Es el código fuente para que te lo compiles y puedas modificar a tu gusto (yo lo hice para no tener que pasarle más parámetro que el nombre de archivo).

Si necesitas ayuda, ya sabes donde estoy :)