r342 liberada

Started by SplinterGU, August 09, 2017, 03:03:31 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

Cambios desde la r335 a la r342 (estaba debiendo detalles de algunas releases, ahora las incluyo aca)

r335
[bugfix] fix en dirty rects
[bugfix] crash con mod_debug

r338
[bugfix] put_screen bug

r339
[bugfix] mapas transparentes en 32bits (bitmap_analize bug)

r342
[bugfix] variables globales en libmode
[bugfix] si un argumento de una funcion/proceso tenia el mismo nombre de una variable global, esa variable global se usaba dentro de la funcion/proceso. Ahora los parametros nombrados igual que una variable global son considerados locales a esa funcion/proceso. (no modifican la global)
[feature] Se agrega soporte de archivos de configuracion (.ini)

Soporte de archivos de configuracion:

Deben ser nombrados igual que el dcb pero con la extension .ini, por ejemplo, si nuestro dcb se llama "mijuego.dcb", el archivo de configuracion debe ser nombrado "mijuego.ini"

un ejemplo de archivo de configuracion:


# comentario 1
; comentario 2

; Seccion [bennugd] es usada por bennugd
; todas las keys son opcionales

[bennugd]

video.mode=320x240x32 ; <ancho>x<alto>[x<profundida>]
video.fullscreen=0 ; 1=pantalla completa - 0=modo ventana

# video.scale_resolution=800x600 ; <ancho>x<alto>
# video.scale_resolution_aspectratio=0 ; 0 = normal
                                       ; 1 = izquierda
                                       ; 2 = abajo
                                       ; 3 = derecha
# video.scale_resolution_orientation=0 ; 0 = ajusta la imagen a la ventana
                                       ; 1 = preserva el aspecto



Download Lastest BennuGD Release: http://www.bennugd.org/node/2

gecko

Copado lo de los .ini.

Setea un valor inicial que después en el codigo podemos cambiar? Podemos definir variables o algunas otras cosas?
Torres Baldi Studio
http://torresbaldi.com

JaViS

Interesante, que valores soporta el ini?
hay que hacer algo desde el lado del codigo para leer/escribir valores?


Saludos!
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

Quote from: gecko on August 09, 2017, 03:32:42 PM
Copado lo de los .ini.

Setea un valor inicial que después en el codigo podemos cambiar? Podemos definir variables o algunas otras cosas?

gracias

estos son iniciales, despues se pueden cambiar en el codigo con set_mode, etc.

video.mode
video.fullscreen

estos son fijos, una vez seteados no se cambian desde codigo, se supone que se setean para ajustar un juego a la pantalla de un dispositivo:

video.scale_resolution
video.scale_resolution_aspectratio
video.scale_resolution_orientation

Quote from: JaViS on August 09, 2017, 05:54:45 PM
Interesante, que valores soporta el ini?
hay que hacer algo desde el lado del codigo para leer/escribir valores?


Saludos!

los valores son los del ejemplo, el ejemplo, seria la documentacion.

al momento, solo a nivel engine (modulos/core)

facilmente se puede crear un modulo mod_config, que recoja todos los sections, keys y values que el callback de configuracion da, y luego ofrecerlos para poder ser leidos desde el codigo.

pero actualmente no se pueden manipular desde codigo bennugd... el escribir tambien podria ser posible en un mod_config.

(interesante idea...)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

#4
 ;D  Buenas noticias maestro..

tengo sugerencias..  ::)

1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros

2. desde el archivo de configuracion se pueda especificar el dcb con el cual comienza el juego
si aparecen varios , deberia aparecer una lista para escoger

["data.mb4", "juego tetris"] ,
["main.dcb", "juego naves"] ,
["main2.dcb", "juego rts"], ... .....


Gracias

SplinterGU

Quote from: l1nk3rn3l on August 09, 2017, 07:03:51 PM
;D  Buenas noticias maestro..

tengo sugerencias..  ::)

1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros



Gracias

