pureikyubu/SRC/Backends
2020-08-27 23:12:08 +03:00
..
AudioDirectSound Second wave TCHAR removed 2020-08-06 23:28:09 +03:00
AudioNull Changed libraries to SHARED 2020-08-09 22:49:43 +03:00
DolwinVideo Memcards fix 2020-08-27 23:12:08 +03:00
GraphicsNull Changed libraries to SHARED 2020-08-09 22:49:43 +03:00
PadNull Changed libraries to SHARED 2020-08-09 22:49:43 +03:00
PadSimpleWin32 Second wave TCHAR removed 2020-08-06 23:28:09 +03:00
VideoGdi Second wave TCHAR removed 2020-08-06 23:28:09 +03:00
VideoNull Changed libraries to SHARED 2020-08-09 22:49:43 +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.