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]] virtual unsigned int render(const unsigned int input) = 0;
44
50 [[nodiscard]] virtual bool is_enabled() = 0;
51
52 protected:
56 PostEffect() = default;
57
61 PostEffect(const PostEffect&) = default;
62
66 PostEffect(PostEffect&&) = default;
67
71 PostEffect& operator=(const PostEffect&) = default;
72
77 };
78
84 template<typename T>
85 concept is_posteffect = std::derived_from<T, PostEffect>;
86 } // namespace graphics
87} // namespace galaxy
88
89#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