diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 63d6b44..06ce8e6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -49,6 +49,7 @@ add_executable(test-csfml-graphics Graphics/Color.test.cpp Graphics/CoordinateType.test.cpp Graphics/Rect.test.cpp + Graphics/RenderStates.test.cpp Graphics/StencilMode.test.cpp Graphics/Transform.test.cpp ) diff --git a/test/Graphics/RenderStates.test.cpp b/test/Graphics/RenderStates.test.cpp new file mode 100644 index 0000000..6e74623 --- /dev/null +++ b/test/Graphics/RenderStates.test.cpp @@ -0,0 +1,41 @@ +#include + +#include + +#include + +#include "CSFML/Graphics/CoordinateType.h" + +TEST_CASE("[Graphics] sfRenderStates") +{ + SECTION("Construction") + { + constexpr sfRenderStates renderStates{}; + STATIC_CHECK(renderStates.blendMode.colorSrcFactor == sfBlendFactorZero); + STATIC_CHECK(renderStates.blendMode.colorDstFactor == sfBlendFactorZero); + STATIC_CHECK(renderStates.blendMode.colorEquation == sfBlendEquationAdd); + STATIC_CHECK(renderStates.blendMode.alphaSrcFactor == sfBlendFactorZero); + STATIC_CHECK(renderStates.blendMode.alphaDstFactor == sfBlendFactorZero); + STATIC_CHECK(renderStates.blendMode.alphaEquation == sfBlendEquationAdd); + STATIC_CHECK(renderStates.stencilMode.stencilComparison == sfStencilComparisonNever); + STATIC_CHECK(renderStates.stencilMode.stencilUpdateOperation == sfStencilUpdateOperationKeep); + STATIC_CHECK(renderStates.stencilMode.stencilReference.value == 0); + STATIC_CHECK(renderStates.stencilMode.stencilMask.value == 0); + STATIC_CHECK(!renderStates.stencilMode.stencilOnly); + for (const auto element : renderStates.transform.matrix) + CHECK(element == 0); + STATIC_CHECK(renderStates.coordinateType == sfCoordinateTypeNormalized); + STATIC_CHECK(renderStates.texture == nullptr); + STATIC_CHECK(renderStates.shader == nullptr); + } + + SECTION("sfRenderStates_default") + { + CHECK(sfRenderStates_default.blendMode.alphaDstFactor == sfBlendAlpha.alphaDstFactor); + CHECK(sfRenderStates_default.blendMode.colorDstFactor == sfBlendAlpha.colorDstFactor); + CHECK(sfRenderStates_default.blendMode.colorEquation == sfBlendAlpha.colorEquation); + CHECK(sfRenderStates_default.blendMode.alphaSrcFactor == sfBlendAlpha.alphaSrcFactor); + CHECK(sfRenderStates_default.blendMode.alphaDstFactor == sfBlendAlpha.alphaDstFactor); + CHECK(sfRenderStates_default.blendMode.alphaEquation == sfBlendAlpha.alphaEquation); + } +}