railroader-setons-special-s.../native/external/IUnityGraphicsD3D11.h
seton a1fcf01125 Initial commit: S3 - Seton's Special Sauce v0.2.0
Consolidates two standalone Railroader mods into one UMM "everything mod"
with an optional-module framework. Modules are disabled by default and
toggled per-module from the S3 settings page.

Core framework:
- IModule contract plus ModuleRegistry, with each module owning a Harmony
  instance scoped by its id so only enabled modules patch the game
- Per-module flat JSON settings (SettingsStore). On this Mono runtime
  JsonUtility silently drops nested custom-class fields, so settings stay flat
- Foldout-per-module settings panel plus a detector that offers to disable the
  old standalone mods if they are still installed

Modules (moved over to parity, verified in-game):
- Physics Optimizer (was RailroaderPhysicsOverhaul): LOD fast-path and
  auto-freeze, profiler overlay, debug car tinting, /rpf console commands
- Map Popout (was RRPopout): native map detach window. Pure-UMM install that
  drops the winhttp proxy and LoadLibrary's RRPopout.dll from the mod folder.
  Native Win32 + D3D11 + Dear ImGui engine included. Fixes a latent break where
  the now-private MapBuilder.UpdateForZoom() is reached via Traverse.

Build: dotnet for the managed assembly (netstandard2.1) and CMake for the
native DLL. build-local.ps1 installs into the game, build-release.ps1 packages
the UMM drag-install zip.
2026-06-17 14:17:41 -04:00

15 lines
772 B
C

#pragma once
#include "IUnityInterface.h"
#include <d3d11.h>
struct IUnityGraphicsD3D11 : IUnityInterface {
static const UnityInterfaceGUID GUID;
virtual ID3D11Device* UNITY_INTERFACE_API GetDevice() = 0;
virtual ID3D11DeviceContext* UNITY_INTERFACE_API GetImmediateContext() = 0;
virtual HRESULT UNITY_INTERFACE_API CreateBuffer(const D3D11_BUFFER_DESC* desc, const D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Buffer** ppBuffer) = 0;
virtual HRESULT UNITY_INTERFACE_API CreateTexture2D(const D3D11_TEXTURE2D_DESC* desc, const D3D11_SUBRESOURCE_DATA* pInitialData, ID3D11Texture2D** ppTexture2D) = 0;
};
// {AAB04B50-A9A8-4DAA-89F7-B3ADB602D28E}
const UnityInterfaceGUID IUnityGraphicsD3D11::GUID = { 0xAAB04B50A9A84DAAULL, 0x89F7B3ADB602D28EULL };