/docs/interop.md
This commit is contained in:
parent
b390e9db23
commit
a527036436
13
docs/interop.md
Normal file
13
docs/interop.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# interoperability
|
||||||
|
api needs to facilitate easy interoperability with other languages and tools,
|
||||||
|
for that certain considerations are taken:
|
||||||
|
|
||||||
|
* number of public api calls is kept at the minimum
|
||||||
|
* procedure signatures can only use basic types, no aggregates, with exception of Vec/Matrix types and alike,
|
||||||
|
with no expectation on new additions (see [/include/twn_types.h](/include/twn_types.h))
|
||||||
|
* optionals can be expressed via pointer passage of value primitives, with NULL expressive default, but they should be immutable
|
||||||
|
* opaque types are passed around as pointers
|
||||||
|
* when mutation on input is done, - it shouldn't be achieved from a mutable pointer, but return value
|
||||||
|
* module prefix is used for namespacing, actual symbols come after the prefix (`module_symbol`)
|
||||||
|
* symbols should not contain letters at the start nor after the namespace prefix
|
||||||
|
* [/include/twn_api.json](/include/twn_api.json) file is hand-kept with a schema to aid automatic binding generation and other tooling
|
@ -1,10 +0,0 @@
|
|||||||
api needs to facilitate easy interoperability with other languages and tools,
|
|
||||||
for that certain steps are taken:
|
|
||||||
|
|
||||||
* number of public api calls is kept at the minimum
|
|
||||||
* procedure signatures can only use basic types, no aggregates, with exception of Vec/Matrix types and alike,
|
|
||||||
with no expectation on new additions (see /include/twn_types.h)
|
|
||||||
* optionals can be expressed via pointer passage of value primitives, with NULL expressive default, but they should be immutable
|
|
||||||
* /include/twn_game_api.json file is hand-kept with a schema to aid automatic generation and other tooling
|
|
||||||
|
|
||||||
one of main inspirations for that is opengl model
|
|
Loading…
Reference in New Issue
Block a user