test(RHI): add rendering state tests for CommandList

- Add tests for SetPrimitiveTopology
- Add tests for SetDepthStencilState
- Add tests for SetBlendState
- Add tests for SetBlendFactor
- OpenGL tests now have 45 test cases
This commit is contained in:
2026-03-17 23:25:40 +08:00
parent 254f794cdc
commit 6fe21710e8

View File

@@ -130,3 +130,63 @@ TEST_F(OpenGLTestFixture, CommandList_EnableDisable_Blending) {
glGetIntegerv(GL_BLEND, &blend);
EXPECT_EQ(blend, 0);
}
TEST_F(OpenGLTestFixture, CommandList_SetPrimitiveTopology) {
OpenGLCommandList cmdList;
cmdList.SetPrimitiveTopology(PrimitiveTopology::TriangleList);
GLenum error = glGetError();
EXPECT_EQ(error, GL_NO_ERROR);
cmdList.SetPrimitiveTopology(PrimitiveTopology::LineList);
error = glGetError();
EXPECT_EQ(error, GL_NO_ERROR);
cmdList.SetPrimitiveTopology(PrimitiveTopology::PointList);
error = glGetError();
EXPECT_EQ(error, GL_NO_ERROR);
}
TEST_F(OpenGLTestFixture, CommandList_SetDepthStencilState) {
OpenGLCommandList cmdList;
DepthStencilState state;
state.depthEnable = true;
state.depthWriteMask = true;
state.depthFunc = ComparisonFunc::Less;
cmdList.SetDepthStencilState(state);
GLint depthTest = 0;
glGetIntegerv(GL_DEPTH_TEST, &depthTest);
EXPECT_EQ(depthTest, 1);
}
TEST_F(OpenGLTestFixture, CommandList_SetBlendState) {
OpenGLCommandList cmdList;
BlendState state;
state.renderTargets[0].blendEnable = true;
state.renderTargets[0].srcBlend = BlendFactor::SrcAlpha;
state.renderTargets[0].dstBlend = BlendFactor::InvSrcAlpha;
cmdList.SetBlendState(state);
GLint blend = 0;
glGetIntegerv(GL_BLEND, &blend);
EXPECT_EQ(blend, 1);
}
TEST_F(OpenGLTestFixture, CommandList_SetBlendFactor) {
OpenGLCommandList cmdList;
float factor[4] = { 0.5f, 0.5f, 0.5f, 1.0f };
cmdList.SetBlendFactor(factor);
GLfloat color[4] = {};
glGetFloatv(GL_BLEND_COLOR, color);
EXPECT_FLOAT_EQ(color[0], 0.5f);
EXPECT_FLOAT_EQ(color[1], 0.5f);
EXPECT_FLOAT_EQ(color[2], 0.5f);
EXPECT_FLOAT_EQ(color[3], 1.0f);
}