Smart Fpg Editor

Started by darío, January 03, 2009, 12:27:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

darío

Este post contiene información relevante sobre el desarrollo de Smart Fpg Editor.

ACTUALIZADO 2011.09.04

Última version liberada: 0.4.5



NOTA: Como siempre, se recomienda desinstalar cualquier versión anterior antes de instalar una nueva versión.

Versión 0.4.5 (liberada el 2011.09.03)

Funcionalidad nueva

  • Drag&Drop desde el editor hasta el explorador de windows. Si se mantiene pulsada la tecla "Ctrl" se generan archivos PNG, si no, se generan archivos MAP
  • Ahora se puede llamar al programa pasándole como argumentos el nombre de uno o más archivos FPG
  • Menus contextuales en la ventana principal
  • Cambio rápido del nombre de un gráfico a través del menu contextual
  • Ahora se pueden exportar las paletas de los FPGs de 8bpps
  • En el visor/editor de gráficos se pueden visualizar los puntos de control sin necesidad de entrar en modo edición
  • Funcionalidad "siguiente/anterior punto de control sin definir" en el visor/editor de gráficos, para moverse por los puntos de control que no se hayan definido todavía

Errores corregidos

  • En algunas situaciones, los gráficos de un FPG podían aparecer desordenados.
  • Cuando se añadía un gráfico desde un fichero MAP se mostraban caracteres erróneos en la descripción cuando esta contenía "ñ", "à", etc.
  • Al añadir un gráfico inmediatamente después de haber eliminado uno se generaba un error del programa que hacía que dejase de funcionar.

Cambios en la interfaz

  • Se han reemplazado una serie de iconos que no eran totalmente libres por iconos libres

Mejoras de usabilidad

  • El nombre del fichero FPG se muestra en la barra de título
  • El botón "Aceptar" de "Añadir Gráfico" es el botón por defecto
  • En el visor/editor de gŕaficos las líneas que indican la posición del ratón no se muestran ahora cuando se está fuera de la región del gráfico
  • "Untitled" se usa ahora como el nombre por defecto a la hora de guardar un FPG nuevo

Versión 0.4.0 (liberada el 2011.05.07)

Funcionalidad nueva

  • Los ficheros FPG pueden arrastrarse a la ventana principal de SPFGE para abrirlos
  • Drag&drop para intercambiar gráficos con otros programas
  • Drag&drop entre ventanas de SFPGE
  • Operaciones de copiado, corte y pegado entre ventanas de SFPGE así como con otros programas.
  • Soporte mejorado para la ruedecilla del ratón en el editor de FPGs: Ctrl + Rueda --> control del tamaño de los thumbs
  • Soporte mejorado para la ruedecilla del ratón en el editor de MAPs: Ctl + Rueda -> Zoom; Mayus + Rueda --> Scroll horizontal
  • Se pueden añadir gráficos al FPG arrastrando desde el explorador.
  • Las selecciones guardan el orden en que se han ido seleccionando los gráficos de modo que al deseleccionar de uno en uno (con Ctrl) se reestablece el foco sobre el último gráfico seleccionado con anterioridad.

Errores corregidos

  • Cuando se creaba un fpg de 8 bits, si la paleta que seleccionábamos era de otro archivo FPG, se producía un error que hacía caer el programa
  • Si se hacía una selección múltiple y el último gráfico seleccionado se deseleccionaba con Ctrl + Click, el gráfico retenía el "foco", lo cual no tenía sentido

Cambios en la interfaz de usuario

  • Cuando no hay un FPG cargado, se informa en la ventana para distinguir de cuando tenemos un fpg vacío
  • Se ha mejorado la apariencia del editor de FPGs (es más bonito ahora)
  • Se ha quitado el botón "Duplicar FPG" (era una estrella). Esta opción se encuentra ahora en el menu desplegable "Nuevo"

Mejoras en la usabilidad

  • Seleccionar y deseleccionar funciona ahora de un modo mucho más coherente (era necesario para poder tener un drag&drop decente)
  • Cuando hay un fpg abierto, al abrir un fpg se abrirá una nueva ventana del editor


Versión 0.3.0


  • Añadido soporte para exportar gráficos a formato PNG

Con esto concluyo la lista de cosas que quería tener listas para cerrar la serie 0.2.x.

Versión 0.2.8

Esta versión incluye bug-fixes menores (pero importantes) comparado con la versión 0.2.0 y añade algunas características extra:

Errores corregidos más importantes

  • Puntos de control no consecutivos no eran correctamente guardados al guardar el FPG. (Nótese: el problema no ocurría si los puntos de control eran todos consecutivos)
  • Redimensionar la ventana del editor gráfico al mínimo tamaño originaba un error
Características añadidas

  • Capacidad para exportar gráficos a formato MAP.
  • Activadas las opciones Usar puntos de control propios y Usar puntos de control del gráfico a reemplazar en el cuadro de diálogo añadir gráfico.

