gitadora: show LEFT / RIGHT screens on sub screen in landscape mode (#900)

## Link to GitHub Issue or related Pull Request, if one exists
Continues #899 

## Description of change
#899 added the ability to display the gitadora subscreen in lanscape
mode with black bars on the side. With the new option the black bars can
instead display the LEFT / RIGHT screens, completing the two-monitor
full screen use case for arena model.

## Testing
This commit is contained in:
bicarus
2026-08-30 22:35:12 -07:00
committed by GitHub
parent 357e6c86f1
commit 0169fe1e31
11 changed files with 178 additions and 32 deletions
@@ -13,6 +13,8 @@ inline constexpr UINT GFDM_SMALL_HEIGHT = games::gitadora::ARENA_SUBSCREEN_HEIGH
inline constexpr UINT GFDM_LOGICAL_HEAD_COUNT = 4;
inline constexpr UINT GFDM_NATIVE_SMALL_SWAPCHAIN = 1;
struct WrappedIDirect3DDevice9;
// Owns the portrait surface the game draws into while the SMALL head is scanned out at a
// different resolution, and composes it onto the real head. Allocates nothing and reports
// nothing until resolve() finds a head that is not the panel size.
@@ -27,7 +29,7 @@ struct GfdmSmallHead {
bool scaled() const { return active; }
HRESULT backbuffer(IDirect3DDevice9 *device, IDirect3DSurface9 **out);
HRESULT compose(IDirect3DDevice9 *device);
HRESULT compose(WrappedIDirect3DDevice9 *device);
void release();
// the game only ever sees the portrait size it asked for