2024-12-12 17:41:33 +08:00

38 lines
847 B
C++

#pragma once
#if SUPPORT_D3D12
#include <functional>
#include <d3d12.h>
#include "xess/xess.h"
#include "xess/xess_d3d12.h"
enum XessQuality
{
UltraPerformance = 100,
Performance = 101,
Balanced = 102,
Quality = 103,
UltraQuality = 104,
UltraQualityPlus = 105,
NativeAA = 106,
};
struct XessV13 final
{
XessV13(ID3D12Device* device) : device(device), inited(false), xess_context(nullptr) {}
~XessV13() = default;
bool enable(std::function<void(const char*)> log_cb);
void disable();
bool configxess(void* data);
void execute(void* data, ID3D12GraphicsCommandList* cmd_list);
bool get_input_resolution(uint32_t outw, uint32_t outh, int quality, uint32_t& Width, uint32_t& Height);
private:
ID3D12Device* device;
xess_context_handle_t xess_context;
bool inited;
};
#endif