Files
XCEngine/tests/RHI/OpenGL/test_texture.cpp
ssdfasd 0a2f8050e5 fix(RHI): 修复 OpenGL 测试接口不匹配问题
- 修复 RHIDeviceInfo 缺少 majorVersion/minorVersion
- 修复 OpenGLTexture 使用 GetTextureType 替代 GetType
- 修复 OpenGLSampler 使用 OpenGLSamplerDesc
- 修复 BlendFactor::OneMinusSrcAlpha -> InvSrcAlpha
- 修复 OpenGLRenderTargetViewDesc/OpenGLDepthStencilViewDesc 重定义问题
- 恢复 OpenGL 测试文件到 CMakeLists
2026-03-17 19:43:20 +08:00

74 lines
1.9 KiB
C++

#include "fixtures/OpenGLTestFixture.h"
#include "XCEngine/RHI/OpenGL/OpenGLTexture.h"
using namespace XCEngine::RHI;
TEST_F(OpenGLTestFixture, Texture_Initialize_2DTexture) {
OpenGLTexture texture;
bool result = texture.Initialize2D(64, 64, 4, nullptr, false);
ASSERT_TRUE(result);
EXPECT_NE(texture.GetID(), 0u);
EXPECT_EQ(texture.GetWidth(), 64);
EXPECT_EQ(texture.GetHeight(), 64);
EXPECT_EQ(texture.GetTextureType(), TextureType::Texture2D);
texture.Shutdown();
}
TEST_F(OpenGLTestFixture, Texture_Initialize_CubeMap) {
OpenGLTexture texture;
bool result = texture.InitializeCubeMap(64, 1, OpenGLFormat::RGBA8, nullptr);
ASSERT_TRUE(result);
EXPECT_NE(texture.GetID(), 0u);
EXPECT_EQ(texture.GetWidth(), 64);
EXPECT_EQ(texture.GetHeight(), 64);
EXPECT_EQ(texture.GetTextureType(), TextureType::TextureCube);
texture.Shutdown();
}
TEST_F(OpenGLTestFixture, Texture_Bind_Unbind) {
OpenGLTexture texture;
texture.Initialize2D(64, 64, 4, nullptr, false);
texture.Bind(0);
GLint boundTexture = 0;
glGetIntegerv(GL_TEXTURE_BINDING_2D, &boundTexture);
EXPECT_EQ(boundTexture, static_cast<GLint>(texture.GetID()));
texture.Unbind();
glGetIntegerv(GL_TEXTURE_BINDING_2D, &boundTexture);
EXPECT_EQ(boundTexture, 0);
texture.Shutdown();
}
TEST_F(OpenGLTestFixture, Texture_GenerateMipmap) {
OpenGLTexture texture;
texture.Initialize2D(64, 64, 4, nullptr, false);
texture.GenerateMipmap();
GLenum error = glGetError();
EXPECT_EQ(error, GL_NO_ERROR);
texture.Shutdown();
}
TEST_F(OpenGLTestFixture, Texture_SetFiltering_SetWrapping) {
OpenGLTexture texture;
texture.Initialize2D(64, 64, 4, nullptr, false);
texture.SetFiltering(GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR);
texture.SetWrapping(GL_REPEAT, GL_REPEAT, GL_REPEAT);
GLenum error = glGetError();
EXPECT_EQ(error, GL_NO_ERROR);
texture.Shutdown();
}