Jagguar Game Engine
Loading...
Searching...
No Matches
IGraphicsEngineRenderer.hpp
1#ifndef GRAPHICS_ENGINE_RENDERER_HPP
2#define GRAPHICS_ENGINE_RENDERER_HPP
3// ==================== Libraries ==================
4// Depending on the operating system we use
5// The paths to SDL are actually different.
6// The #define statement should be passed in
7// when compiling using the -D argument.
8// This gives an example of how a programmer
9// may support multiple platforms with different
10// dependencies.
11//
12// Note that your path may be different depending on where you intalled things
13//
14//
15#if defined(LINUX) || defined(MINGW)
16#include <SDL2/SDL.h>
17#else // This works for Mac
18
19#include <SDL.h>
20
21#endif
22
28public:
32 IGraphicsEngineRenderer(int w, int h) : mScreenWidth(w), mScreenHeight(h) {};
33
38
43 virtual void SetRenderDrawColor(int r, int g, int b, int a) = 0;
44
48 virtual void RenderClear() = 0;
49
54 virtual void RenderPresent() = 0;
55
56protected:
57 // Screen dimension constants
58 int mScreenWidth{0};
59 int mScreenHeight{0};
60};
61
62
64public:
68 SDLGraphicsEngineRenderer(int w, int h);
69
74
75 void SetRenderDrawColor(int r, int g, int b, int a) override;
76
80 void RenderClear() override;
81
86 void RenderPresent() override;
87
91 SDL_Window *GetWindow();
92
96 SDL_Renderer *GetRenderer();
97
98private:
99 // SDL Window
100 SDL_Window *mWindow = nullptr;
101 // SDL Renderer
102 SDL_Renderer *mRenderer = nullptr;
103};
104
105#endif
Definition: IGraphicsEngineRenderer.hpp:27
virtual ~IGraphicsEngineRenderer()
Definition: IGraphicsEngineRenderer.hpp:37
IGraphicsEngineRenderer(int w, int h)
Definition: IGraphicsEngineRenderer.hpp:32
virtual void RenderClear()=0
virtual void RenderPresent()=0
virtual void SetRenderDrawColor(int r, int g, int b, int a)=0
Definition: IGraphicsEngineRenderer.hpp:63
~SDLGraphicsEngineRenderer()
Definition: IGraphicsEngineRenderer.cpp:49
void SetRenderDrawColor(int r, int g, int b, int a) override
Definition: IGraphicsEngineRenderer.cpp:63
SDL_Renderer * GetRenderer()
Definition: IGraphicsEngineRenderer.cpp:81
SDL_Window * GetWindow()
Definition: IGraphicsEngineRenderer.cpp:76
void RenderPresent() override
Definition: IGraphicsEngineRenderer.cpp:71
void RenderClear() override
Definition: IGraphicsEngineRenderer.cpp:67