TOOLS download: Gemix Studio 7.5 Tools
BETA download: Gemix Studio BETA 7.5 Win32
BETA download: Gemix Studio BETA 7.5 Linux
BETA download: Gemix Studio BETA 7.5 Mac Coming soon...
SDK download: Coming soon...
NOTA: Para las licencias de uso de la BETA ver Aqui
09/05/2016 BETA 7.5 UPDATE 3
-----------------------------------------
Features:
Language & Core
---------------------
- * Fixed:
- bugs que permitian compilar, en algunos casos, un programa gramaticalmente erratico
Graphics
-----------
- * Fixed:
- [Legacy] bug en la función MAP_GET_REALCPOINT en calcular correctamente la posición del punto de control segun el angulo establechedo por "angle" (introducido en la beta 7.5)
- bug en la función GROUND_PUT en renderizar los pixels transparentes de un grafico (introducido en la beta 7.5)
- bug en la función RENDER_GRAPHIC que probocaba error de runtime si se utilizaba el valor -1 en "region"
Pathfind
-----------
- * Fixed:
- bug en calcular correctamente el path sin diagonales, si especificado en la función PATH_FIND con las opciones "nodiag"
Text
------
- * Fixed:
- bug en la función RENDER_TEXT que probocaba error de runtime si se utilizaba el valor -1 como "region"
- bug en la función RENDER_TEXT en renderizar correctamente un grafico/texto en un "target" distinto de la pantalla
02/04/2016 BETA 7.5 UPDATE 2
-----------------------------------------
Features:
Graphics
-----------
- * Added:
- [Linux] soporte de aceleración hardware para el rendering grafico basada en OpenGL 2.0+ y OpenGL ES 2.0+
- * Fixed:
- bug en las funciones FPG_LOAD, FPG_LOAD_MAP y MAP_LOAD en cargar correctamente el CPOINT 0 de un grafico, si definido, en algunos casos (introducido en la beta 7.5)
- [HW] bug en visualizar correctamente una resolucion con filtro 2x o virtual (introducido en la beta 7.5 update 1)
- bug en renderizar correctamente un grafico de tipo scroll utilizando la función RENDER_GRAPHIC
- bug en renderizar correctamente un grafico de proceso de tipo screen perteneciente a file >= 1, en un "target" MAP
Text
------
- * Fixed:
- bug en renderizar correctamente los textos en el target especificado por la variable GLOBAL "texts", en algunos casos
- bug en renderizar correctamente un caracter/texto de tipo scroll utilizando la función RENDER_TEXT
- bug de memory leak en la función RENDER_TEXT
14/03/2016 BETA 7.5 UPDATE 1
-----------------------------------------
Features:
Language & Core
---------------------
- * Fixed:
- [Win] problema que impedia el funcionamiento de los programas en Windows XP, introducido en la beta 7.5
- bug en generar correctamente la signature de un prototipo de METHOD que declaraba parametros TYPEDEF, declarado en la seccion DECLARE del programa
- bug en asignar correctamente una cadena de texto a constantes o variables declaradas en ficheros PRG utilizados con INCLUDE, introducido en la beta 7.5
- algunos bugs de control y utilizo de punteros
- bug en compilar correctamente en algunos casos, el codigo de bloques PROCESS/FUNCTION/METHOD definidos en ficheros INCLUDE, introducido en la beta 7.5
- bug que provocaba el crash del programa al utilizar una llamada de función como inicializador de un argumento de default de un parametro de un bloque PROCESS/FUNCTION/METHOD, ahora genera correctamente un error de compilación
- ! Information:
- mejorado output de compilación de los PRG, ahora se visualiza el path completo utilizado en los INCLUDE
Graphics
-----------
- * Fixed:
- bug que impedia el correcto funcionamiento de la función MAP_BLOCK_COPY, introducido en la beta 7.5
- [HW] bug en el sistema de FADING que impedia el correcto funcionamiento en algunos casos
- [HW] bug en renderizar correctamente la pantalla en modalidad fullscreen emulada
- [HW] bug en aplicar correctamente el ordern de transformaciones affines indicado en ORDER
- [SW] bug en la función RENDER_GRAPHIC en aplicar la transformación affine SHEAR
Mode7
--------
- * Fixed:
- [HW] bug en renderizar correctamente una texture usada simultaneamiente como world y exterior
14/02/2016 BETA 7.5
--------------------------
Features:
Language & Core
---------------------
- + Added:
- nuevas opciones de compilación:
- _gmxsystem_audio, _gmxsystem_graphics
- gmxaudio_legacy, gmxaudio_modern, gmxgraphics_legacy, gmxgraphics_modern
NOTA: el setting de gmxaudio_modern y/o gmxgraphics_modern rompe la compatibilidad con los programas DIV2
- nuevas opciones de compilación:
- * Fixed:
- bug que permitia re-declarar una variable con el mismo nombre despues la declaración de un array
- bug en aplicar correctamente el tipo de casting a un dato utilizando un calificador (ej: (float)id_proc.var)
- bug que impedia pasar correctamente cualquier tipo de argumento como parametro de un metodo llamado en modalidad remota (ej: proc_id.method_name(...))
- bug que impedia inicializar correctamente estructuras con campos de tipo PROCESS
- bug de error de compilación al acceder a un campo struct de la forma "struct_var_name[index].field", si la struct era declarada de un solo registro
- bug en el operador ternario (?:) al usar datos DOUBLE correctamente en las expresiones, probocando a veces crash del programa
DMBS
-------
- + Added:
- soporte de creación y gestión de base de datos basadas en SQLite
Main
------
- * Fixed:
- [Linux] bug en visualizar correctamente el tipo de SO devuelto por la funcion GET_OS
Graphics
-----------
- + Added:
- soporte de aceleración hardware para el rendering grafico basada en OpenGL 2.0+ y OpenGL ES 2.0+
- nuevos tipos buit-in TYPE para rendering grafico:
- render_surface, render_asset, render_visibility, render_transform_set, render_transform_block, render_transform, render_fx
- nuevo tipo LOCAL built-in TYPE RENDER_ENTITY en substitución de las viejas variables locales (X, Y, Z, etc...), se soporta todavia acceso directo a los miembros para retrocompatibilidad de los programas
- nuevas variables miembros para los procesos y funciones:
- ANCHOR, BLOCK, FNT, TILED
- nueva constante FX_ADVANCED, para poder utilizar efectos avanzados (TINT, etc...)
- nuevas constantes para MODE_GET_RENDERER:
- renderer_driver, renderer_simd
- nuevas constantes para MODE_SET_RENDERER:
- renderer_driver_autodetect, renderer_driver_software (SW only), renderer_driver_opengl (HW only), renderer_driver_opengl_with_simd (HW only), renderer_simd_autodetect, renderer_simd_none, renderer_simd_mmx
- [HW] nuevas funciones de loading assets:
- INT GRAPHICLOADER_GET_BEHAVIOUR()
- INT GRAPHICLOADER_SET_BEHAVIOUR(INT behavior)
- graphicloading_for_hardwareusage, graphicloading_for_softwareusage
- [HW] nuevos FX y constantes:
- fx_blend_lighten, fx_blend_darken, fx_blend_ligthercolor, fx_blend_darkercolor, fx_blend_colordodge, fx_blend_colorburn, fx_blend_overlay, fx_blend_softlight, fx_blend_hardlight, fx_blend_linearlight, fx_blend_vividlight, fx_blend_pinlight, fx_blend_hardmix, fx_blend_difference, fx_blend_negation, fx_blend_exclusion, fx_blend_reflect, fx_blend_glow, fx_blend_phoenix, fx_blend_hue, fx_blend_saturation, fx_blend_color, fx_blend_luminosity
- [HW] nueva variable miembro FILTER para procesos y funciones para activar/desactivar filtro nearest/bilineal
- nuevas constantes para alineamiento de transformaciones graficas:
- transform_anchor_cpoint0, transform_anchor_topleft, transform_anchor_topcenter, transform_anchor_topright, transform_anchor_left, transform_anchor_center, transform_anchor_right, transform_anchor_bottomleft, transform_anchor_bottomcenter, transform_anchor_bottomright
- nuevas constantes para alineamiento de transformaciones graficas:
- render_framebuffer_ground, render_framebuffer_screen, render_target_ground, render_target_screen
- nuevo overload de la función GROUND_PUT:
- INT GROUND_PUT(INT file, INT graph)
- nueva función RENDER_GRAPHIC:
- INT RENDER_GRAPHIC(RENDER_ENTITY *entity)
- - Removed:
- [HW] soporte 8/16bits dal motor con aceleración hardware para su no utilidad e dificuldad de implementación
NOTE: esta remoción rompe la compatibilidad con los programas DIV2 - efectos y constantes:
- fx_andblend, fx_orblend, fx_xorblend
- [HW] constantes:
- mWIDTHxHEIGHT, mode8_bits, mode_16bits, mode_32bits
NOTE: esta remoción rompe la compatibilidad con los programas DIV2 - constantes para MODE_GET_RENDER:
- rendering2D_mode, rendering3D_mode
- rendering2D_autodetect, rendering2D_software, rendering2D_mmx, rendering3D_autodetect, rendering3D_software, rendering3D_sse
- variables LOCAL ALPHA, FXMODE, FXCOLOR y FXINTENSITY, usar el nuevo TYPE built-in FX y el FX_ADVANCEDTYPE_TINT en su lugar
- [HW] variables LOCAL ANGLE y SIZE, utilizar el nuevo set SCALE y ROTATION
- [HW] parametro BPP por las funciones MODE_EXISTS and MODE_SET para su no utilidad en el motor con aceleración hardware
- [HW] overload función MODE_SET de un parametro
NOTE: esta remoción rompe la compatibilidad con los programas DIV2 - [HW] funciones:
- COLLISION_GET_ALPHATHRESHOLD, COLLISION_SET_ALPHATHRESHOLD, GET_PIXEL, GROUND_GET_PIXEL, GROUND_PUT_PIXEL, SCREEN_GET_PIXEL, PUT_PIXEL
NOTE: esta remoción rompe la compatibilidad con los programas DIV2 - función GROUND_PUT_SCREEN, usar el nuevo overload GROUND_PUT en su lugar
- [HW] función SCREEN_LOAD
- funciones:
- GROUND_PUT_BLOCK, GROUND_PUT_TILE, GROUND_XPUT (HW version), GROUND_XXPUT, MAP_XPUT (HW version only), MAP_XXPUT, SCREEN_DRAW_BLOCK, SCREEN_DRAW_GRAPHIC, SCREEN_DRAW_TILE
- overloads de la función MAP_BLOCK_COPY:
- INT MAP_BLOCK_COPY(INT graph_src, INT src_x, INT src_y, INT width, INT height, INT flags, INT alpha, INT fxmode)
- INT MAP_BLOCK_COPY(INT fpg_id, INT graph_dst, INT dst_x, INT dst_y, INT graph_src, INT src_x, INT src_y, INT width, INT height, INT flags, INT alpha, INT fxmode, INT fxcolor, INT fxintensity)
- INT MAP_BLOCK_COPY(INT fpg_id_dst, INT graph_dst, INT dst_x, INT dst_y, INT fpg_id_src, INT graph_src, INT src_x, INT src_y, INT width, INT height, INT flags, INT alpha, INT fxmode)
- INT MAP_BLOCK_COPY(INT fpg_id_dst, INT graph_dst, INT dst_x, INT dst_y, INT fpg_id_src, INT graph_src, INT src_x, INT src_y, INT width, INT height, INT flags, INT alpha, INT fxmode INT fxcolor, INT fxintensity)
- [HW] soporte 8/16bits dal motor con aceleración hardware para su no utilidad e dificuldad de implementación
- # Modified:
- constante FX_TINT -> FX_ADVANCED_TINT
- nomencladura y prototipo función MODE_GET_RENDER:
- INT MODE_GET_RENDER(INT rendering_type)
to
INT MODE_GET_RENDERER(INT renderer_type)
- INT MODE_GET_RENDER(INT rendering_type)
- nomencladura y prototipos función MODE_SET_RENDER:
- INT MODE_SET_RENDER(INT rendering2D_type)
INT MODE_SET_RENDER(INT rendering2D_type, INT rendering3D_type) -> (overload 1)
to
INT MODE_SET_RENDERER(INT renderer_driver_type)
INT MODE_SET_RENDERER(INT renderer_driver_type, INT renderer_simd_type) -> (overload 1)
- INT MODE_SET_RENDER(INT rendering2D_type)
- FLAGS constantes para una mejor nomencladura:
- flg_normal -> transform_flags_normal
- flg_hmirror -> transform_flags_normal_hmirror
- flg_vmirror -> transform_flags_normal_vmirror
- flg_hvmirror -> transform_flags_normal_hvmirror
- flg_ghost -> transform_flags_transparency
- flg_ghost_hmirror -> transform_flags_transparency_hmirror
- flg_ghost_vmirror -> transform_flags_transparency_vmirror
- flg_ghost_hvmirror -> transform_flags_transparency_hvmirror
- flg_nokey -> transform_flags_nokey
- flg_nokey_hmirror -> transform_flags_nokey_hmirror
- flg_nokey_vmirror -> transform_flags_nokey_vmirror
- flg_nokey_hvmirror -> transform_flags_nokey_hvmirror
- constantes de orden de transformaciones para mejor nomencladura:
- tfm_hsr -> transform_order_hsr
- tfm_hrs -> transform_order_hrs
- tfm_shr -> transform_order_shr
- tfm_srh -> transform_order_srh
- tfm_rhs -> transform_order_rhs
- tfm_rsh -> transform_order_rsh
- constantes FX para mejor nomencladura:
- fx_src -> fx_alphacomposite_src
- fx_dst -> fx_alphacomposite_dst
- fx_srcoverdst -> fx_alphacomposite_srcover
- fx_dstoversrc -> fx_alphacomposite_dstover
- fx_srcindst -> fx_alphacomposite_srcin
- fx_dstinsrc -> fx_alphacomposite_dstin
- fx_srcoutdst -> fx_alphacomposite_srcout
- fx_dstoutsrc -> fx_alphacomposite_dstout
- fx_srcatopdst -> fx_alphacomposite_srcatop
- fx_dstatopsrc -> fx_alphacomposite_dstatop
- fx_srccleardst -> fx_alphacomposite_clear
- fx_srcxordst -> fx_alphacomposite_xor
- fx_additiveblend -> fx_blend_add
- fx_subtractiveblend -> fx_blend_subtract
- fx_multiplyblend -> fx_blend_multiply
- fx_averageblend -> fx_blend_average
- fx_screenblend -> fx_blend_screen
- fx_rblend -> fx_blend_r
- fx_gblend -> fx_blend_g
- fx_bblend -> fx_blend_b
- fx_rgblend -> fx_blend_rg
- fx_rbblend -> fx_blend_rb
- fx_gbblend -> fx_blend_gb
- fx_rinvert -> fx_invert_r
- fx_ginvert -> fx_invert_g
- fx_binvert -> fx_invert_b
- fx_rginvert -> fx_invert_rg
- fx_rbinvert -> fx_invert_rb
- fx_gbinvert -> fx_invert_gb
- fx_rscale -> fx_scale_r
- fx_gscale -> fx_scale_g
- fx_bscale -> fx_scale_b
- fx_rgscale -> fx_scale_rg
- fx_rbscale -> fx_scale_rb
- fx_gbscale -> fx_scale_gb
- * Fixed:
- bug que probocaba el crash del programa en algunos casos usando las funciones COLLISION/OVERLAP con el tipo de PROCESS como parametro
- [Win] bug que impedia inicializar correctamente las modalidades 8/16bits fullscreen en SO Windows 7/8/10
Input
-------
- - Removed:
- [HW] función KEY, utilizar KEYDOWN en su lugar
NOTE: esta remoción rompe la compatibilidad con los programas DIV2
- [HW] función KEY, utilizar KEYDOWN en su lugar
Mode7
--------
- * Fixed:
- bug en el prototipo de la función MODE7_TO_SCREEN donde los ultimos 2 parametros eran variables en lugar de punteros
Scroll
-------
- # Modified:
- nomencladura y prototipo funciones:
- INT SCROLL_SET_DESTINATION(INT scroll, INT destination_file, INT destination_graph, INT region)
a
INT SCROLL_SET_TARGET(INT scroll, INT target_file, INT target_graph, INT region)
- INT SCROLL_SET_DESTINATION(INT scroll, INT destination_file, INT destination_graph, INT region)
- nomencladura y prototipo funciones:
- * Fixed:
- [SW] bug en renderizar correctamente uno scroll con alpha (scroll.alpha)
Socket
---------
- + Added:
- soporte de sockets para la implementación de programas de red a bajo nivel utilizando protocolos TCP/UDP
Text
------
- + Added:
- nuevas funciones de info y settings:
- INT TEXT_GET_CTYPE(INT text_id)
- INT TEXT_GET_CNUMBER(INT text_id)
- INT TEXT_GET_RESOLUTION(INT text_id)
- IVEC2 TEXT_GET_SCALE(INT text_id) (Software Version)
- VEC2 TEXT_GET_SCALE(INT text_id)
- IVEC2 TEXT_GET_SHEAR(INT text_id) (Software Version)
- VEC2 TEXT_GET_SHEAR(INT text_id)
- INT TEXT_GET_FILTER(INT text_id) (MODERN mode only at the moment)
- INT TEXT_SET_CTYPE(INT text_id, INT ctype)
- INT TEXT_SET_CNUMBER(INT text_id, INT cnumber)
- INT TEXT_SET_RESOLUTION(INT text_id, INT resolution)[/color]
- nueva función RENDER_TEXT:
- INT RENDER_TEXT(RENDER_ENTITY * entity)
- INT RENDER_TEXT(RENDER_ENTITY * entity, STRING text) -> (overload 1)
- nuevas funciones de info y settings:
- # Modified:
- nomencladura y prototipo funciones:
- INT TEXT_GET_DESTINATION(INT text_id, INT *destination_file, INT *destination_graph)
a
INT TEXT_GET_TARGET(INT text_id, INT *target_file, INT *target_graph) - INT TEXT_GET_ALIGN(INT text_id)
a
INT TEXT_GET_ANCHOR(INT text_id) - INT TEXT_GET_TFMORDER(INT text_id)
a
INT TEXT_GET_ORDER(INT text_id) - INT TEXT_GET_POS(INT text_id, INT *x, INT *y) (Software Version)
INT TEXT_GET_POS(INT text_id, FLOAT *x, FLOAT *y)
a
INT TEXT_GET_POSITION(INT text_id, INT *x, INT *y, INT *z) (Software Version)
INT TEXT_GET_POSITION(INT text_id, FLOAT *x, FLOAT *y, FLOAT *z) - INT TEXT_GET_ANGLE(INT text_id) (Software Version)
FLOAT TEXT_GET_ANGLE(INT text_id)
a
IVEC3 TEXT_GET_ROTATION(INT text_id) (Software Version)
VEC3 TEXT_GET_ROTATION(INT text_id) - INT TEXT_GET_SIZE(INT text_id, INT *size_x, INT *size_y) (Software Version)
INT TEXT_GET_SIZE(INT text_id, FLOAT *size_x, FLOAT *size_y)
a
INT TEXT_GET_SCALE(INT text_id, INT *scale_x, INT *scale_y) (Software Version)
INT TEXT_GET_SCALE(INT text_id, FLOAT *scale_x, FLOAT *scale_y) - INT TEXT_GET_FX(INT text_id, INT *fxmode, INT *fxcolor, INT *fxintensity)
a
INT TEXT_GET_FX(INT text_id, INT *fxtype, VOID *fxref) - INT TEXT_SET_DESTINATION(INT text_id, INT destination_file, INT destination_graph)
a
INT TEXT_SET_TARGET(INT text_id, INT target_file, INT target_graph) - INT TEXT_SET_TFMORDER(INT text_id, INT tfmorder)
a
INT TEXT_SET_ORDER(INT text_id, INT transform_order) - INT TEXT_SET_ANGLE(INT text_id, INT angle) (Software Version)
INT TEXT_SET_ANGLE(INT text_id, FLOAT angle)
a - INT TEXT_SET_ROTATION(INT text_id, INT rotation_x, INT rotation_x, INT rotation_z) (Software Version)
INT TEXT_SET_ROTATION(INT text_id, FLOAT rotation_x, FLOAT rotation_x, FLOAT rotation_z) - INT TEXT_SET_SIZE(INT text_id, INT size_x, INT *size_y) (Software Version)
INT TEXT_SET_SIZE(INT text_id, FLOAT size_x, FLOAT *size_y)
a
INT TEXT_SET_SCALE(INT text_id, INT scale_x, INT scale_y) (Software Version)
INT TEXT_SET_SCALE(INT text_id, FLOAT scale_x, FLOAT scale_y) - INT TEXT_SET_FX(INT text_id, INT fxmode, INT fxcolor, INT fxintensity)
a
INT TEXT_SET_FX(INT text_id, INT fxtype, VOID *fxref)
- INT TEXT_GET_DESTINATION(INT text_id, INT *destination_file, INT *destination_graph)
- nomencladura y prototipo funciones:
- - Removed:
- variables globales:
- text_tfmorder, text_flags, text_fxmode, text_fxcolor, text_fxintensity, text_alpha, text_destination_file, text_destination_graph, text_visible, text_angle, text_size_x, text_size_y, text_shear_x, text_shear_y
- [HW] variable global TEXT_Z, usar 'texts.transform.position.z' en su lugar
NOTE: esta remoción rompe la compatibilidad con los programas DIV2 - constantes de alineamiento textos:
- txt_align_topleft, txt_align_topcenter, txt_align_topright, txt_align_left, txt_align_center, txt_align_right, txt_align_bottomleft, txt_align_bottomcenter, txt_align_bottomright
- funciones:
- GROUND_PUT_TEXT, MAP_PUT_TEXT, SCREEN_DRAW_TEXT
- variables globales: