Refactor Bitmap class: remove deprecated constructor and update Initialize method signature

This commit is contained in:
scawful
2025-03-20 18:17:45 -04:00
parent d8a783a69a
commit 95df0b5d8b
4 changed files with 6 additions and 14 deletions

View File

@@ -1077,8 +1077,8 @@ absl::Status OverworldEditor::LoadGraphics() {
util::logf("Loading overworld tile16 graphics."); util::logf("Loading overworld tile16 graphics.");
// Loop through the tiles and copy their pixel data into separate vectors // Loop through the tiles and copy their pixel data into separate vectors
for (unsigned int i = 0; i < zelda3::kNumTile16Individual; i++) { for (unsigned int i = 0; i < zelda3::kNumTile16Individual; i++) {
tile16_individual_[i].Create(kTile16Size, kTile16Size, 0x08, std::vector<uint8_t> tile16_data(kTile16Size * kTile16Size);
kTile16Size * kTile16Size); tile16_individual_[i].Create(kTile16Size, kTile16Size, 0x08, tile16_data);
// Copy the pixel data for the current tile into the vector // Copy the pixel data for the current tile into the vector
for (int ty = 0; ty < kTile16Size; ty++) { for (int ty = 0; ty < kTile16Size; ty++) {

View File

@@ -6,9 +6,11 @@
#endif #endif
#include <cstdint> #include <cstdint>
#include <future>
#include <memory> #include <memory>
#include "absl/status/status.h" #include "absl/status/status.h"
#include "app/core/platform/renderer.h"
#include "app/gfx/snes_palette.h" #include "app/gfx/snes_palette.h"
#include "util/macro.h" #include "util/macro.h"
@@ -209,10 +211,6 @@ void Bitmap::SaveSurfaceToFile(std::string_view filename) {
SDL_SaveBMP(surface_.get(), filename.data()); SDL_SaveBMP(surface_.get(), filename.data());
} }
Bitmap::Bitmap(int width, int height, int depth, int data_size) {
Create(width, height, depth, std::vector<uint8_t>(data_size, 0));
}
void Bitmap::Initialize(int width, int height, int depth, void Bitmap::Initialize(int width, int height, int depth,
std::span<uint8_t> &data) { std::span<uint8_t> &data) {
width_ = width; width_ = width;

View File

@@ -67,8 +67,6 @@ void ConvertPngToSurface(const std::vector<uint8_t> &png_data,
class Bitmap { class Bitmap {
public: public:
Bitmap() = default; Bitmap() = default;
Bitmap(int width, int height, int depth, int data_size);
Bitmap(int width, int height, int depth, const std::vector<uint8_t> &data) Bitmap(int width, int height, int depth, const std::vector<uint8_t> &data)
: width_(width), height_(height), depth_(depth), data_(data) { : width_(width), height_(height), depth_(depth), data_(data) {
Create(width, height, depth, data); Create(width, height, depth, data);
@@ -85,6 +83,7 @@ class Bitmap {
std::cerr << "Error applying palette in bitmap constructor." << std::endl; std::cerr << "Error applying palette in bitmap constructor." << std::endl;
} }
} }
void Initialize(int width, int height, int depth, std::span<uint8_t> &data);
#if YAZE_LIB_PNG == 1 #if YAZE_LIB_PNG == 1
std::vector<uint8_t> GetPngData(); std::vector<uint8_t> GetPngData();
@@ -92,11 +91,6 @@ class Bitmap {
void SaveSurfaceToFile(std::string_view filename); void SaveSurfaceToFile(std::string_view filename);
void Initialize(int width, int height, int depth, std::span<uint8_t> &data);
void Create(int width, int height, int depth, int data_size) {
Create(width, height, depth, std::vector<uint8_t>(data_size, 0));
}
void Create(int width, int height, int depth, std::span<uint8_t> data); void Create(int width, int height, int depth, std::span<uint8_t> data);
void Create(int width, int height, int depth, void Create(int width, int height, int depth,
const std::vector<uint8_t> &data); const std::vector<uint8_t> &data);

View File

@@ -44,8 +44,8 @@ absl::StatusOr<Tilesheet> CreateTilesheetFromGraphicsBuffer(
} }
void Tilesheet::Init(int width, int height, TileType tile_type) { void Tilesheet::Init(int width, int height, TileType tile_type) {
bitmap_ = std::make_shared<Bitmap>(width, height, 8, 0x20000);
internal_data_.resize(0x20000); internal_data_.resize(0x20000);
bitmap_ = std::make_shared<Bitmap>(width, height, 8, internal_data_);
tile_type_ = tile_type; tile_type_ = tile_type;
if (tile_type_ == TileType::Tile8) { if (tile_type_ == TileType::Tile8) {
tile_width_ = 8; tile_width_ = 8;