SMART FPG EDITOR

Smart Fpg Editor es, como el nombre sugiere, un editor de FPGs. Se está desarrollando en Visual Basic 6.
El objetivo principal del projecto es crear un editor FPG tan intuitivo y sencillo de usar como sea posible, lo que yo llamo painless FPG editor. Smart Fpg Editor se distribuye bajo licencia GNU GPL 3.

+ This same post in English
+ Página del proyecto (código fuente y archivos binarios): http://code.google.com/p/smartfpgeditor/
+ Información de donde bajar el programa y los requerimientos básicos se puede encontrar más abajo en este post.
+ (Sin actualizar) Algo más de información puede encontrarse en mi blog

LISTA DE CARACTERÍSTICAS Y CAPTURAS DE PANTALLA

La lista de características y algunas capturas pueden encontrarse en la página del proyecto.

DESCARGA E INSTALACIÓN

Paquetes disponibles para descarga:
Nota: Si estás actualizando de una nueva versión, se recomienda desinstalar previamente la versión anterior.


  • Installer: Destinado para el usuario final general. RECOMENDADO
  • Binary ZIP Package: Destinado para aquellos que por algún motivo no deseen usar el instalador. Se recomienda leer el archivo "readme-binary-dist.txt" incluido con el paquete
  • Sources: Código fuente de Smart Fpg Editor. Puedes encontrar una explicación de cómo compilarlos en el Wiki de la página del proyecto

IMPORTANTE: Para instalar el programa, así como registrar manualmente los componentes COM (si usas el Binary Zip Package) debes tener permisos de administrador.

La versión disponible está etiquetada como Unstable (inestable). Esto no significa que el programa vaya a fallar todo el rato, simplemente recalca el hecho de que necesita ser probado más a fondo. Agradezco desde ya el tiempo que te tomes en probar y reportar cualquier bug que encuentres :).

El programa he podido ejecutarlo sin problemas en Windows Xp y Windows 7, pero imagino que debería funcionar bien en otros sistemas Windows (si alguien puede reportar algo al respecto estaré agradecido).

Espero que os guste,

Darío (danko)
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

SplinterGU

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

osk

Muchas gracias!
Está estupendo!
Lástima de portabilidad...¿has probado de mirarte Gambas, KBasic o incluso Mono? Aunque si dices que has usado ActiveX lo veo chungo...
De todas maneras, felicidades.

josebita

#3
Tiene muy buena pinta, ¡felicidades!.
Eso sí, penita que sólo esté para windows... Aunque es útil de todas formas.

darío

#4
Buenas, gracias por los comentarios.

El tema de la portabilidad, ya había pensado en eso. ..

Comento primero un poquillo de historia de como nació esto: ¿por qué en VB6? (Sí, yo también lo odio un poco jeje), esto en realidad puede importar bien poco a la mayoría de vosotros, así que saltar al final si queréis saber si se portará o no xD...

Si está hecho en visual basic es porque en realidad el proyecto nació por un intento de separar ciertas partes de flamebird, en concreto la parte que trabaja con los formatos de archivos de fenix/bennu. Así cree una librería llamada bennulib.dll, que en principio estaba destinada a ser usada en FB. Esta librería, se instala con la aplicación pero se puede enlazar desde cualquier aplicación que soporte librerías activeX, lo que da acceso a una serie de clases y funciones para cargar, crear, manipular y guardar FPGs, MAPs, y paletas.
Más tarde, pensé que sería interesante también separar el visor de fpgs de FB, porque hasta entonces se usaba un control de cuadrícula sacado de vbAccelerator, pero esto resultaba particularme engorroso. Así pues decidí crear mi propio OCX "visor de FPGs", de este modo se podría reutilizar fácilmente en otros proyectos windows. Finalmente decidí proceder de igual forma para tener un "visor de MAPs" y un "visor de paletas". El resultado es SmartBennuCtls.ocx, que incluye los citados visores y que también es usado por la Smart Fpg Editor, pero es posible enlazar desde cualquier aplicación que soporte librerías activeX.

Resumiendo, que los dos componentes activeX fundamentales de la aplicación están también escritos por mí (publicaré el código fuente bajo la misma licencia tan pronto me sea posible).

Después de haber hecho esto, necesitaba crear una pequeña aplicación para ir haciendo pruebas con ambos componentes así que se me ocurrió crear este editor de FPGs, con la intención principal de ser muy fácil y cómodo de usar (en FPGEdit, de los pocos editores finalizados que han salido a la luz, echaba en falta más comodidad a la hora de trabajar y además se me hacía necesario tener soporte para 32 bpp)

El resto de ActiveX que usa la aplicación se debe a las carencias intrínsecas de Visual Basic y no son más que un control hacer las Toolbar ya que el proporcionado por los MsCommonCtls (el que suelen usar las aplicaciones basadas en VB) no satisfacía mis necesidades, un control Image List (misma razón), un control para hacer menús (ya que los menús que se pueden hacer con VB6.0 son muy pobres) y una dll (SSubTmr.dll) que es usada por los controles que uso para subclasificar.

