Added screen base class
This commit is contained in:
parent
65e5993ee4
commit
bc2876d1b5
19
include/Screen.hpp
Normal file
19
include/Screen.hpp
Normal file
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
|
||||
struct SDL_Renderer;
|
||||
struct SDL_Texture;
|
||||
struct SDL_Rect { int x, y, w, h };
|
||||
|
||||
class Screen
|
||||
{
|
||||
public:
|
||||
Screen(SDL_Renderer* renderer, int x, int y, int w, int h);
|
||||
~Screen();
|
||||
|
||||
virtual void Update() = 0;
|
||||
virtual void Render(SDL_Renderer* renderer) = 0;
|
||||
|
||||
protected:
|
||||
SDL_Rect screenSpace;
|
||||
SDL_Texture* texture;
|
||||
};
|
|
@ -1,7 +1,7 @@
|
|||
add_executable(fourier
|
||||
"main.cpp"
|
||||
"RenderWindow.cpp"
|
||||
)
|
||||
"Screen.cpp")
|
||||
|
||||
target_include_directories(fourier PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
|
|
18
src/Screen.cpp
Normal file
18
src/Screen.cpp
Normal file
|
@ -0,0 +1,18 @@
|
|||
#include "Screen.hpp"
|
||||
#include <stdexcept>
|
||||
#include <SDL.h>
|
||||
|
||||
Screen::Screen(SDL_Renderer* renderer, int x, int y, int w, int h) :
|
||||
screenSpace{ x, y, w, h }
|
||||
{
|
||||
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_TARGET, w, h);
|
||||
if (texture == nullptr)
|
||||
{
|
||||
throw std::runtime_error(SDL_GetErrorMsg((char*)malloc(512), 511));
|
||||
}
|
||||
}
|
||||
|
||||
Screen::~Screen()
|
||||
{
|
||||
SDL_DestroyTexture(texture);
|
||||
}
|
Loading…
Reference in a new issue