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();
}
absl::Status Rom::LoadAllGraphicsData() {
absl::Status Rom::LoadAllGraphicsData(bool defer_render) {
std::vector<uint8_t> sheet;
bool bpp3 = false;
@@ -121,7 +121,10 @@ absl::Status Rom::LoadAllGraphicsData() {
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) {
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 |
*
*/
absl::Status LoadAllGraphicsData();
absl::Status LoadAllGraphicsData(bool defer_render = false);
/**
* Load Rom data from a file.

View File

@@ -4,6 +4,7 @@
#include <gtest/gtest.h>
#include "app/rom.h"
#include "app/zelda3/overworld/overworld.h"
#include "app/zelda3/overworld/overworld_map.h"
#include "test/core/testing.h"
@@ -39,13 +40,17 @@ TEST_F(OverworldTest, OverworldLoadNoRomDataError) {
TEST_F(OverworldTest, OverworldLoadRomDataOk) {
// Arrange
EXPECT_OK(rom()->LoadFromFile("zelda3.sfc"));
EXPECT_OK(rom()->LoadAllGraphicsData());
EXPECT_OK(rom()->LoadAllGraphicsData(/*defer_render=*/true));
// Act
auto status = overworld_.Load(*rom());
// Assert
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