#include <algorithm>
#include <array>
#include <cmath>
#include <utility>
#include <vector>
#include "dawn/common/Assert.h"
#include "dawn/common/Constants.h"
#include "dawn/tests/DawnTest.h"
#include "dawn/utils/ComboRenderPipelineDescriptor.h"
#include "dawn/utils/WGPUHelpers.h"
namespace dawn {
namespace {
constexpr static unsigned int kRTSize = …;
class ColorStateTest : public DawnTest { … };
namespace {
constexpr utils::RGBA8 operator+(const utils::RGBA8& col1, const utils::RGBA8& col2) { … }
constexpr utils::RGBA8 operator-(const utils::RGBA8& col1, const utils::RGBA8& col2) { … }
utils::RGBA8 min(const utils::RGBA8& col1, const utils::RGBA8& col2) { … }
utils::RGBA8 max(const utils::RGBA8& col1, const utils::RGBA8& col2) { … }
utils::RGBA8 mix(const utils::RGBA8& col1, const utils::RGBA8& col2, std::array<float, 4> fac) { … }
utils::RGBA8 mix(const utils::RGBA8& col1, const utils::RGBA8& col2, const utils::RGBA8& fac) { … }
constexpr std::array<utils::RGBA8, 8> kColors = …;
}
TEST_P(ColorStateTest, Basic) { … }
TEST_P(ColorStateTest, BlendOperationAdd) { … }
TEST_P(ColorStateTest, BlendOperationSubtract) { … }
TEST_P(ColorStateTest, BlendOperationReverseSubtract) { … }
TEST_P(ColorStateTest, BlendOperationMin) { … }
TEST_P(ColorStateTest, BlendOperationMax) { … }
TEST_P(ColorStateTest, SrcBlendFactorZero) { … }
TEST_P(ColorStateTest, SrcBlendFactorOne) { … }
TEST_P(ColorStateTest, SrcBlendFactorSrc) { … }
TEST_P(ColorStateTest, SrcBlendFactorOneMinusSrc) { … }
TEST_P(ColorStateTest, SrcBlendFactorSrcAlpha) { … }
TEST_P(ColorStateTest, SrcBlendFactorOneMinusSrcAlpha) { … }
TEST_P(ColorStateTest, SrcBlendFactorDst) { … }
TEST_P(ColorStateTest, SrcBlendFactorOneMinusDst) { … }
TEST_P(ColorStateTest, SrcBlendFactorDstAlpha) { … }
TEST_P(ColorStateTest, SrcBlendFactorOneMinusDstAlpha) { … }
TEST_P(ColorStateTest, SrcBlendFactorSrcAlphaSaturated) { … }
TEST_P(ColorStateTest, SrcBlendFactorConstant) { … }
TEST_P(ColorStateTest, SrcBlendFactorOneMinusConstant) { … }
TEST_P(ColorStateTest, DstBlendFactorZero) { … }
TEST_P(ColorStateTest, DstBlendFactorOne) { … }
TEST_P(ColorStateTest, DstBlendFactorSrc) { … }
TEST_P(ColorStateTest, DstBlendFactorOneMinusSrc) { … }
TEST_P(ColorStateTest, DstBlendFactorSrcAlpha) { … }
TEST_P(ColorStateTest, DstBlendFactorOneMinusSrcAlpha) { … }
TEST_P(ColorStateTest, DstBlendFactorDst) { … }
TEST_P(ColorStateTest, DstBlendFactorOneMinusDst) { … }
TEST_P(ColorStateTest, DstBlendFactorDstAlpha) { … }
TEST_P(ColorStateTest, DstBlendFactorOneMinusDstAlpha) { … }
TEST_P(ColorStateTest, DstBlendFactorSrcAlphaSaturated) { … }
TEST_P(ColorStateTest, DstBlendFactorConstant) { … }
TEST_P(ColorStateTest, DstBlendFactorOneMinusConstant) { … }
TEST_P(ColorStateTest, ColorWriteMask) { … }
TEST_P(ColorStateTest, ColorWriteMaskBlendingDisabled) { … }
TEST_P(ColorStateTest, IndependentColorState) { … }
TEST_P(ColorStateTest, DefaultBlendColor) { … }
TEST_P(ColorStateTest, ColorWriteMaskDoesNotAffectRenderPassLoadOpClear) { … }
TEST_P(ColorStateTest, SparseAttachmentsDifferentColorMask) { … }
TEST_P(ColorStateTest, SrcBlendFactorDstAlphaDstBlendFactorZero) { … }
DAWN_INSTANTIATE_TEST(ColorStateTest,
D3D11Backend(),
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
OpenGLESBackend(),
VulkanBackend());
}
}