From 742b44d26dd86a8fb0054f5f1053ff073614e5be Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Wed, 5 Feb 2025 17:34:07 +0000 Subject: [PATCH 1/3] Updated GDK download links --- .../extensions/GDKExtension/post_package_step.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/GDKExtension_gml/extensions/GDKExtension/post_package_step.bat b/source/GDKExtension_gml/extensions/GDKExtension/post_package_step.bat index 352963b..7540dec 100644 --- a/source/GDKExtension_gml/extensions/GDKExtension/post_package_step.bat +++ b/source/GDKExtension_gml/extensions/GDKExtension/post_package_step.bat @@ -14,14 +14,14 @@ if not "%YYPLATFORM_option_windows_copy_exe_to_dest%" == "True" ( :: Check if GDK is installed if not exist "C:\Program Files (x86)\Microsoft GDK\Command Prompts\GamingDesktopVars.cmd" ( - call %Utils% logError "Goto https://github.com/microsoft/GDK/releases/tag/June_2023_Update_2 to install the GDK" + call %Utils% logError "Goto https://github.com/microsoft/GDK/releases/tag/June_2024_Update_3 to install the GDK" ) :: Check if GDK version is correct call %Utils% optionGetValue "gdkVersion" GDK_VERSION set GDK_PATH=%GameDK%%GDK_VERSION%\GRDK\ExtensionLibraries if not exist "%GDK_PATH%" ( - call %Utils% logError "Wrong GDK version, goto https://github.com/microsoft/GDK/releases/tag/June_2023_Update_2" + call %Utils% logError "Wrong GDK version, goto https://github.com/microsoft/GDK/releases/tag/June_2024_Update_3" ) :: Setup the GDK Environment (force version Update Jun 2023) From 11a0d1687d3dd098e7954f381a361b56398182cd Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Thu, 6 Feb 2025 11:05:43 +0000 Subject: [PATCH 2/3] [bug] cap the number of bytes saved by `gdk_save_buffer` --- .../extensions/GDKExtension/GDKExtension.dll | Bin 1162240 -> 1162240 bytes .../GDKExtension/LoadSave.cpp | 6 +++++- .../objects/objSaveGroup/Create_0.gml | 18 +++++++++--------- .../objects/objSaveSingle/Create_0.gml | 4 ++-- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.dll b/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.dll index 08f03ee64599a2939de89ae18d024a0d9901fef8..d243eff8d47cc4a5cf7f034ad42653d63ecdc3ab 100644 GIT binary patch delta 1362 zcmaJ>Z){Ul6u+;3ShucwZE&$9A{8ECc1#)|v94ulx4wFxdm|J4gNX!nW^{%jGh4*O z(2=3rc2+Tg|TLzHRV<#FzK$ zujicm&N=t|?tA^EXn!f12y&s*yISH051hHUscEseitU+-q5$^x%#yy$RBtlu1$~Rb zWqmVnEV`gSX7G~1f3}tlo&{#>W?QM=2JDS?6$8LW!c^aAtS{?c;7v{CqA$287gJD( z1IGp6df-%MPH!-H(Rd)0u@>2bsZ7bR_jGl{ShHy5Y8MfD{rw8m`0?9r{i4J@3gCZ-kU&Rh+`=^9Ay)OdM|+{?q3;gihr8)B~Hsq_Z^%U|KXu>WT<-@d=z{<_#S4yF_9wP6%qWbQOthYaefS@ zNM$l6(P*x@KUjhK<}m>YWWlecbI>)!ttr*2gh--D_=>xhjoS(-mxl?5yJG}+HekrL}A1foPpui%L&N1Ry2Ockoh>19>w zu=2DYD+fZLM)LUh`gK1V`?kVy=?wFS$L_0;{9=4(#cp;6w7bdT_J%6=2VuEY$7;YXjafsqx8oCbrlnSFRi9Ct7PCU&Ly! z@CqhBYZD+GR(gdxnG~cvNCjpd4l&Fd_V>epYi7_j!vRbHGr$6{0@eU305(7+pbB6I zRHt1tj)AWO@Bui;lCanIJWIBjN7%(q5Mmz(BUTOn9|C9))9%O47KUrqnPE}-_Ha$l zAy}>Y1wMn#)yNot=X*FQ1Niouw)6qx7pL*C*Nk0K26t A3jhEB delta 1307 zcmZuwZD<>19DgoJ&DkWq%a+(wVJYQ`TE_@+$T?mJ{Ya496TeD>&_}S+)O6iU^(cLn98k8gSD|mnF#ge{Ne9^|;^t zU+@3&yXQs=ZKH*@sV2rh-Q1ekWp`iXkBpQag2^8*Rf5gr6UF;7UUV4t(W1+cvEpMO z_qdN1HyJWv$nQNdL#}|Nc`KfHF%GiIt(91it()RSr;#5kR)OS?#7gGD5wWB~qXuxO z`PYkE3^`&Xs`>E}eL>9+8}`n=?p``1dT@1w5IS(&ir)Qk^78Y{oN3y}&RX7^XYQ#N zzo>4x8Ilj#F)90_lSgAE%g_^8ariDdkj~>P_Y2(qEG%2sj#&_@{}z+4^^TXwjjIgA zz>rAUHPxQ+B+kR@K?q6Rx38KvVkbAenkXL@e3BAc#>(y`@|8p!gGO-rZ74OKj@Ce5 zH}r*3IwA1y_P;>U(3|Vr#HXN;$gh^G9vu6V;ZD|^1GQDLY-^n7Cf@>G^w-|( z;}JLhG?a&$=1z5O!P_j6T5ms(B4n$8ubleHPj7R0hbXYo3K)QV0*kwQKC+?fl6*k$ z*Z+X!y+R;`VIwWBZq9BO&dlrj6z<+D_{cG#Iw;5au+r{LwdX z@sx>`MjMhyPQAA9_~sPoScW^mhGmNYR4=L8LQMixSrmN#$MVawl;!#lAF})pj@xN9 zQlPH}L^32)i}I^HRxl-4*8<501Y`L**nKcy5Q~WfeMpeSG6w+=!z}j7evxFtqN%K!cd}ckJ}ig^DUOBqj3~DqcIxn3G*jZr$VFQD!=2X*W5{= buffer_size || size < 1 || (offset + size) > buffer_size) + if ((offset + size) > buffer_size) { + size = buffer_size - offset; + } + + if (offset < 0 || offset >= buffer_size || size < 1) { DebugConsoleOutput("gdk_save_buffer() - error: offset and/or size argument out of range\n"); Result.val = -1; diff --git a/source/GDKExtension_gml/objects/objSaveGroup/Create_0.gml b/source/GDKExtension_gml/objects/objSaveGroup/Create_0.gml index ff5d09c..d9b6079 100644 --- a/source/GDKExtension_gml/objects/objSaveGroup/Create_0.gml +++ b/source/GDKExtension_gml/objects/objSaveGroup/Create_0.gml @@ -15,13 +15,13 @@ onClick = function() { /* Save a group of buffers. */ var b2 = buffer_create(1, buffer_grow, 1); - buffer_write(b2, buffer_text, "bar"); + buffer_write(b2, buffer_string, "bar"); var b3 = buffer_create(1, buffer_grow, 1); - buffer_write(b3, buffer_text, "baz"); + buffer_write(b3, buffer_string, "baz"); var b4 = buffer_create(1, buffer_grow, 1); - buffer_write(b4, buffer_text, "qux"); + buffer_write(b4, buffer_string, "qux"); switch (os_type) { case os_windows: @@ -41,17 +41,17 @@ onClick = function() { windowsSaveGroup = function(_b2, _b3, _b4) { gdk_save_group_begin("multi"); - gdk_save_buffer(_b2, "b2", 0, buffer_tell(_b2)); - gdk_save_buffer(_b3, "b3", 0, buffer_tell(_b3)); - gdk_save_buffer(_b4, "b4", 0, buffer_tell(_b4)); + gdk_save_buffer(_b2, "b2", 0, buffer_get_size(_b2)); + gdk_save_buffer(_b3, "b3", 0, buffer_get_size(_b3)); + gdk_save_buffer(_b4, "b4", 0, buffer_get_size(_b4)); requestId = gdk_save_group_end(); } xboxSaveGroup = function(_b2, _b3, _b4) { buffer_async_group_begin("multi"); - buffer_save_async(_b2, "b2", 0, buffer_tell(_b2)); - buffer_save_async(_b3, "b3", 0, buffer_tell(_b3)); - buffer_save_async(_b4, "b4", 0, buffer_tell(_b4)); + buffer_save_async(_b2, "b2", 0, buffer_get_size(_b2)); + buffer_save_async(_b3, "b3", 0, buffer_get_size(_b3)); + buffer_save_async(_b4, "b4", 0, buffer_get_size(_b4)); requestId = buffer_async_group_end(); } diff --git a/source/GDKExtension_gml/objects/objSaveSingle/Create_0.gml b/source/GDKExtension_gml/objects/objSaveSingle/Create_0.gml index 86d4a8d..60398bf 100644 --- a/source/GDKExtension_gml/objects/objSaveSingle/Create_0.gml +++ b/source/GDKExtension_gml/objects/objSaveSingle/Create_0.gml @@ -23,14 +23,14 @@ onClick = function() { // On Windows GDK the function used to save buffers asynchronously // is 'gdk_save_buffer' it will return a requestID that can be checked // during the Async Save/Load event. - requestId = gdk_save_buffer(b1, "single/b1", 0, buffer_tell(b1)); + requestId = gdk_save_buffer(b1, "single/b1", 0, buffer_get_size(b1)); break; case os_xboxseriesxs: // On Xbox Series X/S the function used to save buffers asynchronously // is 'buffer_save_async' it will return a requestID that can be checked // during the Async Save/Load event. - requestId = buffer_save_async(b1, "single/b1", 0, buffer_tell(b1)); + requestId = buffer_save_async(b1, "single/b1", 0, buffer_get_size(b1)); break; default: throw "[ERROR] objSaveSingle, unsupported platform"; From cabafa030189c3295088f61a75ee26de3e6e4d12 Mon Sep 17 00:00:00 2001 From: Francisco Dias Date: Thu, 6 Feb 2025 11:07:37 +0000 Subject: [PATCH 3/3] Updated version for release (2.0.1) --- metadata.json | 2 +- source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata.json b/metadata.json index a88fa80..059bc63 100644 --- a/metadata.json +++ b/metadata.json @@ -1 +1 @@ -{"gitHubUrl":"https://github.com/YoYoGames/GMEXT-GDK","projectFile":"source/GDKExtension_gml/GDKExtension.yyp","projectVersion":"LTS22","releaseTemplate":"templates/release_body.md","extensionMetaData":[{"extensionFile":"source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy","packageId":"com.yoyogames.windowsgdkext","packageName":"WindowsGDK Ext","packageVersion":"2.0.0","packageFormat":"LTS22","includeFolders":null,"includeResources":null,"excludeFolders":null,"excludeResources":null,"postRemovals":["**/.vs/","**/.vsc/","**/*.exp","**/*.ilk","**/*.lib","**/*.pdb","**/*.exp","**/*.exe","**/Debug/","**/Release/",".DS_Store","*.user","xcuserdata/","**/Gaming.Desktop.x64/"]}],"documentationFolder":null} \ No newline at end of file +{"gitHubUrl":"https://github.com/YoYoGames/GMEXT-GDK","projectFile":"source/GDKExtension_gml/GDKExtension.yyp","projectVersion":"LTS22","releaseTemplate":"templates/release_body.md","extensionMetaData":[{"extensionFile":"source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy","packageId":"com.yoyogames.windowsgdkext","packageName":"WindowsGDK Ext","packageVersion":"2.0.1","packageFormat":"LTS22","includeFolders":null,"includeResources":null,"excludeFolders":null,"excludeResources":null,"postRemovals":["**/.vs/","**/.vsc/","**/*.exp","**/*.ilk","**/*.lib","**/*.pdb","**/*.exp","**/*.exe","**/Debug/","**/Release/",".DS_Store","*.user","xcuserdata/","**/Gaming.Desktop.x64/"]}],"documentationFolder":null} \ No newline at end of file diff --git a/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy b/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy index a260335..9fb2c85 100644 --- a/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy +++ b/source/GDKExtension_gml/extensions/GDKExtension/GDKExtension.yy @@ -14,7 +14,7 @@ "copyToTargets":64, "description":"", "exportToGame":true, - "extensionVersion":"2.0.0", + "extensionVersion":"2.0.1", "files":[ {"$GMExtensionFile":"","%Name":"","constants":[],"copyToTargets":64,"filename":"GDKExtension.dll","final":"","functions":[ {"$GMExtensionFunction":"","%Name":"gdk_init","argCount":0,"args":[1,],"documentation":"","externalName":"","help":"gdk_init(scid)","hidden":false,"kind":1,"name":"gdk_init","resourceType":"GMExtensionFunction","resourceVersion":"2.0","returnType":1,},