Add Phase 2: Texture and Sampler tests (9 tests)
- Add Texture tests: 2DTexture, CubeMap, Bind/Unbind, GenerateMipmap, SetFiltering/SetWrapping - Add Sampler tests: Initialize (default/custom), Bind/Unbind, GetID
This commit is contained in:
@@ -23,6 +23,8 @@ set(TEST_SOURCES
|
||||
test_device.cpp
|
||||
test_buffer.cpp
|
||||
test_fence.cpp
|
||||
test_texture.cpp
|
||||
test_sampler.cpp
|
||||
)
|
||||
|
||||
add_executable(opengl_engine_tests ${TEST_SOURCES})
|
||||
|
||||
60
tests/RHI/OpenGL/test_sampler.cpp
Normal file
60
tests/RHI/OpenGL/test_sampler.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "fixtures/OpenGLTestFixture.h"
|
||||
#include "XCEngine/RHI/OpenGL/OpenGLSampler.h"
|
||||
|
||||
using namespace XCEngine::RHI;
|
||||
|
||||
TEST_F(OpenGLTestFixture, Sampler_Initialize_Default) {
|
||||
OpenGLSampler sampler;
|
||||
SamplerDesc desc;
|
||||
|
||||
bool result = sampler.Initialize(desc);
|
||||
|
||||
ASSERT_TRUE(result);
|
||||
EXPECT_NE(sampler.GetID(), 0u);
|
||||
|
||||
sampler.Shutdown();
|
||||
}
|
||||
|
||||
TEST_F(OpenGLTestFixture, Sampler_Initialize_Custom) {
|
||||
OpenGLSampler sampler;
|
||||
SamplerDesc desc;
|
||||
desc.minFilter = SamplerFilter::LinearMipmapLinear;
|
||||
desc.magFilter = SamplerFilter::Linear;
|
||||
desc.wrapS = SamplerWrapMode::Repeat;
|
||||
desc.wrapT = SamplerWrapMode::Repeat;
|
||||
desc.wrapR = SamplerWrapMode::ClampToEdge;
|
||||
|
||||
bool result = sampler.Initialize(desc);
|
||||
|
||||
ASSERT_TRUE(result);
|
||||
EXPECT_NE(sampler.GetID(), 0u);
|
||||
|
||||
sampler.Shutdown();
|
||||
}
|
||||
|
||||
TEST_F(OpenGLTestFixture, Sampler_Bind_Unbind) {
|
||||
OpenGLSampler sampler;
|
||||
SamplerDesc desc;
|
||||
sampler.Initialize(desc);
|
||||
|
||||
sampler.Bind(0);
|
||||
GLint boundSampler = 0;
|
||||
glGetIntegerv(GL_SAMPLER_BINDING, &boundSampler);
|
||||
EXPECT_EQ(boundSampler, static_cast<GLint>(sampler.GetID()));
|
||||
|
||||
sampler.Unbind(0);
|
||||
glGetIntegerv(GL_SAMPLER_BINDING, &boundSampler);
|
||||
EXPECT_EQ(boundSampler, 0);
|
||||
|
||||
sampler.Shutdown();
|
||||
}
|
||||
|
||||
TEST_F(OpenGLTestFixture, Sampler_GetID_ReturnsValid) {
|
||||
OpenGLSampler sampler;
|
||||
SamplerDesc desc;
|
||||
sampler.Initialize(desc);
|
||||
|
||||
EXPECT_NE(sampler.GetID(), 0u);
|
||||
|
||||
sampler.Shutdown();
|
||||
}
|
||||
73
tests/RHI/OpenGL/test_texture.cpp
Normal file
73
tests/RHI/OpenGL/test_texture.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#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.GetType(), OpenGLTextureType::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.GetType(), OpenGLTextureType::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();
|
||||
}
|
||||
Reference in New Issue
Block a user