Progress. Screenshot is SillyBalls using "Slowhand" with its mac plugin in 16 color mode. m68k code running in Basilisk.
The standard Quickdraw is overridden, with all new funcs prefxied with an SH prefix. SillyBalls calls those for drawing, but every other Toolbox call is passed through.
This means when SillyBalls calls, for example. RGBForeColor, it really goes to SHRGBForeColor, which calls the plugin's set_foregroundc, which, because the plugin is a "mac" one, calls the real Quickdraw's RGBForeColor. Inefficient, but proof of concept achieved.
The text isn't showing due to differences in the way the graphics state is handled in my plugin architecture vs Quickdraw. Mine expects an explicit state passed to the functions, while Quickdraw has an implied one.
So MoveTo acts on the current GrafPort without having to be specified. Slowhand maintains this state, but doesn't expose it to the plugins yet.
It calls the standard Toolbox to open the window and then Button to wait for a mouse click.
The next step would be to write the framebuffer plugin that wrote to a raw framebuffer.
I also need to fix the plugin architecture so it can get to the implied state of calls like MoveTo, etc.
The standard Quickdraw is overridden, with all new funcs prefxied with an SH prefix. SillyBalls calls those for drawing, but every other Toolbox call is passed through.
This means when SillyBalls calls, for example. RGBForeColor, it really goes to SHRGBForeColor, which calls the plugin's set_foregroundc, which, because the plugin is a "mac" one, calls the real Quickdraw's RGBForeColor. Inefficient, but proof of concept achieved.
The text isn't showing due to differences in the way the graphics state is handled in my plugin architecture vs Quickdraw. Mine expects an explicit state passed to the functions, while Quickdraw has an implied one.
So MoveTo acts on the current GrafPort without having to be specified. Slowhand maintains this state, but doesn't expose it to the plugins yet.
It calls the standard Toolbox to open the window and then Button to wait for a mouse click.
The next step would be to write the framebuffer plugin that wrote to a raw framebuffer.
I also need to fix the plugin architecture so it can get to the implied state of calls like MoveTo, etc.


