CRM32Pro SDK v5.00 ya esta disponible!!

24 diciembre, 2009

Menos mal que lo he conseguido :). Acabo de actualizar la web, de subir los nuevos paquetes y versiones. Esta vez ha costado bastante, el hecho de soportar 3 plataformas y una doble(Win32 con Visual Studio y GNU GCC) multiplica por 4 el trabajo a realizar pero bueno, cierro un ciclo finalmente al poder terminar la libreria y justo antes de las vacaciones!!! 馃檪

Ahora me voy a poner a terminar el scrollengine para finalmente ponerme con el bomberman. Son dos proyectos que estan muy avanzados pero faltan los detalles finales que se llevan mucho, mucho tiempo asi que no dara ninguna fecha, hare como blizzard: “Cuando esten listos” 馃槢

La proxima semana, el lunes seguramente, quedemos algunos del foro de stratos para tomar unas cervezas y despedir este anio. La ultima quedada estuvo muy bien, finalmente conoci a muchos del foro que llevaba anios viendo y leyendo sus posts y bueno que decir, que somos todos unos frikis muy muy nerds!!! pero de bueno rollo jejeje

Mientras tanto, os deseo unas felices navidades!!

Anuncios

CRM32Pro v4.99 SDK

21 octubre, 2007

Buenas!

al final y como casi siempre, unos dias se traducen en semanas que a su vez, se hacen meses… y es que el tema de los efectos en sprites(mirror,flip,resize y rotate) ha dado mucha mas guerra de la que me imaginaba. Para empezar, justo hace un a帽o que intente implementarlo pero me rendi, habia otras cosas que hacer…por aquel entonces el proyecto PKM06 estaba vivo… pero como soy masoca, un poquito melon y tuve un momento de inspiracion..se me ocurrio antes de verano que podria ponerme de nuevo con los dichosos efectos. Pues bien, estan conseguidos y funcionando! 馃檪

Esta version, tiene muchisimas mejoras y aconsejo a todo el que utilice la lib, pasarse a ella YA!.

Una de las cosas que estuve haciendo fue pasarla el BoundsChecker de forma intensiva y descubri varios bugs jodidillos pero que pude reparar.

Ademas, he aprovechado y he agregado soporte directo a las superficies y recursos en 8bits, hace a帽os pense que seria una tonteria soportar 8bits pero ahora creo que es mas tonteria poner limites absurdos solo porque yo pensara que…. y esto no ha sido facil, sobre todo en el EditorDPF pero con tiempo y dedicacion, tambien lo he conseguido jeje.

Por ultimo, he subido la v1.2 del DPF2XML que no solo es muchisimo mas rapido importando de XML a DPF si no que ademas van los ejecutables para Windows y Linux.

Quizas alguno se pregunte…y el SetupProject? no estaba terminado? S铆, si lo esta. Lo subir茅 esta semana pero tengo que hacer unas mini-instrucciones y modificar muy levemente al SpacePong para que lo utilice y asi habra un ejemplo practico.

Si todo eso va bien, esta semana hare otro update de la web y acto seguido me pondre con el scrollengine para pulir un par de detalles y poder liberarlo cuanto antes, fechas? yo espero que antes de que termine este mes este en la web pero… yo ya no digo nada :).

Y bueno, la v5.0 la dejo un poco aparcada hasta el proximo a帽o ya que me quiero poner con los jueguecillos, lease TitanBomber.

En fin, esto ha sido todo por el momento, que no es poco!

Dejo una lista de las mejoras de la v4.99:

路 CRM32Pro main interface:

– Implementation of LoadConfig() and SaveConfig(). They now work!.

– Full working link between LoadConfig()/SaveConfig() and the SetupProject.

– Improved blitting optimization across all supported CPUs.

路 ILogSystem:

– Added new Halt() and Resume() members to stop and resume the log output.

– New mode to append the log output to the same log file.

路 ICursor:

– Fixed a problem creating a cursor from a 8bits surface.

路 INetwork:

– Fixed some memory leaks on client and server code.

– Improved stability with client-server disconnections.

– Updated network examples.

路 IButton:

– Raised MAX_LAYERBUTTON from 3 to 5.

– Fixed a problem with layer visibility. Now they works fine.

– Fixed a problem with ID buttons on layer 2 and upper.

– Better output of Info() member.

– Improved master buttons and cloned buttons functionality.

– Added new SetKey() and GetKey() members.

– Added new SetColorSelect() and GetColorSelect() members.

