Commit 25bbf5d7 by Geoff Lang Committed by Commit Bot

GL: Use ANGLE_GL_TRY when setting pixel pack and unpack state.

Bug: angleproject:3020 Change-Id: Ifd36973d66c850d0d0520d9721ab9e5294489b39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134424Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 1dc0d394
...@@ -280,9 +280,9 @@ angle::Result BlitGL::copyImageToLUMAWorkaroundTexture(const gl::Context *contex ...@@ -280,9 +280,9 @@ angle::Result BlitGL::copyImageToLUMAWorkaroundTexture(const gl::Context *contex
GLenum readType = source->getImplementationColorReadType(context); GLenum readType = source->getImplementationColorReadType(context);
gl::PixelUnpackState unpack; gl::PixelUnpackState unpack;
mStateManager->setPixelUnpackState(unpack); ANGLE_TRY(mStateManager->setPixelUnpackState(context, unpack));
mStateManager->setPixelUnpackBuffer( ANGLE_TRY(mStateManager->setPixelUnpackBuffer(
context->getState().getTargetBuffer(gl::BufferBinding::PixelUnpack)); context, context->getState().getTargetBuffer(gl::BufferBinding::PixelUnpack)));
ANGLE_GL_TRY_ALWAYS_CHECK( ANGLE_GL_TRY_ALWAYS_CHECK(
context, context,
mFunctions->texImage2D(ToGLenum(target), static_cast<GLint>(level), internalFormat, mFunctions->texImage2D(ToGLenum(target), static_cast<GLint>(level), internalFormat,
...@@ -779,8 +779,8 @@ angle::Result BlitGL::copySubTextureCPUReadback(const gl::Context *context, ...@@ -779,8 +779,8 @@ angle::Result BlitGL::copySubTextureCPUReadback(const gl::Context *context,
gl::PixelUnpackState unpack; gl::PixelUnpackState unpack;
unpack.alignment = 1; unpack.alignment = 1;
mStateManager->setPixelUnpackState(unpack); ANGLE_TRY(mStateManager->setPixelUnpackState(context, unpack));
mStateManager->setPixelUnpackBuffer(nullptr); ANGLE_TRY(mStateManager->setPixelUnpackBuffer(context, nullptr));
ANGLE_GL_TRY(context, mFunctions->readPixels(readPixelsArea.x, readPixelsArea.y, ANGLE_GL_TRY(context, mFunctions->readPixels(readPixelsArea.x, readPixelsArea.y,
readPixelsArea.width, readPixelsArea.height, readPixelsArea.width, readPixelsArea.height,
readPixelsFormat, GL_UNSIGNED_BYTE, sourceMemory)); readPixelsFormat, GL_UNSIGNED_BYTE, sourceMemory));
...@@ -797,8 +797,8 @@ angle::Result BlitGL::copySubTextureCPUReadback(const gl::Context *context, ...@@ -797,8 +797,8 @@ angle::Result BlitGL::copySubTextureCPUReadback(const gl::Context *context,
gl::PixelPackState pack; gl::PixelPackState pack;
pack.alignment = 1; pack.alignment = 1;
mStateManager->setPixelPackState(pack); ANGLE_TRY(mStateManager->setPixelPackState(context, pack));
mStateManager->setPixelPackBuffer(nullptr); ANGLE_TRY(mStateManager->setPixelPackBuffer(context, nullptr));
nativegl::TexSubImageFormat texSubImageFormat = nativegl::TexSubImageFormat texSubImageFormat =
nativegl::GetTexSubImageFormat(mFunctions, mFeatures, destFormat, destType); nativegl::GetTexSubImageFormat(mFunctions, mFeatures, destFormat, destType);
...@@ -1181,8 +1181,8 @@ angle::Result BlitGL::orphanScratchTextures(const gl::Context *context) ...@@ -1181,8 +1181,8 @@ angle::Result BlitGL::orphanScratchTextures(const gl::Context *context)
{ {
mStateManager->bindTexture(gl::TextureType::_2D, texture); mStateManager->bindTexture(gl::TextureType::_2D, texture);
gl::PixelUnpackState unpack; gl::PixelUnpackState unpack;
mStateManager->setPixelUnpackState(unpack); ANGLE_TRY(mStateManager->setPixelUnpackState(context, unpack));
mStateManager->setPixelUnpackBuffer(nullptr); ANGLE_TRY(mStateManager->setPixelUnpackBuffer(context, nullptr));
if (mFunctions->isAtLeastGL(gl::Version(3, 3))) if (mFunctions->isAtLeastGL(gl::Version(3, 3)))
{ {
constexpr GLint swizzle[4] = {GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA}; constexpr GLint swizzle[4] = {GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA};
......
...@@ -1468,13 +1468,14 @@ angle::Result FramebufferGL::readPixelsRowByRow(const gl::Context *context, ...@@ -1468,13 +1468,14 @@ angle::Result FramebufferGL::readPixelsRowByRow(const gl::Context *context,
gl::PixelPackState directPack; gl::PixelPackState directPack;
directPack.alignment = 1; directPack.alignment = 1;
stateManager->setPixelPackState(directPack); ANGLE_TRY(stateManager->setPixelPackState(context, directPack));
GLubyte *readbackPixels = workaround.Pixels(); GLubyte *readbackPixels = workaround.Pixels();
readbackPixels += skipBytes; readbackPixels += skipBytes;
for (GLint y = area.y; y < area.y + area.height; ++y) for (GLint y = area.y; y < area.y + area.height; ++y)
{ {
functions->readPixels(area.x, y, area.width, 1, format, type, readbackPixels); ANGLE_GL_TRY(context,
functions->readPixels(area.x, y, area.width, 1, format, type, readbackPixels));
readbackPixels += rowBytes; readbackPixels += rowBytes;
} }
...@@ -1523,21 +1524,21 @@ angle::Result FramebufferGL::readPixelsAllAtOnce(const gl::Context *context, ...@@ -1523,21 +1524,21 @@ angle::Result FramebufferGL::readPixelsAllAtOnce(const gl::Context *context,
GLint height = area.height - readLastRowSeparately; GLint height = area.height - readLastRowSeparately;
if (height > 0) if (height > 0)
{ {
stateManager->setPixelPackState(pack); ANGLE_TRY(stateManager->setPixelPackState(context, pack));
functions->readPixels(area.x, area.y, area.width, height, format, type, ANGLE_GL_TRY(context, functions->readPixels(area.x, area.y, area.width, height, format,
workaround.Pixels()); type, workaround.Pixels()));
} }
if (readLastRowSeparately) if (readLastRowSeparately)
{ {
gl::PixelPackState directPack; gl::PixelPackState directPack;
directPack.alignment = 1; directPack.alignment = 1;
stateManager->setPixelPackState(directPack); ANGLE_TRY(stateManager->setPixelPackState(context, directPack));
GLubyte *readbackPixels = workaround.Pixels(); GLubyte *readbackPixels = workaround.Pixels();
readbackPixels += skipBytes + (area.height - 1) * rowBytes; readbackPixels += skipBytes + (area.height - 1) * rowBytes;
functions->readPixels(area.x, area.y + area.height - 1, area.width, 1, format, type, ANGLE_GL_TRY(context, functions->readPixels(area.x, area.y + area.height - 1, area.width, 1,
readbackPixels); format, type, readbackPixels));
} }
if (workaround.IsEnabled()) if (workaround.IsEnabled())
......
...@@ -473,12 +473,13 @@ void StateManagerGL::bindImageTexture(size_t unit, ...@@ -473,12 +473,13 @@ void StateManagerGL::bindImageTexture(size_t unit,
} }
} }
void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) angle::Result StateManagerGL::setPixelUnpackState(const gl::Context *context,
const gl::PixelUnpackState &unpack)
{ {
if (mUnpackAlignment != unpack.alignment) if (mUnpackAlignment != unpack.alignment)
{ {
mUnpackAlignment = unpack.alignment; mUnpackAlignment = unpack.alignment;
mFunctions->pixelStorei(GL_UNPACK_ALIGNMENT, mUnpackAlignment); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_ALIGNMENT, mUnpackAlignment));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
...@@ -486,7 +487,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) ...@@ -486,7 +487,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack)
if (mUnpackRowLength != unpack.rowLength) if (mUnpackRowLength != unpack.rowLength)
{ {
mUnpackRowLength = unpack.rowLength; mUnpackRowLength = unpack.rowLength;
mFunctions->pixelStorei(GL_UNPACK_ROW_LENGTH, mUnpackRowLength); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_ROW_LENGTH, mUnpackRowLength));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
...@@ -494,7 +495,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) ...@@ -494,7 +495,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack)
if (mUnpackSkipRows != unpack.skipRows) if (mUnpackSkipRows != unpack.skipRows)
{ {
mUnpackSkipRows = unpack.skipRows; mUnpackSkipRows = unpack.skipRows;
mFunctions->pixelStorei(GL_UNPACK_SKIP_ROWS, mUnpackSkipRows); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_SKIP_ROWS, mUnpackSkipRows));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
...@@ -502,7 +503,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) ...@@ -502,7 +503,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack)
if (mUnpackSkipPixels != unpack.skipPixels) if (mUnpackSkipPixels != unpack.skipPixels)
{ {
mUnpackSkipPixels = unpack.skipPixels; mUnpackSkipPixels = unpack.skipPixels;
mFunctions->pixelStorei(GL_UNPACK_SKIP_PIXELS, mUnpackSkipPixels); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_SKIP_PIXELS, mUnpackSkipPixels));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
...@@ -510,7 +511,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) ...@@ -510,7 +511,7 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack)
if (mUnpackImageHeight != unpack.imageHeight) if (mUnpackImageHeight != unpack.imageHeight)
{ {
mUnpackImageHeight = unpack.imageHeight; mUnpackImageHeight = unpack.imageHeight;
mFunctions->pixelStorei(GL_UNPACK_IMAGE_HEIGHT, mUnpackImageHeight); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_IMAGE_HEIGHT, mUnpackImageHeight));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
...@@ -518,13 +519,16 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack) ...@@ -518,13 +519,16 @@ void StateManagerGL::setPixelUnpackState(const gl::PixelUnpackState &unpack)
if (mUnpackSkipImages != unpack.skipImages) if (mUnpackSkipImages != unpack.skipImages)
{ {
mUnpackSkipImages = unpack.skipImages; mUnpackSkipImages = unpack.skipImages;
mFunctions->pixelStorei(GL_UNPACK_SKIP_IMAGES, mUnpackSkipImages); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_UNPACK_SKIP_IMAGES, mUnpackSkipImages));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_UNPACK_STATE);
} }
return angle::Result::Continue;
} }
void StateManagerGL::setPixelUnpackBuffer(const gl::Buffer *pixelBuffer) angle::Result StateManagerGL::setPixelUnpackBuffer(const gl::Context *context,
const gl::Buffer *pixelBuffer)
{ {
GLuint bufferID = 0; GLuint bufferID = 0;
if (pixelBuffer != nullptr) if (pixelBuffer != nullptr)
...@@ -532,14 +536,17 @@ void StateManagerGL::setPixelUnpackBuffer(const gl::Buffer *pixelBuffer) ...@@ -532,14 +536,17 @@ void StateManagerGL::setPixelUnpackBuffer(const gl::Buffer *pixelBuffer)
bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID(); bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID();
} }
bindBuffer(gl::BufferBinding::PixelUnpack, bufferID); bindBuffer(gl::BufferBinding::PixelUnpack, bufferID);
return angle::Result::Continue;
} }
void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack) angle::Result StateManagerGL::setPixelPackState(const gl::Context *context,
const gl::PixelPackState &pack)
{ {
if (mPackAlignment != pack.alignment) if (mPackAlignment != pack.alignment)
{ {
mPackAlignment = pack.alignment; mPackAlignment = pack.alignment;
mFunctions->pixelStorei(GL_PACK_ALIGNMENT, mPackAlignment); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_PACK_ALIGNMENT, mPackAlignment));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE);
} }
...@@ -547,7 +554,7 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack) ...@@ -547,7 +554,7 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack)
if (mPackRowLength != pack.rowLength) if (mPackRowLength != pack.rowLength)
{ {
mPackRowLength = pack.rowLength; mPackRowLength = pack.rowLength;
mFunctions->pixelStorei(GL_PACK_ROW_LENGTH, mPackRowLength); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_PACK_ROW_LENGTH, mPackRowLength));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE);
} }
...@@ -555,7 +562,7 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack) ...@@ -555,7 +562,7 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack)
if (mPackSkipRows != pack.skipRows) if (mPackSkipRows != pack.skipRows)
{ {
mPackSkipRows = pack.skipRows; mPackSkipRows = pack.skipRows;
mFunctions->pixelStorei(GL_PACK_SKIP_ROWS, mPackSkipRows); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_PACK_SKIP_ROWS, mPackSkipRows));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE);
} }
...@@ -563,13 +570,16 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack) ...@@ -563,13 +570,16 @@ void StateManagerGL::setPixelPackState(const gl::PixelPackState &pack)
if (mPackSkipPixels != pack.skipPixels) if (mPackSkipPixels != pack.skipPixels)
{ {
mPackSkipPixels = pack.skipPixels; mPackSkipPixels = pack.skipPixels;
mFunctions->pixelStorei(GL_PACK_SKIP_PIXELS, mPackSkipPixels); ANGLE_GL_TRY(context, mFunctions->pixelStorei(GL_PACK_SKIP_PIXELS, mPackSkipPixels));
mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE); mLocalDirtyBits.set(gl::State::DIRTY_BIT_PACK_STATE);
} }
return angle::Result::Continue;
} }
void StateManagerGL::setPixelPackBuffer(const gl::Buffer *pixelBuffer) angle::Result StateManagerGL::setPixelPackBuffer(const gl::Context *context,
const gl::Buffer *pixelBuffer)
{ {
GLuint bufferID = 0; GLuint bufferID = 0;
if (pixelBuffer != nullptr) if (pixelBuffer != nullptr)
...@@ -577,6 +587,8 @@ void StateManagerGL::setPixelPackBuffer(const gl::Buffer *pixelBuffer) ...@@ -577,6 +587,8 @@ void StateManagerGL::setPixelPackBuffer(const gl::Buffer *pixelBuffer)
bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID(); bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID();
} }
bindBuffer(gl::BufferBinding::PixelPack, bufferID); bindBuffer(gl::BufferBinding::PixelPack, bufferID);
return angle::Result::Continue;
} }
void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer) void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer)
...@@ -1865,16 +1877,18 @@ angle::Result StateManagerGL::syncState(const gl::Context *context, ...@@ -1865,16 +1877,18 @@ angle::Result StateManagerGL::syncState(const gl::Context *context,
setClearStencil(state.getStencilClearValue()); setClearStencil(state.getStencilClearValue());
break; break;
case gl::State::DIRTY_BIT_UNPACK_STATE: case gl::State::DIRTY_BIT_UNPACK_STATE:
setPixelUnpackState(state.getUnpackState()); ANGLE_TRY(setPixelUnpackState(context, state.getUnpackState()));
break; break;
case gl::State::DIRTY_BIT_UNPACK_BUFFER_BINDING: case gl::State::DIRTY_BIT_UNPACK_BUFFER_BINDING:
setPixelUnpackBuffer(state.getTargetBuffer(gl::BufferBinding::PixelUnpack)); ANGLE_TRY(setPixelUnpackBuffer(
context, state.getTargetBuffer(gl::BufferBinding::PixelUnpack)));
break; break;
case gl::State::DIRTY_BIT_PACK_STATE: case gl::State::DIRTY_BIT_PACK_STATE:
setPixelPackState(state.getPackState()); ANGLE_TRY(setPixelPackState(context, state.getPackState()));
break; break;
case gl::State::DIRTY_BIT_PACK_BUFFER_BINDING: case gl::State::DIRTY_BIT_PACK_BUFFER_BINDING:
setPixelPackBuffer(state.getTargetBuffer(gl::BufferBinding::PixelPack)); ANGLE_TRY(setPixelPackBuffer(context,
state.getTargetBuffer(gl::BufferBinding::PixelPack)));
break; break;
case gl::State::DIRTY_BIT_DITHER_ENABLED: case gl::State::DIRTY_BIT_DITHER_ENABLED:
setDitherEnabled(state.isDitherEnabled()); setDitherEnabled(state.isDitherEnabled());
......
...@@ -126,10 +126,11 @@ class StateManagerGL final : angle::NonCopyable ...@@ -126,10 +126,11 @@ class StateManagerGL final : angle::NonCopyable
void setClearDepth(float clearDepth); void setClearDepth(float clearDepth);
void setClearStencil(GLint clearStencil); void setClearStencil(GLint clearStencil);
void setPixelUnpackState(const gl::PixelUnpackState &unpack); angle::Result setPixelUnpackState(const gl::Context *context,
void setPixelUnpackBuffer(const gl::Buffer *pixelBuffer); const gl::PixelUnpackState &unpack);
void setPixelPackState(const gl::PixelPackState &pack); angle::Result setPixelUnpackBuffer(const gl::Context *context, const gl::Buffer *pixelBuffer);
void setPixelPackBuffer(const gl::Buffer *pixelBuffer); angle::Result setPixelPackState(const gl::Context *context, const gl::PixelPackState &pack);
angle::Result setPixelPackBuffer(const gl::Context *context, const gl::Buffer *pixelBuffer);
void setFramebufferSRGBEnabled(const gl::Context *context, bool enabled); void setFramebufferSRGBEnabled(const gl::Context *context, bool enabled);
void setFramebufferSRGBEnabledForFramebuffer(const gl::Context *context, void setFramebufferSRGBEnabledForFramebuffer(const gl::Context *context,
......
...@@ -280,7 +280,7 @@ angle::Result TextureGL::reserveTexImageToBeFilled(const gl::Context *context, ...@@ -280,7 +280,7 @@ angle::Result TextureGL::reserveTexImageToBeFilled(const gl::Context *context,
GLenum type) GLenum type)
{ {
StateManagerGL *stateManager = GetStateManagerGL(context); StateManagerGL *stateManager = GetStateManagerGL(context);
stateManager->setPixelUnpackBuffer(nullptr); ANGLE_TRY(stateManager->setPixelUnpackBuffer(context, nullptr));
ANGLE_TRY(setImageHelper(context, target, level, internalFormat, size, format, type, nullptr)); ANGLE_TRY(setImageHelper(context, target, level, internalFormat, size, format, type, nullptr));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -372,8 +372,8 @@ angle::Result TextureGL::setSubImageRowByRowWorkaround(const gl::Context *contex ...@@ -372,8 +372,8 @@ angle::Result TextureGL::setSubImageRowByRowWorkaround(const gl::Context *contex
gl::PixelUnpackState directUnpack; gl::PixelUnpackState directUnpack;
directUnpack.alignment = 1; directUnpack.alignment = 1;
stateManager->setPixelUnpackState(directUnpack); ANGLE_TRY(stateManager->setPixelUnpackState(context, directUnpack));
stateManager->setPixelUnpackBuffer(unpackBuffer); ANGLE_TRY(stateManager->setPixelUnpackBuffer(context, unpackBuffer));
const gl::InternalFormat &glFormat = gl::GetInternalFormatInfo(format, type); const gl::InternalFormat &glFormat = gl::GetInternalFormatInfo(format, type);
GLuint rowBytes = 0; GLuint rowBytes = 0;
...@@ -446,8 +446,8 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context ...@@ -446,8 +446,8 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context
ANGLE_CHECK_GL_MATH(contextGL, glFormat.computeSkipBytes(type, rowBytes, imageBytes, unpack, ANGLE_CHECK_GL_MATH(contextGL, glFormat.computeSkipBytes(type, rowBytes, imageBytes, unpack,
useTexImage3D, &skipBytes)); useTexImage3D, &skipBytes));
stateManager->setPixelUnpackState(unpack); ANGLE_TRY(stateManager->setPixelUnpackState(context, unpack));
stateManager->setPixelUnpackBuffer(unpackBuffer); ANGLE_TRY(stateManager->setPixelUnpackBuffer(context, unpackBuffer));
gl::PixelUnpackState directUnpack; gl::PixelUnpackState directUnpack;
directUnpack.alignment = 1; directUnpack.alignment = 1;
...@@ -477,7 +477,7 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context ...@@ -477,7 +477,7 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context
} }
// Upload the last row of the last slice "manually" // Upload the last row of the last slice "manually"
stateManager->setPixelUnpackState(directUnpack); ANGLE_TRY(stateManager->setPixelUnpackState(context, directUnpack));
GLint lastRowOffset = GLint lastRowOffset =
skipBytes + (area.depth - 1) * imageBytes + (area.height - 1) * rowBytes; skipBytes + (area.depth - 1) * imageBytes + (area.height - 1) * rowBytes;
...@@ -500,7 +500,7 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context ...@@ -500,7 +500,7 @@ angle::Result TextureGL::setSubImagePaddingWorkaround(const gl::Context *context
} }
// Upload the last row "manually" // Upload the last row "manually"
stateManager->setPixelUnpackState(directUnpack); ANGLE_TRY(stateManager->setPixelUnpackState(context, directUnpack));
GLint lastRowOffset = skipBytes + (area.height - 1) * rowBytes; GLint lastRowOffset = skipBytes + (area.height - 1) * rowBytes;
const GLubyte *lastRowPixels = pixels + lastRowOffset; const GLubyte *lastRowPixels = pixels + lastRowOffset;
...@@ -651,8 +651,8 @@ angle::Result TextureGL::copyImage(const gl::Context *context, ...@@ -651,8 +651,8 @@ angle::Result TextureGL::copyImage(const gl::Context *context,
gl::PixelUnpackState unpack; gl::PixelUnpackState unpack;
unpack.alignment = 1; unpack.alignment = 1;
stateManager->setPixelUnpackState(unpack); ANGLE_TRY(stateManager->setPixelUnpackState(context, unpack));
stateManager->setPixelUnpackBuffer(nullptr); ANGLE_TRY(stateManager->setPixelUnpackBuffer(context, nullptr));
ANGLE_GL_TRY_ALWAYS_CHECK( ANGLE_GL_TRY_ALWAYS_CHECK(
context, functions->texImage2D(ToGLenum(target), static_cast<GLint>(level), context, functions->texImage2D(ToGLenum(target), static_cast<GLint>(level),
...@@ -1937,7 +1937,7 @@ angle::Result TextureGL::initializeContents(const gl::Context *context, ...@@ -1937,7 +1937,7 @@ angle::Result TextureGL::initializeContents(const gl::Context *context,
gl::PixelUnpackState unpackState; gl::PixelUnpackState unpackState;
unpackState.alignment = 1; unpackState.alignment = 1;
stateManager->setPixelUnpackState(unpackState); ANGLE_TRY(stateManager->setPixelUnpackState(context, unpackState));
GLuint prevUnpackBuffer = stateManager->getBufferID(gl::BufferBinding::PixelUnpack); GLuint prevUnpackBuffer = stateManager->getBufferID(gl::BufferBinding::PixelUnpack);
stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0); stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0);
...@@ -2009,7 +2009,7 @@ angle::Result TextureGL::initializeContents(const gl::Context *context, ...@@ -2009,7 +2009,7 @@ angle::Result TextureGL::initializeContents(const gl::Context *context,
// Reset the pixel unpack state. Because this call is made after synchronizing dirty bits in a // Reset the pixel unpack state. Because this call is made after synchronizing dirty bits in a
// glTexImage call, we need to make sure that the texture data to be uploaded later has the // glTexImage call, we need to make sure that the texture data to be uploaded later has the
// expected unpack state. // expected unpack state.
stateManager->setPixelUnpackState(context->getState().getUnpackState()); ANGLE_TRY(stateManager->setPixelUnpackState(context, context->getState().getUnpackState()));
stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, prevUnpackBuffer); stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, prevUnpackBuffer);
return angle::Result::Continue; return angle::Result::Continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment