This version brings a long list of smaller enhancements, including:
- User data in asIObjectType and asIScriptModule, that can be used for holding function pointer caches
- The asIScriptContext::Prepare method can now take the asIScriptFunction pointer rather than the function id
- Added functions to make it slightly easier to get the asIScriptFunction pointers
- Application can now define the modules' access to individual registered entities through bitmasks, rather than on the configuration group level
- Added methods to the asIObjectType interface to make it easier to determine relationship between types
- AddRefScriptObject and ReleaseScriptObject can now take a pointer to the asIObjectType instead of the type id
- Made improvements to the interface to aid JIT compilation
- Implemented shared script classes, i.e. classes can now be declared as 'shared' which will allow multiple modules to share the same implementation thus simplifying how objects can be passed between modules
Most of the changes are just incremental improvements, the real exciting new feature is the shared script classes.
Previously it was a bit complicated to have two or more modules communicate with each other, due to the inability to share types. The modules could only use the types that had already been registered by the application when passing data back and forth. Now, with the shared classes, the modules can implement common classes with data and methods to simplify this. Shared classes is just the beginning, I plan to expand this feature to global functions and properties too.
Regards,
Andreas