Add defer_render to LoadAllGraphicsData, overworld test

This commit is contained in:
scawful
2024-08-29 22:45:50 -04:00
parent 5924461208
commit 52c844eb98
3 changed files with 12 additions and 4 deletions

View File

@@ -80,7 +80,7 @@ absl::Status Rom::LoadLinkGraphics() {
return absl::OkStatus(); return absl::OkStatus();
} }
absl::Status Rom::LoadAllGraphicsData() { absl::Status Rom::LoadAllGraphicsData(bool defer_render) {
std::vector<uint8_t> sheet; std::vector<uint8_t> sheet;
bool bpp3 = false; bool bpp3 = false;
@@ -121,7 +121,10 @@ absl::Status Rom::LoadAllGraphicsData() {
palette_groups_.dungeon_main[0], 0)); palette_groups_.dungeon_main[0], 0));
} }
} }
graphics_sheets_[i].CreateTexture(Renderer::GetInstance().renderer());
if (!defer_render) {
graphics_sheets_[i].CreateTexture(Renderer::GetInstance().renderer());
}
for (int j = 0; j < graphics_sheets_[i].size(); ++j) { for (int j = 0; j < graphics_sheets_[i].size(); ++j) {
graphics_buffer_.push_back(graphics_sheets_[i].at(j)); graphics_buffer_.push_back(graphics_sheets_[i].at(j));

View File

@@ -177,7 +177,7 @@ class Rom : public core::ExperimentFlags {
* | 218-222 | Compressed 2bpp | 0x800 chars | Decompressed each | * | 218-222 | Compressed 2bpp | 0x800 chars | Decompressed each |
* *
*/ */
absl::Status LoadAllGraphicsData(); absl::Status LoadAllGraphicsData(bool defer_render = false);
/** /**
* Load Rom data from a file. * Load Rom data from a file.

View File

@@ -4,6 +4,7 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include "app/rom.h" #include "app/rom.h"
#include "app/zelda3/overworld/overworld.h"
#include "app/zelda3/overworld/overworld_map.h" #include "app/zelda3/overworld/overworld_map.h"
#include "test/core/testing.h" #include "test/core/testing.h"
@@ -39,13 +40,17 @@ TEST_F(OverworldTest, OverworldLoadNoRomDataError) {
TEST_F(OverworldTest, OverworldLoadRomDataOk) { TEST_F(OverworldTest, OverworldLoadRomDataOk) {
// Arrange // Arrange
EXPECT_OK(rom()->LoadFromFile("zelda3.sfc")); EXPECT_OK(rom()->LoadFromFile("zelda3.sfc"));
EXPECT_OK(rom()->LoadAllGraphicsData()); EXPECT_OK(rom()->LoadAllGraphicsData(/*defer_render=*/true));
// Act // Act
auto status = overworld_.Load(*rom()); auto status = overworld_.Load(*rom());
// Assert // Assert
EXPECT_TRUE(status.ok()); EXPECT_TRUE(status.ok());
EXPECT_EQ(overworld_.overworld_maps().size(),
app::zelda3::overworld::kNumOverworldMaps);
EXPECT_EQ(overworld_.tiles16().size(),
app::zelda3::overworld::kNumTile16Individual);
} }
} // namespace zelda3 } // namespace zelda3