Update 'README.md'

This commit is contained in:
Reece Wilson 2021-10-05 21:03:13 +00:00
parent 87c9a063ea
commit 1d86f5c341

View File

@ -1,7 +1,10 @@
## Aurora Interfaces
This library implements the macros required to define Aurora style interfaces. Defines two classes. Implementable by SWIG, CppSharp, and classical OOP override event interface; and implementable by std::function for modern C++ and runtime language bindings respectively. The former is simply defined as a structure containing virtual methods as laid out by AUI_METHODS. Latterly, the interface is extended and mplemented by an array virtual override method defintions. This library implements the macros required to define Aurora style interfaces. Defines two classes. Implementable by SWIG, CppSharp, and classical OOP override event interface; and implementable by std::function for modern C++ and runtime language bindings respectively. The former is simply defined as a structure containing virtual methods as laid out by AUI_METHODS. Latterly, the interface is extended and mplemented by an array virtual override method defintions.
Example usage:
In your common header:
## Example usage:
#### In your common header:
``` ```
#if defined(MY_LIB_GEN_BINDINGS) #if defined(MY_LIB_GEN_BINDINGS)
#define LIB_INTERFACE(name, list) AUI_INTERFACE_IMPL(name, list) #define LIB_INTERFACE(name, list) AUI_INTERFACE_IMPL(name, list)
@ -10,7 +13,7 @@ In your common header:
#endif #endif
``` ```
In your public API: #### In your public API:
``` ```
LIB_INTERFACE(IInputMouseSubscriber, LIB_INTERFACE(IInputMouseSubscriber,
AUI_METHODS AUI_METHODS
@ -22,11 +25,12 @@ In your public API:
); );
``` ```
In a dedicated translation unit: #### In a dedicated translation unit:
``` ```
#define MY_LIB_GEN_BINDINGS #define MY_LIB_GEN_BINDINGS
#include <...> #include <...>
``` ```
Not recommended for small projects and/or people with a shred of sanity left ##### Not recommended for small projects and/or people with a shred of sanity left
##### Possibly useful for API developers