Add render backend capability info ABI

This commit is contained in:
2026-07-13 10:19:29 +08:00
parent 38c5afb13d
commit 5fc8232671
8 changed files with 97 additions and 1 deletions
@@ -10,6 +10,15 @@ TEST(DynamicRenderBackend, LoadsExperimentalOpenGLBackend)
olive::DynamicRenderer renderer(QStringLiteral("opengl"));
ASSERT_TRUE(renderer.Load());
EXPECT_EQ(renderer.OpenGLContext(), nullptr);
OakRenderBackendInfo info = {};
ASSERT_TRUE(renderer.GetBackendInfo(&info));
EXPECT_EQ(info.abi_version, 1U);
EXPECT_EQ(info.kind, OAK_RENDER_BACKEND_OPENGL);
EXPECT_STREQ(info.name, "opengl");
EXPECT_TRUE(info.capabilities & OAK_RENDER_BACKEND_CAP_TEXTURES);
EXPECT_TRUE(info.capabilities & OAK_RENDER_BACKEND_CAP_SHADERS);
EXPECT_TRUE(info.capabilities & OAK_RENDER_BACKEND_CAP_BLIT);
EXPECT_TRUE(info.capabilities & OAK_RENDER_BACKEND_CAP_READBACK);
#endif
}
@@ -20,6 +29,11 @@ TEST(DynamicRenderBackend, FallsBackWhenExperimentalVulkanUnavailable)
#else
olive::DynamicRenderer renderer(QStringLiteral("vulkan"));
ASSERT_TRUE(renderer.Load());
EXPECT_EQ(renderer.backend_name(), QStringLiteral("opengl"));
EXPECT_EQ(renderer.OpenGLContext(), nullptr);
OakRenderBackendInfo info = {};
ASSERT_TRUE(renderer.GetBackendInfo(&info));
EXPECT_EQ(info.kind, OAK_RENDER_BACKEND_OPENGL);
EXPECT_STREQ(info.name, "opengl");
#endif
}