texture manager, going to pull out into a resource manager
This commit is contained in:
@@ -7,15 +7,25 @@
|
||||
void SdlRenderer::initialize(RendererParams params) {
|
||||
if(SDL_Init(SDL_INIT_VIDEO) < 0) {
|
||||
printf("SDL vide oinit failed: %s\n", SDL_GetError());
|
||||
return;
|
||||
}
|
||||
SDL_Window* sdl_window = SDL_CreateWindow(params.title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, params.width, params.height, SDL_WINDOW_SHOWN);
|
||||
auto img_flags = IMG_INIT_PNG;
|
||||
if(!(IMG_Init(img_flags) & img_flags)) {
|
||||
printf("Failed to init image loading: %s", IMG_GetError());
|
||||
return;
|
||||
}
|
||||
SDL_Window* sdl_window = SDL_CreateWindow(params.title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, params.width, params.height, SDL_WINDOW_SHOWN);
|
||||
if(sdl_window == nullptr) {
|
||||
printf("error making window: %s\n", SDL_GetError());
|
||||
return;
|
||||
}
|
||||
else {
|
||||
this->window = sdl_window;
|
||||
SDL_Renderer* sdl_renderer = SDL_CreateRenderer(this->window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
|
||||
this->renderer = sdl_renderer;
|
||||
|
||||
this->texture_manager = std::make_unique<SdlTextureManager>();
|
||||
|
||||
SDL_RenderClear(this->renderer);
|
||||
}
|
||||
}
|
||||
@@ -30,3 +40,19 @@ void SdlRenderer::draw_point(int x, int y, Color color) {
|
||||
SDL_SetRenderDrawColor(this->renderer, color.r, color.g, color.b, color.a);
|
||||
SDL_RenderDrawPoint(this->renderer, x, y);
|
||||
}
|
||||
|
||||
void SdlRenderer::draw_text(std::string text, int x, int y) {
|
||||
|
||||
}
|
||||
|
||||
SdlRenderer::~SdlRenderer() {
|
||||
// destroy components
|
||||
SDL_DestroyRenderer(this->renderer);
|
||||
this->renderer = nullptr;
|
||||
SDL_DestroyWindow(this->window);
|
||||
this->window = nullptr;
|
||||
|
||||
// exit subsystems
|
||||
IMG_Quit();
|
||||
SDL_Quit();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user