1#ifndef YAZE_CORE_WINDOW_H_
2#define YAZE_CORE_WINDOW_H_
8#include "absl/status/status.h"
9#include "absl/strings/str_format.h"
43 renderer_ = std::unique_ptr<SDL_Renderer, SDL_Deleter>(
44 SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED));
46 return absl::InternalError(
47 absl::StrFormat(
"SDL_CreateRenderer: %s\n", SDL_GetError()));
49 SDL_SetRenderDrawBlendMode(
renderer_.get(), SDL_BLENDMODE_BLEND);
50 SDL_SetRenderDrawColor(
renderer_.get(), 0x00, 0x00, 0x00, 0x00);
51 return absl::OkStatus();
65 const std::vector<uint8_t> &data,
67 bitmap.
Create(width, height, depth, data);
73 SDL_SetRenderDrawColor(
renderer_.get(), 0x00, 0x00, 0x00, 0x00);
82 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)
auto renderer() -> SDL_Renderer *
Renderer(const Renderer &)=delete
absl::Status CreateRenderer(SDL_Window *window)
void RenderBitmap(gfx::Bitmap *bitmap)
Represents a bitmap image.
void Create(int width, int height, int depth, std::span< uint8_t > data)
Create a bitmap with the given dimensions and data.
void UpdateTexture(SDL_Renderer *renderer)
Updates the underlying SDL_Texture when it already exists.
void SetPalette(const SnesPalette &palette)
Set the palette for the bitmap.
void CreateTexture(SDL_Renderer *renderer)
Creates the underlying SDL_Texture to be displayed.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
absl::Status ShutdownWindow(Window &window)
absl::Status CreateWindow(Window &window, int flags)
absl::Status HandleEvents(Window &window)
Main namespace for the application.
std::shared_ptr< SDL_Window > window_
std::shared_ptr< int16_t > audio_buffer_
SDL_AudioDeviceID audio_device_