I am working on a DLL (and .SO) capable version of $. I will be testing its mettle on the Viewer2 demo, which contains Opengl, dynamics, and a GUI.
Giving some thought to the most useful and efficient interfaces, here is a sketch of how it will work:
' 3D host example
===================
| Load |
| Initialise |
| Link |
|=================|
| CYCLE: |__
|-----------------| \
| Frame Generator | |
|-----------------| |
| User interface | ^
|-----------------| |
| Dynamics | |
|-----------------| |
| Script Engine | |
|-----------------| |
| REPEAT |__/
|=================|
| Terminate |
| Unload |
===================
INTERACTIONS WITH SCRIPT:
1 By passing values:
Host copies values into
Script Engine's Variables
2 By Calling script Functions
3 By Variable links:
Script accesses Host variables
using pointering and
type conversion if needed.
====================
| Script Variables |
====================
| | | INDIRECTION
| | | LINKS |
| \ \____ /
| \ \ |
====================
| Host Variables |
====================
The $ script engine is also capable of running asynchronously in a thread, but, that is left to the host to set up.and manage.
As a DLL it is intended to be language-independent, with interfaces for Asciiz and length specified strings.