SFML/test/Graphics/RenderStates.cpp
Chris Thrasher fd3526f742 Use <> for test utilities includes
SFML convention is to only use "" includes when the header is in
the same directory as the file including it. Because these test
util headers are in a separate directory, it makes more sense to
include them via <>.
2022-06-27 00:22:16 +02:00

81 lines
3.2 KiB
C++

#include <SFML/Graphics/RenderStates.hpp>
#include <GraphicsUtil.hpp>
#include <doctest.h>
TEST_CASE("sf::RenderStates class - [graphics]")
{
SUBCASE("Construction")
{
SUBCASE("Default constructor")
{
const sf::RenderStates renderStates;
CHECK(renderStates.blendMode == sf::BlendMode());
CHECK(renderStates.transform == sf::Transform());
CHECK(renderStates.texture == nullptr);
CHECK(renderStates.shader == nullptr);
}
SUBCASE("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.texture == nullptr);
CHECK(renderStates.shader == nullptr);
}
SUBCASE("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.texture == nullptr);
CHECK(renderStates.shader == nullptr);
}
SUBCASE("Texture constructor")
{
const sf::Texture* texture = nullptr;
const sf::RenderStates renderStates(texture);
CHECK(renderStates.blendMode == sf::BlendMode());
CHECK(renderStates.transform == sf::Transform());
CHECK(renderStates.texture == texture);
CHECK(renderStates.shader == nullptr);
}
SUBCASE("Shader constructor")
{
const sf::Shader* shader = nullptr;
const sf::RenderStates renderStates(shader);
CHECK(renderStates.blendMode == sf::BlendMode());
CHECK(renderStates.transform == sf::Transform());
CHECK(renderStates.texture == nullptr);
CHECK(renderStates.shader == shader);
}
SUBCASE("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, nullptr, nullptr);
CHECK(renderStates.blendMode == blendMode);
CHECK(renderStates.transform == transform);
CHECK(renderStates.texture == nullptr);
CHECK(renderStates.shader == nullptr);
}
}
SUBCASE("Default constant")
{
CHECK(sf::RenderStates::Default.blendMode == sf::BlendMode());
CHECK(sf::RenderStates::Default.transform == sf::Transform());
CHECK(sf::RenderStates::Default.texture == nullptr);
CHECK(sf::RenderStates::Default.shader == nullptr);
}
}