Add defer_render to LoadAllGraphicsData, overworld test
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user