#pragma once #if SUPPORT_D3D12 #include #include #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 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