Files
o3de/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/BuilderSettings/ImageProcessingDefines.h
T
Qing Tao 89e6df1c7f ATOM-16575 clean up image builder presets files (#4611)
ATOM-16575 clean up image builder presets files
Removed unused image builder presets
Deprecating preset UUID and use preset name as unique id
Delete all .exportsettings file which were only used for legacy imageProcessing gem.

Signed-off-by: Qing Tao <qingtao@amazon.com>
2021-10-11 15:18:39 -07:00

118 lines
4.4 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <AzCore/Name/Name.h>
#include <AzCore/std/containers/map.h>
#include <AzCore/std/containers/vector.h>
#include <AzCore/std/containers/list.h>
#include <AzCore/std/string/string.h>
#include <AzCore/Outcome/Outcome.h>
#include <AzCore/base.h>
/**
* Shorthand for checking a condition, and failing if false.
* Works with any function that returns AZ::Outcome<..., AZStd::string>.
* Unlike assert, it is not removed in release builds.
* Ensure all strings are passed with c_str(), as they are passed to AZStd::string::format().
*/
#define AZ_ENSURE_STRING_OUTCOME_CONDITION(cond, ...) if (!(cond)) { return AZ::Failure(AZStd::string::format(__VA_ARGS__)); }
// Similar to above macro, but ensures on an AZ::Outcome. Not removed in release builds.
#define AZ_ENSURE_STRING_OUTCOME(outcome) if (!(outcome.IsSuccess())) { return AZ::Failure(outcome.GetError()); }
namespace ImageProcessingAtom
{
//! Common return type for operations that can fail.
// Empty success string == Success.
// Populated success string == Warning.
// Populated error string == Failure.
using StringOutcome = AZ::Outcome<AZStd::string, AZStd::string>;
#define STRING_OUTCOME_SUCCESS AZ::Success(AZStd::string())
#define STRING_OUTCOME_WARNING(warning) AZ::Success(AZStd::string(warning))
#define STRING_OUTCOME_ERROR(error) AZ::Failure(AZStd::string(error))
// Common typedefs (with dependent forward-declarations)
typedef AZStd::string PlatformName, FileMask;
typedef AZ::Name PresetName;
typedef AZStd::vector<PlatformName> PlatformNameVector;
typedef AZStd::list<PlatformName> PlatformNameList;
//! min and max reduce level
static const unsigned int s_MinReduceLevel = 0;
static const unsigned int s_MaxReduceLevel = 5;
static const int s_TotalSupportedImageExtensions = 10;
static const char* s_SupportedImageExtensions[s_TotalSupportedImageExtensions] = {
"*.tif",
"*.tiff",
"*.png",
"*.bmp",
"*.jpg",
"*.jpeg",
"*.tga",
"*.gif",
"*.dds",
"*.exr"
};
enum class RGBWeight : AZ::u32
{
uniform, // uniform weights (1.0, 1.0, 1.0) (default)
luminance, // luminance-based weights (0.3086, 0.6094, 0.0820)
ciexyz // ciexyz-based weights (0.2126, 0.7152, 0.0722)
};
enum class ColorSpace : AZ::u32
{
linear,
sRGB,
autoSelect,
};
enum class MipGenType : AZ::u32
{
point, //Also called nearest neighbor
box, //Also called 'average'. When shrinking images it will average, and merge the pixels together.
triangle, //Also called linear or Bartlett window
quadratic, //Also called bilinear or Welch window
gaussian, //It remove high frequency noise in a highly controllable way.
blackmanHarris,
kaiserSinc //Good for foliage and tree assets exported from Speedtree.
};
enum class MipGenEvalType : AZ::u32
{
sum,
max,
min
};
//cubemap angular filter type. Only two filter types were used in rc.ini
enum class CubemapFilterType : AZ::u32
{
disc = 0, // same as CP_FILTER_TYPE_DISC in CubemapGen
cone = 1, // same as CP_FILTER_TYPE_CONE
cosine = 2, // same as CP_FILTER_TYPE_COSINE. only used for [EnvironmentProbeHDR_Irradiance]
gaussian = 3, // same as CP_FILTER_TYPE_ANGULAR_GAUSSIAN
cosine_power = 4, // same as CP_FILTER_TYPE_COSINE_POWER
ggx = 5 // same as CP_FILTER_TYPE_GGX. only used for [EnvironmentProbeHDR]
};
} // namespace ImageProcessingAtom
namespace AZ
{
// Bind enums with uuids. Required for named enum support.
// Note: AZ_TYPE_INFO_SPECIALIZE has to be declared in AZ namespace
AZ_TYPE_INFO_SPECIALIZE(ImageProcessingAtom::RGBWeight, "{80AFA059-2DF5-45A7-A2F1-27A7A045B0DB}");
AZ_TYPE_INFO_SPECIALIZE(ImageProcessingAtom::ColorSpace, "{C924C0BB-1154-4341-A25A-698A3950B286}");
AZ_TYPE_INFO_SPECIALIZE(ImageProcessingAtom::CubemapFilterType, "{0D69E9F3-8F4C-4415-96B5-64ACA0B0888B}");
AZ_TYPE_INFO_SPECIALIZE(ImageProcessingAtom::MipGenType, "{8524F650-1417-44DA-BBB0-C707A7A1A709}");
}