Czi rendering (#10)

* add dimension selector sliders to czi view

* version doc & version bump

* cosmetic

* fix build?

* multi-dimension selection enabled in czi view

* remove the parameterized reset function of the renderer

it is not and is conceptually questionable

doc updates & some minor improvements

auto-update CZI-view when sliders are moved

set initial window size

fix windows build and msvc build

For reasons I don not comprehend, on Windows, we must include
=opencv2/core/mat.hpp= as the very last header in the =CvMatRender.hpp=.
If this is at any other position building on Windows, compilation will
break w/ all kinds of cryptic errors regarding OpenCV.

When building w/ msvc =__PRETTY_FUNCTION__= is not defined. =ILog.hpp=
now defines it. This should be revised to only be set when the
compiler is msvc. For the time being, it is considered sufficient though.
This commit is contained in:
m-aXimilian
2025-09-26 21:09:51 +02:00
committed by Maximilian Kueffner
parent e60203b57d
commit 1ea83d9d11
27 changed files with 282 additions and 106 deletions
+8 -1
View File
@@ -12,6 +12,7 @@ namespace pixelarium::resources
{
using ResourceKey = size_t;
/// @brief A dedicated exception to be thrown when a resource of an IResourcePool is empty.
struct empty_resource_exception : public std::exception
{
empty_resource_exception() {};
@@ -22,15 +23,21 @@ struct empty_resource_exception : public std::exception
std::string message_ = "Empty Resource";
};
/// @brief Abstract representation of a Resource.
/// This is meant to be implemented by arbitrary explicit resource types and thus
/// gives no contract other than the abstract type.
struct IResource
{
virtual ~IResource() = default;
};
/// @brief Defines a concept for a resource type
/// @tparam R The resource template parameter
template <typename R>
concept ResT = requires(R& r) { static_cast<IResource&>(r); };
/// @brief Defines an interface for a resource pool
/// @tparam ResT defines the resource type that is accepted by the pool
template <typename ResT>
class IResourcePool
{