– Added new RemoveMaster() member.

– Inputbox type button now works better avoiding key repetition and delays.

– GetCurrentValue() has been renamed to GetValue().

– SetCurrentValue() has been renamed to SetValue().

– Function assigned to a button now supports two argument of any data type.

– Fixed a problem in Save() to DPF when the button was in video memory.

路 IVideo:

– Fixed a critical bug on MPEG playback on multicores CPUs.

The problem was found and solved on SMPEG sources.

路 IScreenFX:

– Improved Resize(): faster, support all color depth and optional render to a destination surface.

– Added new Flip() member to flip a surface.

– Added new Mirror() member to mirror a surface.

– Added new Rotate() and RotateScale() members to rotate a surface.

– All above members support surface clipping and the destination surface bounds.

– Note that all above features work in software mode. In hardware mode they are quite slow.

路 IPrimitives:

– PutPixel() has been renamed and duplicated to PutPixelColor() and PutPixelRGBA().

– HLine() has been renamed and duplicated to HLineColor() and HLineRGBA().

– VLine() has been renamed and duplicated to VLineColor() and VLineRGBA().

– Rect() has been renamed and duplicated to RectangleColor() and RectangleRGBA().

– Added new LineRGBA() and LineColor() members.

– Added new BoxColor() and BoxRGBA() members.

– Added new RGBtoYUV() and YUVtoRGB() members.

– Added new RGBtoCYMK and CYMKtoRGB() members.

路 CSprites:

– Added new SetEffect() member to activate special effects.

– New special effects: mirror, flip, rotate and resize.

– Fix a problem with colorkey in 8bits and 16bits surfaces.

– Full support for 8bits sprites surfaces.

– Fixed a problem in Save() to DPF when the sprite was in video memory.

路 IImage:

– Added new LoadIMG() member to load a BMP or PNG.

– Fix a problem in SavePNG() trying to save RLE surfaces.

路 CTiles:

– Full support for 8bits tiles surfaces.

– Fixed a problem in Save() to DPF when the tile was in video memory.

路 Improved internal use of SDL_DisplayFormat(): it only performs the conversion when it is needed.

路 Modified project files to support VS2005 and ready to add MacOS x86 project files.

路 Improved documentation.

路 Fixed a couple of mispelling words on sprites documentation. Thanks to Melkor to report it!.


Antes de la v5.0… la v4.96!

26 octubre, 2006

Despues de tener varias conversaciones con warwolf del foro de Stratos y debido a que desde que anuncie que los sprites soportaran rotacion y escalado, recibo casi un mail diario preguntando para cuando estara disponible he decidido sacar una version antes de la v5.0.

De este modo, con la v4.96 espero poder liberar todas las mejoras de sprites en mes antes de lo previsto, que si todo va bien, podria ser en noviembre. Pero como siempre, depende mucho del tiempo libre del que disponga que ultimamente mas bien brilla por su ausencia.. pero tiene que cambiar! no va a ver siempre mil incidencias en el curro jeje.

Adelanto por aqui las mejoras previstas en la v4.96 tal y como lo tengo en mi ToDo, luego esta ingles y espanol mezclado…pero se entiende:
路 CFont:
– Added new SetKerning() member to set the kerning of the font.
– The format of stored fonts have changed. Load() member will automatically update it.
路 CSprite:
– TODO Al clonar sprites…porque no clona el autorestore, pausa y demas??? deberia e indicarlo en la documentacion
– TODO A帽adir a los sprites el hotx y hoty.
– TODO Seleccion del frame inicio y frame final de una animacion
– TODO revisar pingpong porque parece que se repite el ultimo frame
– TODO mirror,flip, rotacion y escalado.
路 IScreenFX:
– TODO Added new Flip() member to flip a surface.
– TODO Added new Mirror() member to mirror a surface.
– TODO Added new Rotate() member to rotate a surface.
– TODO Improved Scale(): faster and direct support for 8bits surfaces.
路 ITimeSystem: added a new warning message when CRM32Pro.Update() is used without to initialize ITimeSystem.
路 IButton: fixed a problem with slider button.
路 Fixed a bug in CRM32Pro.Update() when ITimeSystem was not initialized.
路 Removed two little memory leaks.

Bueno, pues voy a trabajar otro poquito y ya dejo de perder tiempo con el blog 馃檪


Estado actual de la v5.0

17 octubre, 2006