Luego, los otros dos requerimientos más son la zlib.dll y FreeImage.dll, los cuales no representan problemas a la hora de portar.

En fin, respondiendo a la intrínseca pregunta de si se puede portar: Bueno, está claro que no puedo coger el código fuente y compilarlo en otro compilador multisismea sin más, sin embargo he de decir que la parte más difícil del proyecto está siendo diseñar las cosas de manera coherente y pensar en facilitar la interacción con el usuario. Estas características son independientes del lenguaje y por tanto sí, se puede portar. La siguiente pregunta sería si tengo intención de portarlo, bueno, en principio sí, pero sólo una vez alcance los objetivos marcados para el programa.

En cuanto al lenguaje, conozco los que mencionas osk. A excepción de KBasic. Sin embargo, de portar el programa optaría lo más probablemente por Java, ya que he trabajado con él e incluso tengo bastante código disponible que me puede servir (hace tiempo empecé a desarrollar una librería llamada fenixlib con la misma intención que la bennulib que he comentado más arriba). También estoy familiarizado en cierto modo con las librerías para crear la UI en java, y puesto que Smart Fpg Editor no tiene una interfaz muy complicada, no me debería ser muy difícil de llevar a cabo. Lo más engorroso es portar el código de los "visores" (SmartBennuCtl.ocx) pero en realidad debería ser fácil teniendo ya un código base.

Buff, como me he explayado... Todo para acabar diciendo que una vez alcance mis objetivos propuestos sí, tengo intención de portarlo a otro lenguaje que sea multiplataforma.

Un saludo,
Darío
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

SplinterGU

En linux no funciona, falta incluir la MSVBVM60.DLL y quizas alguna otra mas... no se... pero seria bueno poder hacerlo funcionar en linux...


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

darío

Creo que puedo decirte exactamente las dependencias. No se si acabará funcionando pero podemos intentarlo.

La dll que comentas es parte de los runtime de visual basic. He subido un zip con los runtimes a: http://www.dariocutillas.es/sfpge/required/vb6runtime.zip

Otro problema que probablemente tendrás son las librerías GDI+, que no se si han sido implementadas en wine (supongo que es lo que estás usando). Tengo un paquete redistribuible por algún lado, si te lo pide dimeló e intento subirlo.
Si no, como ya había previsto esta situación, el módulo de dibujo lo tengo codificado en dos versiones, una que utiliza GDI+ y otra que utiliza GDI y puedo compilarlo con ella. El problema es que con GDI todavía no he implementado dibujo con AlphaBlend por lo que los mapas de 32bpp con transparencias "no se verán bonitos" y parecerá que trabajamos a 16bpp (aunque sí que se guardarán bien).

También necesitas tener una versión actualizada de la comct32.dll, teno un paquete redistribuible, pero es un instalador (supongo que lo podrás ejecutar con wine, también). Lo he subido a: http://www.dariocutillas.es/sfpge/required/50comupd.exe
De todos modos, esto viene con IE versión 5 o superior, así que supongo que puedes pillar la comct32 de tu sistema windows.

Gracias por probarlo.
Darío (danko)


My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

SplinterGU

pedir no me pide ninguna mas, pero no arranca... quizas alguna que cargues vos por codigo... no se...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

darío

Bueno, realmente no tengo idea de cómo funciona wine a la hora de ejecutar este tipo de aplicaciones. Es una de las cosas malas del VB6, las malditas dependencias... Tampoco se como trata el tema del ActiveX, puesto que en windows necesitan ser registrados (lo que se supone que hace el instalador).

Puedo probar a hacer que Smart FPG editor registre las dlls y ocx en el arranque, tal cual hace FB para ver si así funciona. Se que alguien consiguió ejecutar FB en Linux con wine, aunque con ciertas cosas deshabilitadas que no funcionaban (creo que una de ellas era el control de edición de textos).

Me ayudaría tener un ordenador con Linux para hacer las pruebas, pero en este momento no dispongo de el. Ya veré lo que puedo hacer.

De todos modos, si la portabilidad se hace tan importante quizá sí deba empezar a planear el cambio a otro lenguaje...

Gracias por intentarlo.

Darío (danko)
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

josebita

Pues a mí sí que me va con el último wine (1.1.12). El truco está en usar winetricks (http://wiki.winehq.org/winetricks) y darle a instalar todo los que suene a Visual Basic 6 y ActiveX.
Luego he instalado el Smart FPG Editor y sin problemas :)

darío

Genial! no sabía de la existencia de eso! :)
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

Prg

:) Descargando y probando
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

caramba, yo tengo el 1.1.11, y el apt-update+upgrade no me dice que hay version nueva...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Uso los repositorios que pone en winehq.org (no los oficiales de ubuntu).

SplinterGU

yo tambien... uso los de lamaresh, cual usas vos?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2