{
}
-void PixelBufferAccess::setPixels (const void* buf, int bufSize) const
-{
- DE_ASSERT(bufSize == getDataSize());
- deMemcpy(getDataPtr(), buf, bufSize);
-}
-
Vec4 ConstPixelBufferAccess::getPixel (int x, int y, int z) const
{
DE_ASSERT(de::inBounds(x, 0, m_size.x()));
const IVec3& getPitch (void) const { return m_pitch; }
const void* getDataPtr (void) const { return m_data; }
- int getDataSize (void) const { return m_size.z()*m_pitch.z(); }
-
const void* getPixelPtr (int x, int y, int z = 0) const { return (const deUint8*)m_data + x * m_pitch.x() + y * m_pitch.y() + z * m_pitch.z(); }
Vec4 getPixel (int x, int y, int z = 0) const;
void* getDataPtr (void) const { return m_data; }
void* getPixelPtr (int x, int y, int z = 0) const { return (deUint8*)m_data + x * m_pitch.x() + y * m_pitch.y() + z * m_pitch.z(); }
- void setPixels (const void* buf, int bufSize) const;
void setPixel (const tcu::Vec4& color, int x, int y, int z = 0) const;
void setPixel (const tcu::IVec4& color, int x, int y, int z = 0) const;
void setPixel (const tcu::UVec4& color, int x, int y, int z = 0) const { setPixel(color.cast<int>(), x, y, z); }
DE_ASSERT(false);
}
- tcu::Texture2D readRefrence(readFormat, width, height);
+ tcu::Texture2D readRefrence (readFormat, width, height);
+ const int readDataSize = readRefrence.getWidth() * readRefrence.getHeight() * readFormat.getPixelSize();
+
readRefrence.allocLevel(0);
GLuint pixelBuffer = (GLuint)-1;
GLU_CHECK_CALL(glGenBuffers(1, &pixelBuffer));
GLU_CHECK_CALL(glBindBuffer(GL_PIXEL_PACK_BUFFER, pixelBuffer));
- GLU_CHECK_CALL(glBufferData(GL_PIXEL_PACK_BUFFER, readRefrence.getLevel(0).getDataSize(), NULL, GL_STREAM_READ));
+ GLU_CHECK_CALL(glBufferData(GL_PIXEL_PACK_BUFFER, readDataSize, NULL, GL_STREAM_READ));
GLU_CHECK_CALL(glReadPixels(0, 0, width, height, readPixelsFormat, readPixelsType, 0));
- const deUint8* bufferData = (const deUint8*)glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, readRefrence.getLevel(0).getDataSize(), GL_MAP_READ_BIT);
+ const deUint8* bufferData = (const deUint8*)glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, readDataSize, GL_MAP_READ_BIT);
GLU_CHECK_MSG("glMapBufferRange() failed");
tcu::ConstPixelBufferAccess readResult(readFormat, width, height, 1, bufferData);
{
tcu::TextureLevel result (textureFormat, imageSize, 1);
const PixelBufferAccess resultAccess = result.getAccess();
- DE_ASSERT(resultAccess.getDataSize() == imageSize * textureFormat.getPixelSize());
+ const int dataSize = imageSize * textureFormat.getPixelSize();
const tcu::ScopedLogSection section(glLog.getLog(), "Verification", "Result verification (read texture's buffer with a mapping)");
glLog.glBindBuffer(GL_TEXTURE_BUFFER, bufferGL);
{
- const BufferMemMap bufMap(renderCtx.getFunctions(), GL_TEXTURE_BUFFER, 0, resultAccess.getDataSize(), GL_MAP_READ_BIT);
- deMemcpy(resultAccess.getDataPtr(), bufMap.getPtr(), resultAccess.getDataSize());
+ const BufferMemMap bufMap(renderCtx.getFunctions(), GL_TEXTURE_BUFFER, 0, dataSize, GL_MAP_READ_BIT);
+ deMemcpy(resultAccess.getDataPtr(), bufMap.getPtr(), dataSize);
}
return verifyLayer(glLog.getLog(), resultAccess, 0);