SFML/test/TestUtilities/GraphicsUtil.hpp

44 lines
1.2 KiB
C++
Raw Normal View History

// Header for SFML unit tests.
//
// For a new graphics module test case, include this header.
2023-01-18 12:51:08 +08:00
// This ensures that string conversions are visible and can be used by Catch2 for debug output.
#pragma once
2024-02-08 21:28:57 +08:00
#include <SystemUtil.hpp>
2024-04-12 00:29:03 +08:00
#include <filesystem>
#include <iosfwd>
2024-04-12 00:29:03 +08:00
#include <vector>
#include <cstddef>
2021-12-24 21:31:27 +08:00
namespace sf
{
2022-07-05 00:20:58 +08:00
struct BlendMode;
struct StencilMode;
2022-07-05 00:20:58 +08:00
class Color;
class Transform;
template <typename>
class Rect;
2022-07-05 00:20:58 +08:00
std::ostream& operator<<(std::ostream& os, const BlendMode& blendMode);
std::ostream& operator<<(std::ostream& os, const StencilMode& stencilMode);
2022-07-05 00:20:58 +08:00
std::ostream& operator<<(std::ostream& os, const Color& color);
std::ostream& operator<<(std::ostream& os, const Transform& transform);
template <typename T>
std::ostream& operator<<(std::ostream& os, const Rect<T>& rect);
2022-07-05 00:20:58 +08:00
} // namespace sf
bool operator==(const sf::Transform& lhs, const Approx<sf::Transform>& rhs);
2023-09-28 12:27:20 +08:00
template <typename T>
bool operator==(const sf::Rect<T>& lhs, const Approx<sf::Rect<T>>& rhs)
{
return lhs.left == Approx(rhs.value.left) && lhs.top == Approx(rhs.value.top) &&
lhs.width == Approx(rhs.value.width) && lhs.height == Approx(rhs.value.height);
}
2024-04-12 00:29:03 +08:00
[[nodiscard]] std::vector<std::byte> loadIntoMemory(const std::filesystem::path& path);