Algunos de los recursos fueron dise帽ados hace muchos a帽os y tenia que conseguir un modo sencillo y eficaz de poder actualizarlos a una nueva version interna que permitiera facilmente agregar mas caracteristicas y tras pensar y ponerme con el mitico papel y boli, consegui un metodo que actualizara de forma transparente todos los recursos sin riesgo de perder nada, el incoveniente es que los nuevos recursos no seran compatibles con versiones anteriores de la libreria, aunque bueno, esto no es muy importante porque todos deberian empezar a usar la v5 y olvidarse de las anteriores :).

Por el momento, he actualizado el recurso fuente que he aprovechado para agregar una caracteristica nueva: el kerning. Ahora es posible activar un kerning en tiempo de ejecucion o seleccionar uno directamente desde el EditorDPF. Esto lo necesitaba alguien de alemania que esta terminando un juego de resolver crucigamas… a ver si lo termina y me envia algun screenshot.

Ahora me tengo que meter con la actualizacion del recurso sprite. De este modo, agregare las deseadas HotX y HotY para empezar el render desde esas posiciones, lo hare por cada animacion posible, me parece que bajar al nivel de frame seria un engorro grandisimo y poco util, y si lo hago a nivel de sprite, me cargo mucha funcionalidad, asi que el nivel adecuado es el de por cada animacion.

Despues de esto y tras el fracaso de las pruebas con algoritmos de escalado con filtros de alta calidad, voy a utilizar sdl_gfx y me quito de lios, he conseguido optimizar en velocidad en modos 16bits y 24bits y el resto, por defecto, sdl_gfx lo hace bastante bien y rapido. En el apartado Benchmark, pondre mas info sobre este “fracaso”.

El tema es que a IScreenFX tengo que a帽adirle un par de funciones nuevas:

-Flip() (ya esta implementada)
– Mirror() (ya esta implementada)
– Scale(), admite como parametros un float con el factor de escalado o el tama帽o final. X e Y independientes.

– Rotate()

Tengo que terminar las dos ultimas usando sdl_gfx y despues hacer pruebas para ver que todo es correcto.

Acto seguido, ya podre incorporar escalado y rotacion a los sprites :). Como no se podra hacer en “realtime”, voy a utilizar un metodo que colgare por aqui por si alguien tiene alguna idea mejor, adelanto que se creara un nuevo sprite con su surface por cada escalado y rotacion que hagamos, es decir, gastaremos mas memoria a cambio de no tener que usar la cpu y matar las fps de cualquier juego.

Todo esto que he comentado esta al 60%, espero en este mes poder terminarlo para seguir con otros puntos de la nueva version…pero eso es ya otra historia..digo post 馃檪


A por la v5.0!!!

13 septiembre, 2006

Si alguno de vosotros sigue el desarrollo de CRM32Pro, sabr谩 que hace un par de dias subi la v4.95 con todo el apartado de red reescrito y muy mejorado, en realidad esa versi贸n bien podr铆a haber sido la v5.0 pero bueno, por temas de roadmap y tal quiero hacer coincidir un cambio grande en la versi贸n con el soporte completo a glSDL.

Por ahora, estoy investigando en varios frentes y en concreto, ahora mismo estoy probando distintos algoritmos de reescalado de surfaces enfocados a velocidad y/o calidad; seguramente agregue una entrada con estos resultados. El objetivo ser铆a disponer de varios algoritmos para poder hacer reescalados en tiempo real con baja calidad o en modo offiline de alta calidad.

Adem谩s me interesan algoritmos de rotaci贸n de surfaces, estos seguramente no puedan ser acometidos en tiempo real pero no importa :), el developer final estar谩 informado de ello jeje.

Los dos algoritmos anteriores tienen un objetivo, que la clase Sprites lo soporte!. Me han hecho varias peticiones de ello y creo que ha llegado el momento de incorporarlo. Otra mejora que vendra en Sprites es algo que se me olvido…los hot spots! y para poder almacernarlos voy a tener que hacer cambios en la estructura y por consiguiente, movida por temas de compatibilidad hacia atras. Ya ver茅 como lo soluciono, lo que esta claro, es que habr谩 compatibilidad con versiones anteriores.

Cuando haya terminado esto, volvere para ir mostrando el SetupProject y el estado del soporte a glSDL.

Por cierto, tambien estoy intentando(a ratos) hacer un wrapper para poder utilizar CRM32Pro desde C#, pero me estoy encontrando bastantes problemas, muy a mi pesar 馃槮

Nada m谩s por el momento.