36 lines
1.2 KiB
C++
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
|