esto lo podrias hacer con un system, aunque imagino que si en la consola no puedes llamar a un ejecutable ya no serviria, el problema con la sugerencia es la limpieza de la memoria, seria bastante complejo limpiar todos los recursos reservados, contando incluso que algunos no son controlados por el motor, como ser allocs del usuario... seria bastante complejo hacerlo prolijo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

seria algo asi como un exit();

pero que cuando termine de liberar bennu tenga una variable global que indique que no termine..

sino que ejecute otra vez el main o el run_dcb..

seria muy util en consolas y en moviles.. ya que ejecutar algo desde consola es dificil / requiere permisos / o no esta disponible...

SplinterGU

podria ser, llamar a un dcb como si fuera una funcion y cuando este termine, continue en dcb principal.

aunque hay que hacer un gran refactor del motor, eso si, seria mas factible.

lo de ejecutar otro dcb que reemplace el actual, no seria imposible, pero si bastante complejo, y quedaria sin poder liberar todos los mallocs que el usuario hizo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Jate

Aun estoy muy verde en el tema, asi que pregunto desde la ignorancia:

Y seria posible lanzar un programa externo y que el bennu quedase en suspension o algo asi?

Lo que quiero decir es que si podria hacerse como un front-end o un launcher de movil para ejecutar otras aplicaciones temporalmente.

Como ejemplo se me ocurre el Day of the tentacle que desde el juego puedes ejecutar el Maniac Manion que es un juego externo, no?

SplinterGU

Quote from: Jate on August 10, 2017, 02:30:57 PM
Aun estoy muy verde en el tema, asi que pregunto desde la ignorancia:

Y seria posible lanzar un programa externo y que el bennu quedase en suspension o algo asi?

Lo que quiero decir es que si podria hacerse como un front-end o un launcher de movil para ejecutar otras aplicaciones temporalmente.

Como ejemplo se me ocurre el Day of the tentacle que desde el juego puedes ejecutar el Maniac Manion que es un juego externo, no?

en movil desconozco, eso lo puede responder josebita, desde PC, si se puede.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

Hay forma de soportar resoluciones grandes como widescreen

1024×576, 1152×648, 1280×720, 1366×768, 1600×900, 1920×1080, 2560×1440 and 3840×2160

no se si es problema de SDL , pero intento usar inclusive constantes de bennu como M1280X1024

y explota...

este maximo funciona normal...

set_mode (1024,768,32);                     
 
en adelante crashea...    :-[

Internamente esta limitado o el SDL 1.3 no soporta ?

SplinterGU

en bennugd no hay limite, hasta 9999x9999 deberias poder, el tema es que lo soporte el operativo/driver de video/SDL, etc, resoluciones extrañas no las va a tomar.

con respecto a las constantes, no todas las constantes que quieras existen.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Jate

Quote from: SplinterGU on August 10, 2017, 04:45:41 PM

en movil desconozco, eso lo puede responder josebita, desde PC, si se puede.

Gracias, me mirare las funciones con tranquilidad. Es dificil encontrar tiempo para todo ;)

l1nk3rn3l

Quote from: SplinterGU on August 11, 2017, 02:02:39 AM
en bennugd no hay limite, hasta 9999x9999 deberias poder, el tema es que lo soporte el operativo/driver de video/SDL, etc, resoluciones extrañas no las va a tomar.

con respecto a las constantes, no todas las constantes que quieras existen.


Gracias    ;D

Ryo Suzuki

Gracias por el update. Gran trabajo.

Quote from: l1nk3rn3l on August 09, 2017, 07:03:51 PM
1. que desde codigo se pueda llamar a otro dcb.. digamos desde la mod_system 
una funcion execute_dcb("app2.dcb");  yo creo que con esta bastaria... volviera a llamar
al void main()  de c++  por asi decirlo... pero con el parametro del nuevo dcb..
seria util para las consolas/mobiles..  y otros

2. desde el archivo de configuracion se pueda especificar el dcb con el cual comienza el juego
si aparecen varios , deberia aparecer una lista para escoger

["data.mb4", "juego tetris"] ,
["main.dcb", "juego naves"] ,
["main2.dcb", "juego rts"], ... .....

Creo que sería genial, la verdad.