srctree

Johan Norberg parent ce15d86a cefba851
Move is_rendering_enabled to PpuRegisters and add tests

core/include/nes/core/ppu_registers.h added: 31, removed: 13, total 18
@@ -15,6 +15,10 @@ struct PpuRegisters {
uint16_t vram_addr;
uint16_t temp_vram_addr;
bool write_toggle;
 
[[nodiscard]] constexpr bool is_rendering_enabled() const {
return (mask & (1u << 3u)) || (mask & (1u << 4u));
}
};
 
} // namespace n_e_s::core
 
core/src/ppu.cpp added: 31, removed: 13, total 18
@@ -176,12 +176,8 @@ bool Ppu::is_vblank_scanline() const {
scanline() <= kVBlankScanlineEnd;
}
 
bool Ppu::is_rendering_enabled() const {
return (registers_->mask & (1u << 3u)) || (registers_->mask & (1u << 4u));
}
 
bool Ppu::is_rendering_active() const {
return is_rendering_enabled() &&
return registers_->is_rendering_enabled() &&
(is_pre_render_scanline() || is_visible_scanline());
}
 
 
core/src/ppu.h added: 31, removed: 13, total 18
@@ -44,9 +44,6 @@ private:
bool is_post_render_scanline() const;
bool is_vblank_scanline() const;
 
// Rendering is enabled if bit 3 or bit 4 is enabled in the mask register.
bool is_rendering_enabled() const;
 
// Rendering is active if rendering is enabled and the PPU is currently
// in pre render scanline or a visible scanline.
bool is_rendering_active() const;
 
core/test/CMakeLists.txt added: 31, removed: 13, total 18
@@ -32,6 +32,7 @@ add_executable(${PROJECT_NAME}
src/test_opcode.cpp
src/test_ppu.cpp
src/test_ppu_membank.cpp
src/test_ppu_registers.cpp
src/test_rom.cpp
)
 
 
filename was Deleted added: 31, removed: 13, total 18
@@ -0,0 +1,20 @@
#include "nes/core/ppu_registers.h"
 
#include <gtest/gtest.h>
 
using namespace n_e_s::core;
 
namespace {
 
TEST(PpuRegisters, is_rendering_enabled_returns_true_for_bit_three_and_four) {
PpuRegisters r{};
EXPECT_FALSE(r.is_rendering_enabled());
 
r.mask = 0b0000'1000;
EXPECT_TRUE(r.is_rendering_enabled());
 
r.mask = 0b0001'0000;
EXPECT_TRUE(r.is_rendering_enabled());
}
 
} // namespace