Files
Renderive/render_2D/tests/render_2D_Integration_Tests.cpp
T
2026-08-17 14:28:19 +08:00

36 lines
1.2 KiB
C++

#include "render_2D/scene/Render_Scene_2D.h"
#include <gtest/gtest.h>
#include <memory>
namespace renderive {
namespace {
TEST(RenderScene2DIntegration, BuilderStatePublishesAtFrameBoundary) {
Render_Scene_2D::State initial;
initial.viewport = {64, 32};
auto scene = Render_Scene_2D::Builder{initial}.build(
std::make_shared<Manual_Render_Scene_2D_Strategy>());
scene->activate_view();
ASSERT_EQ(scene->render_frame(true).value(), Plot_Render_Status::rendered);
ASSERT_EQ(scene->wait_for_render(), Scene_Render_Result::none);
EXPECT_EQ(scene->observer().state, initial);
}
TEST(RenderScene2DIntegration, FrameImageMatchesConfiguredViewport) {
Render_Scene_2D::State state;
state.viewport = {48, 27};
auto scene = Render_Scene_2D::Builder{state}.build(
std::make_shared<Low_Latency_Render_Scene_2D_Strategy>());
scene->activate_view();
ASSERT_EQ(scene->render_frame(true).value(), Plot_Render_Status::rendered);
ASSERT_EQ(scene->wait_for_render(), Scene_Render_Result::none);
scene->with_frame([](Image_View image) {
EXPECT_EQ(image.width, 48);
EXPECT_EQ(image.height, 27);
EXPECT_NE(image.data, nullptr);
});
}
} // namespace
} // namespace renderive