SDL_Texture streaming in ROM, dungeon housekeeping
This commit is contained in:
@@ -203,8 +203,8 @@ absl::StatusOr<Bytes> ROM::Load2BppGraphics() {
|
||||
}
|
||||
|
||||
absl::Status ROM::LoadLinkGraphics() {
|
||||
const auto link_gfx_offset = 0x80000;
|
||||
const auto link_gfx_length = 0x500;
|
||||
const auto link_gfx_offset = 81920; // $10:8000
|
||||
const auto link_gfx_length = 0x800;
|
||||
|
||||
// Load Links graphics from the ROM
|
||||
for (int i = 0; i < 14; i++) {
|
||||
|
||||
@@ -475,14 +475,27 @@ class ROM : public core::ExperimentFlags {
|
||||
renderer_ = renderer;
|
||||
}
|
||||
|
||||
void RenderBitmap(gfx::Bitmap* bitmap) const {
|
||||
bitmap->CreateTexture(renderer_);
|
||||
void RenderBitmap(gfx::Bitmap* bitmap) {
|
||||
if (flags()->kLoadTexturesAsStreaming) {
|
||||
// bitmaps_to_create_.emplace(bitmap);
|
||||
bitmap->CreateTexture(renderer_.get());
|
||||
} else {
|
||||
bitmap->CreateTexture(renderer_);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateBitmap(gfx::Bitmap* bitmap) const {
|
||||
bitmap->UpdateTexture(renderer_);
|
||||
void UpdateBitmap(gfx::Bitmap* bitmap) {
|
||||
if (flags()->kLoadTexturesAsStreaming) {
|
||||
// bitmaps_to_render_.emplace(bitmap);
|
||||
bitmap->UpdateTexture(renderer_.get());
|
||||
} else {
|
||||
bitmap->UpdateTexture(renderer_);
|
||||
}
|
||||
}
|
||||
|
||||
std::stack<gfx::Bitmap*> bitmaps_to_create_;
|
||||
std::stack<gfx::Bitmap*> bitmaps_to_render_;
|
||||
|
||||
auto bitmap_manager() { return graphics_manager_; }
|
||||
|
||||
std::vector<std::vector<uint8_t>> main_blockset_ids;
|
||||
@@ -604,7 +617,7 @@ class SharedROM {
|
||||
return rom;
|
||||
}
|
||||
|
||||
private:
|
||||
// private:
|
||||
static std::shared_ptr<ROM> shared_rom_;
|
||||
};
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ class DungeonObjectRenderer : public SharedROM {
|
||||
emu::MemoryImpl memory_;
|
||||
emu::ClockImpl clock_;
|
||||
emu::CPU cpu{memory_, clock_};
|
||||
emu::PPU ppu{memory_, clock_};
|
||||
emu::Ppu ppu{memory_, clock_};
|
||||
gfx::Bitmap bitmap_;
|
||||
PseudoVram vram_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user