#include #include #include #include TEST_CASE("[Graphics] sf::RenderStates") { SECTION("Type traits") { STATIC_CHECK(std::is_copy_constructible_v); STATIC_CHECK(std::is_copy_assignable_v); STATIC_CHECK(std::is_nothrow_move_constructible_v); STATIC_CHECK(std::is_nothrow_move_assignable_v); } SECTION("Construction") { SECTION("Default constructor") { const sf::RenderStates renderStates; CHECK(renderStates.blendMode == sf::BlendMode()); CHECK(renderStates.transform == sf::Transform()); CHECK(renderStates.coordinateType == sf::CoordinateType::Pixels); CHECK(renderStates.texture == nullptr); CHECK(renderStates.shader == nullptr); } SECTION("BlendMode constructor") { const sf::BlendMode blendMode(sf::BlendMode::Zero, sf::BlendMode::SrcColor, sf::BlendMode::ReverseSubtract, sf::BlendMode::OneMinusDstAlpha, sf::BlendMode::DstAlpha, sf::BlendMode::Max); const sf::RenderStates renderStates(blendMode); CHECK(renderStates.blendMode == blendMode); CHECK(renderStates.transform == sf::Transform()); CHECK(renderStates.coordinateType == sf::CoordinateType::Pixels); CHECK(renderStates.texture == nullptr); CHECK(renderStates.shader == nullptr); } SECTION("Transform constructor") { const sf::Transform transform(10, 9, 8, 7, 6, 5, 4, 3, 2); const sf::RenderStates renderStates(transform); CHECK(renderStates.blendMode == sf::BlendMode()); CHECK(renderStates.transform == transform); CHECK(renderStates.coordinateType == sf::CoordinateType::Pixels); CHECK(renderStates.texture == nullptr); CHECK(renderStates.shader == nullptr); } SECTION("Texture constructor") { const sf::Texture* texture = nullptr; const sf::RenderStates renderStates(texture); CHECK(renderStates.blendMode == sf::BlendMode()); CHECK(renderStates.transform == sf::Transform()); CHECK(renderStates.coordinateType == sf::CoordinateType::Pixels); CHECK(renderStates.texture == texture); CHECK(renderStates.shader == nullptr); } SECTION("Shader constructor") { const sf::Shader* shader = nullptr; const sf::RenderStates renderStates(shader); CHECK(renderStates.blendMode == sf::BlendMode()); CHECK(renderStates.transform == sf::Transform()); CHECK(renderStates.coordinateType == sf::CoordinateType::Pixels); CHECK(renderStates.texture == nullptr); CHECK(renderStates.shader == shader); } SECTION("Verbose constructor") { const sf::BlendMode blendMode(sf::BlendMode::One, sf::BlendMode::SrcColor, sf::BlendMode::ReverseSubtract, sf::BlendMode::OneMinusDstAlpha, sf::BlendMode::DstAlpha, sf::BlendMode::Max); const sf::Transform transform(10, 2, 3, 4, 50, 40, 30, 20, 10); const sf::RenderStates renderStates(blendMode, transform, sf::CoordinateType::Normalized, nullptr, nullptr); CHECK(renderStates.blendMode == blendMode); CHECK(renderStates.transform == transform); CHECK(renderStates.coordinateType == sf::CoordinateType::Normalized); CHECK(renderStates.texture == nullptr); CHECK(renderStates.shader == nullptr); } } SECTION("Default constant") { CHECK(sf::RenderStates::Default.blendMode == sf::BlendMode()); CHECK(sf::RenderStates::Default.transform == sf::Transform()); CHECK(sf::RenderStates::Default.coordinateType == sf::CoordinateType::Pixels); CHECK(sf::RenderStates::Default.texture == nullptr); CHECK(sf::RenderStates::Default.shader == nullptr); } }