93 lines
3.4 KiB
C
93 lines
3.4 KiB
C
// This file is part of the FidelityFX Super Resolution 3.1 Unreal Engine Plugin.
|
|
//
|
|
// Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// THE SOFTWARE.
|
|
|
|
#pragma once
|
|
|
|
#include "HAL/Platform.h"
|
|
#include "Misc/EngineVersionComparison.h"
|
|
|
|
// Variant of UE_VERSION_NEWER_THAN that is true if the engine version is at or later than the specified, used to better handle version differences in the codebase.
|
|
#define UE_VERSION_AT_LEAST(MajorVersion, MinorVersion, PatchVersion) \
|
|
UE_GREATER_SORT(ENGINE_MAJOR_VERSION, MajorVersion, UE_GREATER_SORT(ENGINE_MINOR_VERSION, MinorVersion, UE_GREATER_SORT(ENGINE_PATCH_VERSION, PatchVersion, true)))
|
|
|
|
#if PLATFORM_WINDOWS
|
|
#define FFX_ENABLE_DX12 1
|
|
#include "Windows/AllowWindowsPlatformTypes.h"
|
|
#else
|
|
#define FFX_ENABLE_DX12 0
|
|
#define FFX_GCC
|
|
#endif
|
|
THIRD_PARTY_INCLUDES_START
|
|
|
|
#if UE_VERSION_AT_LEAST(5, 3, 0)
|
|
#include <bit>
|
|
#endif
|
|
#include "ffx_api_types.h"
|
|
#include "ffx_api.h"
|
|
|
|
#include "FidelityFX/host/ffx_types.h"
|
|
|
|
#if !defined(FFX_GCC)
|
|
#undef FFX_API
|
|
#define FFX_API __declspec(dllexport)
|
|
#endif
|
|
|
|
#include "FidelityFX/host/ffx_assert.h"
|
|
#include "FidelityFX/host/ffx_error.h"
|
|
#include "FidelityFX/host/ffx_interface.h"
|
|
#include "FidelityFX/host/ffx_util.h"
|
|
|
|
THIRD_PARTY_INCLUDES_END
|
|
#if PLATFORM_WINDOWS
|
|
#include "Windows/HideWindowsPlatformTypes.h"
|
|
#else
|
|
#undef FFX_GCC
|
|
#endif
|
|
|
|
#if defined(FFX_RENDER_TESTS)
|
|
#include "IFFXRenderTest.h"
|
|
#else
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_BEGIN
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_BEGIN(Name, GraphBuilder, MinDiff)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_ADD
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_ADD(TextureName, GraphBuilder, MinDiff)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_PARAM
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_PARAM(TextureName, Texture, GraphBuilder, MinDiff)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_PARAMS
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_PARAMS(TypeName, Parameters, GraphBuilder, MinDiff)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_END
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_END(GraphBuilder)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_BEGIN_DX12
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_BEGIN_DX12(Name)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_ADD_DX12
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_ADD_DX12(Dev, List, Tex, State, Frames, Name)
|
|
#endif
|
|
#ifndef FFX_RENDER_TEST_CAPTURE_PASS_END_DX12
|
|
#define FFX_RENDER_TEST_CAPTURE_PASS_END_DX12
|
|
#endif
|
|
#endif
|