38 lines
846 B
C++
38 lines
846 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 |