1#ifndef YAZE_APP_CORE_PLATFORM_RENDERER_H
2#define YAZE_APP_CORE_PLATFORM_RENDERER_H
8#include "absl/status/status.h"
9#include "absl/strings/str_format.h"
32 renderer_ = std::unique_ptr<SDL_Renderer, SDL_Deleter>(SDL_CreateRenderer(
33 window, -1, SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED));
35 return absl::InternalError(
36 absl::StrFormat(
"SDL_CreateRenderer: %s\n", SDL_GetError()));
38 SDL_SetRenderDrawBlendMode(
renderer_.get(), SDL_BLENDMODE_BLEND);
39 SDL_SetRenderDrawColor(
renderer_.get(), 0x00, 0x00, 0x00, 0x00);
40 return absl::OkStatus();
60 const std::vector<uint8_t> &data,
62 bitmap.
Create(width, height, depth, data);
64 throw std::runtime_error(
"Failed to set palette");
72 std::unique_ptr<SDL_Renderer, SDL_Deleter>
renderer_;
void CreateAndRenderBitmap(int width, int height, int depth, const std::vector< uint8_t > &data, gfx::Bitmap &bitmap, gfx::SnesPalette &palette)
Renderer & operator=(const Renderer &)=delete
std::unique_ptr< SDL_Renderer, SDL_Deleter > renderer_
void UpdateBitmap(gfx::Bitmap *bitmap)
Used to update a bitmap on the screen.
static Renderer & GetInstance()
auto renderer() -> SDL_Renderer *
Renderer(const Renderer &)=delete
absl::Status CreateRenderer(SDL_Window *window)
void RenderBitmap(gfx::Bitmap *bitmap)
Used to render a bitmap to the screen.
Represents a bitmap image.
void UpdateTexture(SDL_Renderer *renderer)
Updates the underlying SDL_Texture when it already exists.
absl::Status SetPalette(const SnesPalette &palette)
Copy color data from the SnesPalette into the SDL_Palette.
void CreateTexture(SDL_Renderer *renderer)
Creates the underlying SDL_Texture to be displayed.
void Create(int width, int height, int depth, int data_size)
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Main namespace for the application.