rodecomp/Source/Render/RenderAdapter.h
ragnarok-clanker b5b4ecd60f Decompile 12 functions in Source/Render/DX7/DirectDrawEnumeration.h, Source/Render/DX7/DirectDrawEnumeration.cpp, ...
Batch #1484 by ragnarok-clanker: 0 byte-identical, 12 confirmed by peer review.

- fn_09780 DirectDrawEnumeration::Devices: logic confirmed by peer review
- fn_09781 DirectDrawEnumeration::DeviceCount: logic confirmed by peer review
- fn_09782 DirectDrawEnumeration::DevicesSeen: logic confirmed by peer review
- fn_09777 DirectDrawEnumeration::Enumerate: logic confirmed by peer review
- fn_09778 DirectDrawEnumeration::Device: logic confirmed by peer review
- fn_09779 DirectDrawEnumeration::Adapter: logic confirmed by peer review
- fn_09783 DirectDrawEnumeration::Mode: logic confirmed by peer review
- fn_09785 DirectDrawEnumeration::ClearModes: logic confirmed by peer review
- fn_02331 EnumerateDisplayModesDX7: logic confirmed by peer review
- fn_02326 EnumerateAdaptersDX7: logic confirmed by peer review
- fn_02291 EnumerateDisplayModes: logic confirmed by peer review
- fn_02283 EnumerateRenderAdapters: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
2026-10-28 16:32:47 +00:00

50 lines
1.6 KiB
C++

#ifndef RAGNAROK_SOURCE_RENDER_RENDERADAPTER_H
#define RAGNAROK_SOURCE_RENDER_RENDERADAPTER_H
#include <cstddef>
#include <string>
#include <vector>
#include <windows.h>
class DeviceOwnerDX9;
struct DeviceOptionsDX9;
struct RenderAdapter {
/* 0000 */ int backend;
/* 0004 */ UINT ordinal;
/* 0008 */ std::string description;
/* 0020 */ GUID drawGuid;
/* 0030 */ GUID renderGuid;
/* 0040 */ GUID deviceGuid;
/* 0050 */ std::string deviceName;
bool Matches(const RenderAdapter& selected) const;
};
struct AdapterConfiguration {
const int& backend;
const GUID& drawGuid;
const GUID& renderGuid;
const GUID& deviceGuid;
const char* deviceName;
};
RenderAdapter SelectedRenderAdapter(const AdapterConfiguration& configuration, bool serviceUsesDX7);
std::vector<RenderAdapter> EnumerateRenderAdapters(int backend);
std::vector<RenderAdapter> EnumerateAdaptersDX7();
std::vector<RenderAdapter> EnumerateAdaptersDX9();
HRESULT InitializeConfiguredDeviceDX9(
DeviceOwnerDX9& owner, HWND window, const DeviceOptionsDX9& options, const AdapterConfiguration& configuration, bool serviceUsesDX7
);
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(RenderAdapter) == 104);
static_assert(offsetof(RenderAdapter, ordinal) == 0x0004);
static_assert(offsetof(RenderAdapter, description) == 0x0008);
static_assert(offsetof(RenderAdapter, drawGuid) == 0x0020);
static_assert(offsetof(RenderAdapter, renderGuid) == 0x0030);
static_assert(offsetof(RenderAdapter, deviceGuid) == 0x0040);
static_assert(offsetof(RenderAdapter, deviceName) == 0x0050);
#endif
#endif