Commit 950a775e by Jamie Madill

Move the pixel pack and unpack related state into separate structs, for easy parameter passing.

TRAC #23840 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
parent 666e2866
...@@ -189,10 +189,6 @@ Context::Context(int clientVersion, const gl::Context *shareContext, rx::Rendere ...@@ -189,10 +189,6 @@ Context::Context(int clientVersion, const gl::Context *shareContext, rx::Rendere
mState.currentProgram = 0; mState.currentProgram = 0;
mCurrentProgramBinary.set(NULL); mCurrentProgramBinary.set(NULL);
mState.packAlignment = 4;
mState.unpackAlignment = 4;
mState.packReverseRowOrder = false;
mCombinedExtensionsString = NULL; mCombinedExtensionsString = NULL;
mRendererString = NULL; mRendererString = NULL;
...@@ -297,8 +293,8 @@ Context::~Context() ...@@ -297,8 +293,8 @@ Context::~Context()
mState.copyReadBuffer.set(NULL); mState.copyReadBuffer.set(NULL);
mState.copyWriteBuffer.set(NULL); mState.copyWriteBuffer.set(NULL);
mState.pixelPackBuffer.set(NULL); mState.pack.pixelBuffer.set(NULL);
mState.pixelUnpackBuffer.set(NULL); mState.unpack.pixelBuffer.set(NULL);
mResourceManager->release(); mResourceManager->release();
} }
...@@ -750,32 +746,32 @@ const void *Context::getVertexAttribPointer(unsigned int attribNum) const ...@@ -750,32 +746,32 @@ const void *Context::getVertexAttribPointer(unsigned int attribNum) const
void Context::setPackAlignment(GLint alignment) void Context::setPackAlignment(GLint alignment)
{ {
mState.packAlignment = alignment; mState.pack.alignment = alignment;
} }
GLint Context::getPackAlignment() const GLint Context::getPackAlignment() const
{ {
return mState.packAlignment; return mState.pack.alignment;
} }
void Context::setUnpackAlignment(GLint alignment) void Context::setUnpackAlignment(GLint alignment)
{ {
mState.unpackAlignment = alignment; mState.unpack.alignment = alignment;
} }
GLint Context::getUnpackAlignment() const GLint Context::getUnpackAlignment() const
{ {
return mState.unpackAlignment; return mState.unpack.alignment;
} }
void Context::setPackReverseRowOrder(bool reverseRowOrder) void Context::setPackReverseRowOrder(bool reverseRowOrder)
{ {
mState.packReverseRowOrder = reverseRowOrder; mState.pack.reverseRowOrder = reverseRowOrder;
} }
bool Context::getPackReverseRowOrder() const bool Context::getPackReverseRowOrder() const
{ {
return mState.packReverseRowOrder; return mState.pack.reverseRowOrder;
} }
GLuint Context::createBuffer() GLuint Context::createBuffer()
...@@ -1180,14 +1176,14 @@ void Context::bindPixelPackBuffer(GLuint buffer) ...@@ -1180,14 +1176,14 @@ void Context::bindPixelPackBuffer(GLuint buffer)
{ {
mResourceManager->checkBufferAllocation(buffer); mResourceManager->checkBufferAllocation(buffer);
mState.pixelPackBuffer.set(getBuffer(buffer)); mState.pack.pixelBuffer.set(getBuffer(buffer));
} }
void Context::bindPixelUnpackBuffer(GLuint buffer) void Context::bindPixelUnpackBuffer(GLuint buffer)
{ {
mResourceManager->checkBufferAllocation(buffer); mResourceManager->checkBufferAllocation(buffer);
mState.pixelUnpackBuffer.set(getBuffer(buffer)); mState.unpack.pixelBuffer.set(getBuffer(buffer));
} }
void Context::useProgram(GLuint program) void Context::useProgram(GLuint program)
...@@ -1480,12 +1476,12 @@ Buffer *Context::getCopyWriteBuffer() ...@@ -1480,12 +1476,12 @@ Buffer *Context::getCopyWriteBuffer()
Buffer *Context::getPixelPackBuffer() Buffer *Context::getPixelPackBuffer()
{ {
return mState.pixelPackBuffer.get(); return mState.pack.pixelBuffer.get();
} }
Buffer *Context::getPixelUnpackBuffer() Buffer *Context::getPixelUnpackBuffer()
{ {
return mState.pixelUnpackBuffer.get(); return mState.unpack.pixelBuffer.get();
} }
Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type) Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)
...@@ -1636,9 +1632,9 @@ bool Context::getIntegerv(GLenum pname, GLint *params) ...@@ -1636,9 +1632,9 @@ bool Context::getIntegerv(GLenum pname, GLint *params)
case GL_RENDERBUFFER_BINDING: *params = mState.renderbuffer.id(); break; case GL_RENDERBUFFER_BINDING: *params = mState.renderbuffer.id(); break;
case GL_VERTEX_ARRAY_BINDING: *params = mState.vertexArray; break; case GL_VERTEX_ARRAY_BINDING: *params = mState.vertexArray; break;
case GL_CURRENT_PROGRAM: *params = mState.currentProgram; break; case GL_CURRENT_PROGRAM: *params = mState.currentProgram; break;
case GL_PACK_ALIGNMENT: *params = mState.packAlignment; break; case GL_PACK_ALIGNMENT: *params = mState.pack.alignment; break;
case GL_PACK_REVERSE_ROW_ORDER_ANGLE: *params = mState.packReverseRowOrder; break; case GL_PACK_REVERSE_ROW_ORDER_ANGLE: *params = mState.pack.reverseRowOrder; break;
case GL_UNPACK_ALIGNMENT: *params = mState.unpackAlignment; break; case GL_UNPACK_ALIGNMENT: *params = mState.unpack.alignment; break;
case GL_GENERATE_MIPMAP_HINT: *params = mState.generateMipmapHint; break; case GL_GENERATE_MIPMAP_HINT: *params = mState.generateMipmapHint; break;
case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: *params = mState.fragmentShaderDerivativeHint; break; case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES: *params = mState.fragmentShaderDerivativeHint; break;
case GL_ACTIVE_TEXTURE: *params = (mState.activeSampler + GL_TEXTURE0); break; case GL_ACTIVE_TEXTURE: *params = (mState.activeSampler + GL_TEXTURE0); break;
...@@ -1892,10 +1888,10 @@ bool Context::getIntegerv(GLenum pname, GLint *params) ...@@ -1892,10 +1888,10 @@ bool Context::getIntegerv(GLenum pname, GLint *params)
*params = mState.copyWriteBuffer.id(); *params = mState.copyWriteBuffer.id();
break; break;
case GL_PIXEL_PACK_BUFFER_BINDING: case GL_PIXEL_PACK_BUFFER_BINDING:
*params = mState.pixelPackBuffer.id(); *params = mState.pack.pixelBuffer.id();
break; break;
case GL_PIXEL_UNPACK_BUFFER_BINDING: case GL_PIXEL_UNPACK_BUFFER_BINDING:
*params = mState.pixelUnpackBuffer.id(); *params = mState.unpack.pixelBuffer.id();
break; break;
case GL_NUM_EXTENSIONS: case GL_NUM_EXTENSIONS:
*params = static_cast<GLint>(getNumExtensions()); *params = static_cast<GLint>(getNumExtensions());
......
...@@ -129,12 +129,8 @@ struct State ...@@ -129,12 +129,8 @@ struct State
BindingPointer<Buffer> copyReadBuffer; BindingPointer<Buffer> copyReadBuffer;
BindingPointer<Buffer> copyWriteBuffer; BindingPointer<Buffer> copyWriteBuffer;
BindingPointer<Buffer> pixelPackBuffer; PixelUnpackState unpack;
BindingPointer<Buffer> pixelUnpackBuffer; PixelPackState pack;
GLint unpackAlignment;
GLint packAlignment;
bool packReverseRowOrder;
}; };
class Context class Context
......
...@@ -10,9 +10,11 @@ ...@@ -10,9 +10,11 @@
#define LIBGLESV2_ANGLETYPES_H_ #define LIBGLESV2_ANGLETYPES_H_
#include "libGLESv2/constants.h" #include "libGLESv2/constants.h"
#include "common/RefCountObject.h"
namespace gl namespace gl
{ {
class Buffer;
enum TextureType enum TextureType
{ {
...@@ -175,6 +177,37 @@ struct ClearParameters ...@@ -175,6 +177,37 @@ struct ClearParameters
Rectangle scissor; Rectangle scissor;
}; };
struct PixelUnpackState
{
BindingPointer<Buffer> pixelBuffer;
GLint alignment;
PixelUnpackState()
: alignment(4)
{}
explicit PixelUnpackState(GLint alignmentIn)
: alignment(alignmentIn)
{}
};
struct PixelPackState
{
BindingPointer<Buffer> pixelBuffer;
GLint alignment;
bool reverseRowOrder;
PixelPackState()
: alignment(4),
reverseRowOrder(false)
{}
explicit PixelPackState(GLint alignmentIn, bool reverseRowOrderIn)
: alignment(alignmentIn),
reverseRowOrder(reverseRowOrderIn)
{}
};
} }
#endif // LIBGLESV2_ANGLETYPES_H_ #endif // LIBGLESV2_ANGLETYPES_H_
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