/
TransitionManager.hpp
39 lines (27 loc) · 963 Bytes
/
TransitionManager.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#include "SDL.h"
#include "Spritesheet.hpp"
enum class TransitionState {
OPENING,
OPEN,
CLOSING,
CLOSED
};
class TransitionHandler {
public:
TransitionHandler();
TransitionHandler(SDL_Renderer* renderer);
void update(float dt);
void render(Spritesheet& spritesheet);
void set_transition(void (*transition_update) (TransitionState* transition_state, float* timer, float dt), void (*transition_render) (TransitionState* transition_state, float* timer, SDL_Renderer* renderer, Spritesheet& spritesheet));
void open();
void close();
bool is_open();
bool is_closed();
private:
void (*transition_update) (TransitionState* transition_state, float* timer, float dt) = nullptr;
void (*transition_render) (TransitionState* transition_state, float* timer, SDL_Renderer* renderer, Spritesheet& spritesheet) = nullptr;
TransitionState transition_state = TransitionState::OPEN;
SDL_Renderer* renderer = nullptr;
float timer = 0.0f;
};