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...
NOTE: For the licences of the BETA, see Here
09/05/2016 BETA 7.5 UPDATE 3
-----------------------------------------
Features:
Language & Core
---------------------
- * Fixed:
- bugs which made it possible to compile, in some cases, a grammatically wrong program
Graphics
-----------
- * Fixed:
- [Legacy] bug in MAP_GET_REALCPOINT function in calculating correctly the position of the control point according the angle set by "angle" (introduced in beta 7.5)
- bug in GROUND_PUT function in rendering the pixels transparent of a graphic (introduced in the beta 7.5)
- bug in RENDER_GRAPHIC function which caused runtime error if it used the value -1 in "region
Pathfind
-----------
- * Fixed:
- bug in correctly calculate the path without diagonals, if you specified in PATH_FIND function with options "nodiag"
Text
------
- * Fixed:
- bug in RENDER_TEXT function which caused runtime error if you used the value -1 as a "region"
- bug in RENDER_TEXT function in rendering correctly a glyph/text in a "target" different the screen
02/04/2016 BETA 7.5 UPDATE 2
-----------------------------------------
Features:
Graphics
-----------
- * Added:
- [Linux] hardware acceleration support for graphics rendering based on OpenGL 2.0+ and OpenGL ES 2.0+
- * Fixed:
- bug in FPG_LOAD, FPG_LOAD_MAP and MAP_LOAD functions in properly charge the CPOINT 0 of a graphic, if defined, in some cases (introduced in the beta 7.5)
- [HW] bug in properly display a resolution filter 2x or virtual (introduced in Beta 7.5 update 1)
- bug in correctly render a scroll type graph using the function RENDER_GRAPHIC
- bug in properly render a graphic process type screen belonging to files> = 1, in a "target" MAP
Text
------
- * Fixed:
- bug in correctly render text in the target specified by the GLOBAL variable "texts" in some cases
- bug in correctly render a scroll type character/text using the function RENDER_TEXT
- bug of memory leak in the function RENDER_TEXT
14/03/2016 BETA 7.5 UPDATE 1
-----------------------------------------
Features:
Language & Core
---------------------
- * Fixed:
- [Win] issue that prevented the execution of programs in Windows XP, introduced in the beta 7.5
- bug in properly generate the signature of a prototype METHOD of declaring typedefs parameters, stated in DECLARE section of the program
- bug to assign correctly a text string at constant or variables declared in PRG file used with INCLUDE, introduced in the beta 7.5
- some bugs on control and use of pointers
- bug in compiling correctly in some cases, the code of blocks PROCESS/FUNCTION/METHOD defined in INCLUDE files, introduced in the beta 7.5
- bug that caused the program to crash using a function call as initializer of a default argument of a PROCESS/FUNCTION/METHOD block, now is successfully built a compilation error
- ! Information:
- improved by compiling the PRG output, now is displays the full path used in the INCLUDES
Graphics
-----------
- * Fixed:
- bug that prevented proper operation of the function MAP_BLOCK_COPY, introduced in the beta 7.5
- [HW] bug in the FADING system that prevented proper operation in certain cases
- [HW] bug in rendering the screen correctly in fullscreen mode emulated
- [HW] bug in order to properly apply the affine transformations indicated in ORDER
- [SW] bug in RENDER_GRAPHIC function applying the affine transformation SHEAR
Mode7
--------
- * Fixed:
- [HW] bug in correctly render a texture used simultaneously as world and exterior
14/02/2016 BETA 7.5
----------------------------
Features:
Language & Core
---------------------
- + Added:
- new compiler options:
- _gmxsystem_audio, _gmxsystem_graphics
- gmxaudio_legacy, gmxaudio_modern, gmxgraphics_legacy, gmxgraphics_modern
NOTE: The gmxaudio_modern setting and/or gmxgraphics_modern breaks compatibility with DIV2 programs
- new compiler options:
- * Fixed:
- bug that allowed re-declare a variable with the same name after the declaration of an array
- bug in properly the type of casting a ince using a qualifier (eg: (float)id_proc.var)
- bug that prevented properly pass any type of argument as a parameter method called in remote mode (eg: proc_id.method_name(...))
- bug that prevented properly initialize structures with type fields PROCESS
- bug compilation-failure to access an area struct of "struct_var_name[index].field" form, if the struct was declared of a single register
- bug in the operator ternary (?:) in using DOUBLE data correctly in expressions, sometimes provoking the program crash
DMBS
-------
- + Added:
- creation and support of data base management based in SQLite
Main
------
- * Fixed:
- [Linux] bug to correctly display the kind of SO returned by the function GET_OS
Graphics
-----------
- + Added:
- hardware acceleration support for graphics rendering based on OpenGL 2.0+ and OpenGL ES 2.0+
- new built-in types TYPE for graphics rendering:
- render_surface, render_asset, render_visibility, render_transform_set, render_transform_block, render_transform, render_fx
- new type LOCAL built-in TYPE RENDER_ENTITY in place of the old local variables (X, Y, Z, etc ...), it continues to however support direct access to the members for backwards compatibility of programs
- new member variables for processes and functions:
- ANCHOR, BLOCK, FNT, TILED
- new constant FX_ADVANCED, to use advanced effects (TINT, etc...)
- new constants for MODE_GET_RENDERER:
- renderer_driver, renderer_simd
- new constants for 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] new features of loading assets:
- INT GRAPHICLOADER_GET_BEHAVIOUR()
- INT GRAPHICLOADER_SET_BEHAVIOUR(INT behavior)
- graphicloading_for_hardwareusage, graphicloading_for_softwareusage
- [HW] new FX and constants:
- 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] new FILTER member variables for processes and functions to activate/deactivate the filter nearest/bilinear
- new constants or graphical alignment transformations:
- 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
- new constants for source/target rendering:
- render_framebuffer_ground, render_framebuffer_screen, render_target_ground, render_target_screen
- new overload of GROUND_PUT function:
- INT GROUND_PUT(INT file, INT graph)
- new RENDER_GRAPHIC function:
- INT RENDER_GRAPHIC(RENDER_ENTITY *entity)
- - Removed:
- [HW] 8/16 bits support the engine with hardware acceleration for their non-utility and difficulty of implementation
NOTE: This removal breaks compatibility with DIV2 programs - effects and constants:
- fx_andblend, fx_orblend, fx_xorblend
- [HW] constants:
- mWIDTHxHEIGHT, mode8_bits, mode_16bits, mode_32bits
NOTE: this removal breaks compatibility with DIV2 programs - constants programs for MODE_GET_RENDER:
- rendering2D_mode, rendering3D_mode
- rendering2D_autodetect, rendering2D_software, rendering2D_mmx, rendering3D_autodetect, rendering3D_software, rendering3D_sse
- LOCAL ALPHA, FXMODE, FXCOLOR and FXINTENSITY variables, use the new TYPE built-in FX and FX_ADVANCEDTYPE_TINT instead
- [HW] LOCAL ANGLE and SIZE variables, use the new set SCALE and ROTATION
- [HW] BPP parameter for MODE_EXISTS and MODE_SET functions for its non-utility in the engine with hardware acceleration
- [HW] overload MODE_SET function of one parameter
NOTE: this removal breaks compatibility with DIV2 programs - [HW] functions:
- COLLISION_GET_ALPHATHRESHOLD, COLLISION_SET_ALPHATHRESHOLD, GET_PIXEL, GROUND_GET_PIXEL, GROUND_PUT_PIXEL, SCREEN_GET_PIXEL, PUT_PIXEL
NOTE: this removal breaks compatibility with DIV2 programs - GROUND_PUT_SCREEN function, use the new overload GROUND_PUT instead
- [HW] function SCREEN_LOAD
- functions:
- 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 of MAP_BLOCK_COPY functions:
- 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] 8/16 bits support the engine with hardware acceleration for their non-utility and difficulty of implementation
- # Modified:
- constant FX_TINT -> FX_ADVANCED_TINT
- nomenclature and prototype MODE_GET_RENDER function:
- INT MODE_GET_RENDER(INT rendering_type)
to
INT MODE_GET_RENDERER(INT renderer_type)[/b]
- INT MODE_GET_RENDER(INT rendering_type)
- nomenclature and prototipos function 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 constants for better nomenclature:
- 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
- constant order of transformations for a better nomenclature:
- 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
- FX constants for better nomenclature:
- 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 that caused the program to crash in some cases using COLLISION/OVERLAP functions with type PROCESS as parameter
- [Win] bug that prevented properly initialize mode 8/16bits fullscreen in Windows OS 7/8/10
Input
-------
- - Removed:
- [HW] KEY function, use KEYDOWN instead
NOTE: this removal breaks compatibility with DIV2 programs
- [HW] KEY function, use KEYDOWN instead
Mode7
--------
- * Fixed:
- bug in the prototype of MODE7_TO_SCREEN function where the last two parameters were variables instead of pointers
Scroll
-------
- # Modified:
- nomenclature and prototype functions:
- INT SCROLL_SET_DESTINATION(INT scroll, INT destination_file, INT destination_graph, INT region)
to
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)
- nomenclature and prototype functions:
Socket
---------
- + Added:
- support of sockets for the implementation of network programs at a low level by using TCP/UDP protocols
Text
------
- + Added:
- new functions of information and 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]
- new RENDER_TEXT function:
- INT RENDER_TEXT(RENDER_ENTITY * entity)
- INT RENDER_TEXT(RENDER_ENTITY * entity, STRING text) -> (overload 1)
To render a text or character with all effects available in engine and in any coordinate system
- new functions of information and settings:
- # Modified:
- nomenclature and prototype functions:
- INT TEXT_GET_DESTINATION(INT text_id, INT *destination_file, INT *destination_graph)
to
INT TEXT_GET_TARGET(INT text_id, INT *target_file, INT *target_graph) - INT TEXT_GET_ALIGN(INT text_id)
to
INT TEXT_GET_ANCHOR(INT text_id) - INT TEXT_GET_TFMORDER(INT text_id)
to - 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)
to
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)
to
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)
to - 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)
to
INT TEXT_GET_FX(INT text_id, INT *fxtype, VOID *fxref) - INT TEXT_SET_DESTINATION(INT text_id, INT destination_file, INT destination_graph)
to
INT TEXT_SET_TARGET(INT text_id, INT target_file, INT target_graph) - INT TEXT_SET_TFMORDER(INT text_id, INT tfmorder)
to
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)
to - 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)
to - 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)
to
INT TEXT_SET_FX(INT text_id, INT fxtype, VOID *fxref)
- INT TEXT_GET_DESTINATION(INT text_id, INT *destination_file, INT *destination_graph)
- nomenclature and prototype functions:
- - Removed:
- global variables:
- 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] global variable TEXT_Z, use 'texts.transform.position.z' instead
NOTE: this removal breaks compatibility with DIV2 programs - text alignment constants:
- 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
- Functions:
- GROUND_PUT_TEXT, MAP_PUT_TEXT, SCREEN_DRAW_TEXT
Use the new RENDER_TEXT function instead
- GROUND_PUT_TEXT, MAP_PUT_TEXT, SCREEN_DRAW_TEXT
- global variables: