pureikyubu/SRC/Backends
2020-07-30 01:35:36 +03:00
..
AudioDirectSound Fixed headers 2020-07-23 20:47:42 +03:00
AudioNull Debug message queue 2020-07-23 19:35:26 +03:00
DolwinVideo Fixed headers 2020-07-23 20:47:42 +03:00
GraphicsNull Debug message queue 2020-07-23 19:35:26 +03:00
PadNull Debug message queue 2020-07-23 19:35:26 +03:00
PadSimpleWin32 Closer to original debug console 2020-07-29 13:49:57 +03:00
VideoGdi Refactoring 2020-07-23 23:58:38 +03:00
VideoNull Debug message queue 2020-07-23 19:35:26 +03:00
Readme.md RenderTarget notes 2020-07-30 01:35:36 +03:00

Backends

This section contains platform-specific code.

At the moment there are 4 types of backends:

  • Audio mixer (e.g. AudioDirectSound)
  • Emulation of the GameCube GPU pipeline (e.g. DolwinVideo)
  • Output of raw video buffer (XFB) for Homebrew (e.g. VideoGdi). This is not a very necessary backend, as the Homebrew scene for the GameCube is not very active right now.
  • Emulation of GameCube controllers (e.g. PadSimpleWin32)

Null Backends

There are also dummy backends for maximum code portability.

They are used in DolwinPlayground so that developers can test memory leaks and bugs on key emulator components without being distracted by possible leaks and bugs in their UI / Backend implementations.

RenderTarget

Backends use the RenderTarget entity, which is passed from the UI with the GetRenderTarget command.

This is a kind of descriptor that is created by the UI and is required to output sound/graphics. For example, for Windows, this is the HWND of the main application window. For other platforms, RenderTarget may have a different meaning.

In general, RenderTarget is of type void * (a pointer to some kind of context or handle).

Where's UI?

The user interface is placed above the emulator and its backends.

See the \SRC\UI folder for out-of-the-box UI implementation examples.