Autor Tema: r342 liberada  (Leído 318 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
r342 liberada
« en: Agosto 09, 2017, 07:03:31 am »
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:

Código: [Seleccionar]
# 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

Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 741
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Re:r342 liberada
« Respuesta #1 en: Agosto 09, 2017, 07:32:42 am »
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

Conectado JaViS

  • Global Moderator
  • Hero Member
  • *****
  • Mensajes: 1125
  • Karma: 19
  • Sexo: Masculino
    • Ver Perfil
    • Anarkade
Re:r342 liberada
« Respuesta #2 en: Agosto 09, 2017, 09:54:45 am »
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.

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #3 en: Agosto 09, 2017, 10:44:01 am »
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

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

Desconectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1888
  • Karma: 252
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #4 en: Agosto 09, 2017, 11:03:51 am »
 ;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
« última modificación: Agosto 09, 2017, 11:09:00 am por l1nk3rn3l »

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #5 en: Agosto 09, 2017, 11:08:22 am »
;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

Desconectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1888
  • Karma: 252
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #6 en: Agosto 09, 2017, 11:13:22 am »
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...

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #7 en: Agosto 09, 2017, 11:26:39 am »
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

Desconectado Jate

  • Newbie
  • *
  • Mensajes: 6
  • Karma: 0
    • Ver Perfil
Re:r342 liberada
« Respuesta #8 en: Agosto 10, 2017, 06:30:57 am »
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?

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #9 en: Agosto 10, 2017, 08:45:41 am »
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

Desconectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1888
  • Karma: 252
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #10 en: Agosto 10, 2017, 02:46:07 pm »
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 ?

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12457
  • Karma: 367
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #11 en: Agosto 10, 2017, 06:02:39 pm »
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

Desconectado Jate

  • Newbie
  • *
  • Mensajes: 6
  • Karma: 0
    • Ver Perfil
Re:r342 liberada
« Respuesta #12 en: Agosto 11, 2017, 02:02:18 am »

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 ;)

Desconectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1888
  • Karma: 252
  • Sexo: Masculino
    • Ver Perfil
Re:r342 liberada
« Respuesta #13 en: Agosto 11, 2017, 06:22:14 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

Conectado Ryo Suzuki

  • Full Member
  • ***
  • Mensajes: 110
  • Karma: 1
  • Sexo: Masculino
    • Ver Perfil
    • SEGASaturno
Re:r342 liberada
« Respuesta #14 en: Agosto 13, 2017, 03:25:22 am »
Gracias por el update. Gran trabajo.

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.