#include "ANGLETest.h"
+// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
+typedef ::testing::Types<TFT<Gles::Three, Rend::D3D11>> TestFixtureTypes;
+TYPED_TEST_CASE(ReadPixelsTest, TestFixtureTypes);
+
+template<typename T>
class ReadPixelsTest : public ANGLETest
{
protected:
- ReadPixelsTest()
+ ReadPixelsTest() : ANGLETest(T::GetGlesMajorVersion(), T::GetRequestedRenderer())
{
- setClientVersion(3);
setWindowWidth(32);
setWindowHeight(32);
setConfigRedBits(8);
GLuint mPositionVBO;
};
-TEST_F(ReadPixelsTest, OutOfBounds)
+TYPED_TEST(ReadPixelsTest, OutOfBounds)
{
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
GLint offset = 16;
std::vector<GLubyte> pixels((pixelsWidth + offset) * (pixelsHeight + offset) * 4);
- glReadPixels(-offset, -offset, pixelsWidth + offset, pixelsHeight + offset, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data());
+ glReadPixels(-offset, -offset, pixelsWidth + offset, pixelsHeight + offset, GL_RGBA, GL_UNSIGNED_BYTE, &pixels[0]);
EXPECT_GL_NO_ERROR();
for (int y = pixelsHeight / 2; y < pixelsHeight; y++)
{
for (int x = pixelsWidth / 2; x < pixelsWidth; x++)
{
- const GLubyte* pixel = pixels.data() + ((y * (pixelsWidth + offset) + x) * 4);
+ const GLubyte* pixel = &pixels[0] + ((y * (pixelsWidth + offset) + x) * 4);
unsigned int r = static_cast<unsigned int>(pixel[0]);
unsigned int g = static_cast<unsigned int>(pixel[1]);
unsigned int b = static_cast<unsigned int>(pixel[2]);
}
}
-TEST_F(ReadPixelsTest, PBOWithOtherTarget)
+TYPED_TEST(ReadPixelsTest, PBOWithOtherTarget)
{
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
EXPECT_GL_NO_ERROR();
}
-TEST_F(ReadPixelsTest, PBOWithExistingData)
+TYPED_TEST(ReadPixelsTest, PBOWithExistingData)
{
// Clear backbuffer to red
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
EXPECT_GL_NO_ERROR();
}
-TEST_F(ReadPixelsTest, PBOAndSubData)
+TYPED_TEST(ReadPixelsTest, PBOAndSubData)
{
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
EXPECT_GL_NO_ERROR();
}
-TEST_F(ReadPixelsTest, PBOAndSubDataOffset)
+TYPED_TEST(ReadPixelsTest, PBOAndSubDataOffset)
{
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
EXPECT_GL_NO_ERROR();
}
-TEST_F(ReadPixelsTest, DrawWithPBO)
+TYPED_TEST(ReadPixelsTest, DrawWithPBO)
{
unsigned char data[4] = { 1, 2, 3, 4 };
EXPECT_EQ(4, data[3]);
}
-TEST_F(ReadPixelsTest, MultisampledPBO)
+TYPED_TEST(ReadPixelsTest, MultisampledPBO)
{
GLuint fbo;
glGenFramebuffers(1, &fbo);