galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
PostEffect.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_GRAPHICS_POSTEFFECT_HPP_
9#define GALAXY_GRAPHICS_POSTEFFECT_HPP_
10
11#include <concepts>
12
13namespace galaxy
14{
15 namespace graphics
16 {
21 {
22 public:
26 virtual ~PostEffect() = default;
27
34 virtual void resize(const int width, const int height) = 0;
35
43 [[nodiscard]]
44 virtual unsigned int render(const unsigned int input) = 0;
45
51 [[nodiscard]]
52 virtual bool is_enabled() = 0;
53
54 protected:
58 PostEffect() = default;
59
63 PostEffect(const PostEffect&) = default;
64
68 PostEffect(PostEffect&&) = default;
69
73 PostEffect& operator=(const PostEffect&) = default;
74
79 };
80
86 template<typename T>
87 concept is_posteffect = std::derived_from<T, PostEffect>;
88 } // namespace graphics
89} // namespace galaxy
90
91#endif
Manages post processing effects to apply to combined scene.
virtual unsigned int render(const unsigned int input)=0
Render effect to input texture.
virtual void resize(const int width, const int height)=0
Resize framebuffers.
PostEffect & operator=(const PostEffect &)=default
Copy assignment operator.
PostEffect(PostEffect &&)=default
Move constructor.
virtual bool is_enabled()=0
Is this effect enabled?
virtual ~PostEffect()=default
Destructor.
PostEffect()=default
Constructor.
PostEffect(const PostEffect &)=default
Copy constructor.
PostEffect & operator=(PostEffect &&)=default
Move assignment operator.
Constraint to ensure type is a Post Effect.
Animated.cpp galaxy.
Definition Animated.cpp:16