mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-02 06:40:42 -07:00
7301cdaa6c
## Link to GitHub Issue, if one exists
n/a
## Description of change
Functionally, no change.
Move ImGui library files around so that they mirror how they are
structured in imgui releases. This will make it easier to migrate to a
future version of ImGui.
Add a handful of static asserts to check that we have the necessary
features enabled / disabled in imgui header.
## Compiling
👍
## Testing
Tested 32-bit overlay, 64-bit overlay, TDJ, and UFC overlays, and
spicecfg.
Interesting finds during ImGui testing (not part of this PR, but for
future reference when upgrading imgui version):
* Updating dx9 backend to the newest causes TDJ to stop rendering the
overlay completely (fine in UFC or any other game)
* Omitting `IMGUI_USE_BGRA_PACKED_COLOR` causes spicecfg software
renderer to use the wrong color (RGB format parsing error probably)
* At some point - v1.90? the `About` and `Licenses` buttons in spicecfg
stop responding after an upgrade, maybe our improper usage of MenuItem?
* Using the docking branch of ImGui is not required but we should just
stick to it for multi-viewport functionality which we may want to use
later.
26 lines
1.1 KiB
C
26 lines
1.1 KiB
C
// dear imgui: Renderer for DirectX9
|
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
|
|
|
// Implemented features:
|
|
// [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
|
|
// [X] Renderer: Support for large meshes (64k+ vertices) with 16-bits indices.
|
|
|
|
// You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this.
|
|
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
|
|
// https://github.com/ocornut/imgui
|
|
|
|
#pragma once
|
|
|
|
#include "imgui.h"
|
|
|
|
struct IDirect3DDevice9;
|
|
|
|
IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9 *device);
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_RenderDrawData(ImDrawData *draw_data);
|
|
|
|
// Use if you want to reset your rendering device without losing ImGui state.
|
|
IMGUI_IMPL_API bool ImGui_ImplDX9_CreateDeviceObjects();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_InvalidateDeviceObjects();
|