S
syscall
Guest
Hell',
I've finally reached 5 posts, yay! (I can now post links.)
(Keep in mind I am still a noob in GameMaker tech.)
But, I have read a couple of docs pages around external functions and how they work via "extensions".
I would like to point out several minor inconsistencies which I have come across yesterday, in hope that somebody will correct them:
On external_define and external_call pages:
They only ever mention Windows (.dll) and Mac (.dylib), well what about Linux (.so) file? Is Linux (Ubuntu) not supported?!
Also, on both pages, they have mixed the maximum number of args allowed:
Because, an external function is limited to a total of 16 arguments (not 11).
On related pages, add the missing information about return type: when function returns no value (void), then a type you specify is ignored (it does not matter). Also, maybe document what value would external_call return in that case?
I hope somebody will find 5 minutes to correct those inconsistencies. I'd correct them myself, but it seems like being a member of GMC doesn't let me do it.
Peace.
Best regards!
I've finally reached 5 posts, yay! (I can now post links.)
(Keep in mind I am still a noob in GameMaker tech.)
But, I have read a couple of docs pages around external functions and how they work via "extensions".
I would like to point out several minor inconsistencies which I have come across yesterday, in hope that somebody will correct them:
- Page: external_define
"4 or more". OK. So, argCount >= 4: all arguments must be of type double.Description said:Please note that for functions with 4 or more arguments, all of them must be of type ty_real.
- Page: Extensions
"more than 4". OK. So, argCount > 4: all arguments must be of the same type. Now all could be strings?!Creating Extensions said:NOTE: If you are creating a Windows dll file and it has more than four arguments, all arguments must be of the same type.
- Page (old GMS version): Creating An Extension For Mac, Windows And JS Targets (GMS v1.3+)
It states the same as the first bullet-point above ("4 or more"). It is inconsistent with the bullet-point "more than 4".Creating Functions said:This is limited to a maximum of sixteen arguments, and note that for functions with 4 or more arguments, all of them must be of type double.
It would be worth mentioning the following (where it is missing): if the function returns no value (void), then a return type you specify is ignored (it does not matter). As it is written on the page below:Creating Functions said:Return Type - What the function returns. This can be either a string (text) or a double (real number).
- Page: Extensions
A couple of more things:Creating Extensions said:you can define the return type, which can be a double (real number floating point value) or a string - if there is nothing returned by the external function then this does not matter
On external_define and external_call pages:
They only ever mention Windows (.dll) and Mac (.dylib), well what about Linux (.so) file? Is Linux (Ubuntu) not supported?!
Also, on both pages, they have mixed the maximum number of args allowed:
Syntax said:argtype[10]
Argument column said:argtype[0 ... 10]
Argument description column said:(0 - 10)
I think it should be corrected like so: just replace occurrences of number 10 with 15.Argument column said:args[0...10]
Because, an external function is limited to a total of 16 arguments (not 11).
On related pages, add the missing information about return type: when function returns no value (void), then a type you specify is ignored (it does not matter). Also, maybe document what value would external_call return in that case?
I hope somebody will find 5 minutes to correct those inconsistencies. I'd correct them myself, but it seems like being a member of GMC doesn't let me do it.
Peace.
Best regards!