Skip to content

Conversation

@vbousquet
Copy link
Contributor

This PR is a follow up from #303 which purposes were to:

  • allow VPX to perform correct DMD rendering (needs unprocessed DMD frames),
  • allow VPX's plugin to perform coloring (needs unprocessed DMD frames),
  • allow VPX to include a backglass renderer with support for fading lamps & flashers (could be done with existing interface but at the price of lots of data exchange and likely some API bloat),
  • allow VPX to support modulated segments,
  • allow VPX to add support for video output (MrGame machines, ...).

Since this draft PR was created, a plugin architecture was prototyped on the VPX side. This plugin architecture serves similar purpose but with a broader application range. It is organized around a simple message bus, allowing better collaboration between components. This PR replace the stateblock approach by the message bus approach used by the plugin system. Thanks to the plugin design, this PR serves the original aims with the following benefits:

  • simpler and cleaner code,
  • no more duplication between stateblock and plugin messages
  • more future proof, as it allows sharing new data by adding new messages if they can't be fitted in the initial API,
  • a bit better data definitions, also allowing easier UX integration.

This is a draft PR since the plugin design is not stable yet and will likely evolve some more, as it developped by designing the API then validating against 2 or 3 real world use cases. This validation phase is not yet finished.

@vbousquet vbousquet force-pushed the plugin_state branch 9 times, most recently from 263d672 to 687a9aa Compare May 10, 2025 07:40
@vbousquet vbousquet force-pushed the plugin_state branch 19 times, most recently from 39b8fba to a302127 Compare May 25, 2025 08:31
@vbousquet vbousquet force-pushed the plugin_state branch 2 times, most recently from 7aafbf3 to 73fdf34 Compare July 5, 2025 07:18
@vbousquet vbousquet force-pushed the plugin_state branch 3 times, most recently from 46cb420 to 524bae7 Compare July 14, 2025 19:42
@vbousquet vbousquet force-pushed the plugin_state branch 2 times, most recently from 1dc9e23 to cacb58a Compare August 17, 2025 21:40
@vbousquet vbousquet force-pushed the plugin_state branch 7 times, most recently from 2d58727 to 80c5761 Compare October 27, 2025 17:49
@vbousquet vbousquet force-pushed the plugin_state branch 4 times, most recently from f90dded to f5091ec Compare November 17, 2025 21:52
@vbousquet vbousquet force-pushed the plugin_state branch 4 times, most recently from 5a3794f to 9205645 Compare November 22, 2025 21:17
@vbousquet vbousquet force-pushed the plugin_state branch 5 times, most recently from 7368ae3 to 167601d Compare December 7, 2025 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant