mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-10-18 17:59:12 +00:00
53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
#include "IFeature.h"
|
|
#include "xess_d3d12.h"
|
|
#include "xess_debug.h"
|
|
#include <string>
|
|
|
|
inline static std::string ResultToString(xess_result_t result)
|
|
{
|
|
switch (result)
|
|
{
|
|
case XESS_RESULT_WARNING_NONEXISTING_FOLDER: return "Warning Nonexistent Folder";
|
|
case XESS_RESULT_WARNING_OLD_DRIVER: return "Warning Old Driver";
|
|
case XESS_RESULT_SUCCESS: return "Success";
|
|
case XESS_RESULT_ERROR_UNSUPPORTED_DEVICE: return "Unsupported Device";
|
|
case XESS_RESULT_ERROR_UNSUPPORTED_DRIVER: return "Unsupported Driver";
|
|
case XESS_RESULT_ERROR_UNINITIALIZED: return "Uninitialized";
|
|
case XESS_RESULT_ERROR_INVALID_ARGUMENT: return "Invalid Argument";
|
|
case XESS_RESULT_ERROR_DEVICE_OUT_OF_MEMORY: return "Device Out of Memory";
|
|
case XESS_RESULT_ERROR_DEVICE: return "Device Error";
|
|
case XESS_RESULT_ERROR_NOT_IMPLEMENTED: return "Not Implemented";
|
|
case XESS_RESULT_ERROR_INVALID_CONTEXT: return "Invalid Context";
|
|
case XESS_RESULT_ERROR_OPERATION_IN_PROGRESS: return "Operation in Progress";
|
|
case XESS_RESULT_ERROR_UNSUPPORTED: return "Unsupported";
|
|
case XESS_RESULT_ERROR_CANT_LOAD_LIBRARY: return "Cannot Load Library";
|
|
case XESS_RESULT_ERROR_UNKNOWN:
|
|
default: return "Unknown";
|
|
}
|
|
}
|
|
|
|
|
|
class XeSSFeature : public IFeature
|
|
{
|
|
private:
|
|
bool _isInited = false;
|
|
|
|
protected:
|
|
xess_context_handle_t _xessContext;
|
|
|
|
bool InitXeSS(ID3D12Device* device, const NVSDK_NGX_Parameter* InParameters);
|
|
|
|
void SetRenderResolution(const NVSDK_NGX_Parameter* InParameters, xess_d3d12_execute_params_t* params) const;
|
|
|
|
void SetInit(bool value) override;
|
|
|
|
public:
|
|
|
|
XeSSFeature(unsigned int handleId, const NVSDK_NGX_Parameter* InParameters) : IFeature(handleId, InParameters)
|
|
{
|
|
}
|
|
|
|
bool IsInited() override;
|
|
|
|
~XeSSFeature();
|
|
}; |