Commit 7dfbee61 by Nicolas Capens

Update validation for GL_COMBINE.

Bug 21278131 Change-Id: I9542d396cb7ea10b8ce2b5ef2050606e68cdffb9 Reviewed-on: https://swiftshader-review.googlesource.com/3233Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent 1a5d6ad4
...@@ -2023,6 +2023,16 @@ void Context::setTextureEnvMode(GLenum texEnvMode) ...@@ -2023,6 +2023,16 @@ void Context::setTextureEnvMode(GLenum texEnvMode)
mState.textureUnit[mState.activeSampler].environmentMode = texEnvMode; mState.textureUnit[mState.activeSampler].environmentMode = texEnvMode;
} }
void Context::setCombineRGB(GLenum combineRGB)
{
mState.textureUnit[mState.activeSampler].combineRGB = combineRGB;
}
void Context::setCombineAlpha(GLenum combineAlpha)
{
mState.textureUnit[mState.activeSampler].combineAlpha = combineAlpha;
}
void Context::applyTexture(int index, Texture *baseTexture) void Context::applyTexture(int index, Texture *baseTexture)
{ {
sw::Resource *resource = 0; sw::Resource *resource = 0;
......
...@@ -351,6 +351,8 @@ public: ...@@ -351,6 +351,8 @@ public:
unsigned int getActiveTexture() const; unsigned int getActiveTexture() const;
void setTextureEnvMode(GLenum texEnvMode); void setTextureEnvMode(GLenum texEnvMode);
void setCombineRGB(GLenum combineRGB);
void setCombineAlpha(GLenum combineAlpha);
void setLineWidth(GLfloat width); void setLineWidth(GLfloat width);
......
...@@ -648,7 +648,7 @@ void ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ...@@ -648,7 +648,7 @@ void ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer
} }
void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
GLint border, GLsizei imageSize, const GLvoid* data) GLint border, GLsizei imageSize, const GLvoid* data)
{ {
TRACE("(GLenum target = 0x%X, GLint level = %d, GLenum internalformat = 0x%X, GLsizei width = %d, " TRACE("(GLenum target = 0x%X, GLint level = %d, GLenum internalformat = 0x%X, GLsizei width = %d, "
"GLsizei height = %d, GLint border = %d, GLsizei imageSize = %d, const GLvoid* data = %p)", "GLsizei height = %d, GLint border = %d, GLsizei imageSize = %d, const GLvoid* data = %p)",
...@@ -727,7 +727,7 @@ void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLs ...@@ -727,7 +727,7 @@ void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLs
} }
void CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, void CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
GLenum format, GLsizei imageSize, const GLvoid* data) GLenum format, GLsizei imageSize, const GLvoid* data)
{ {
TRACE("(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, " TRACE("(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, "
"GLsizei width = %d, GLsizei height = %d, GLenum format = 0x%X, " "GLsizei width = %d, GLsizei height = %d, GLenum format = 0x%X, "
...@@ -3141,36 +3141,35 @@ void TexEnvi(GLenum target, GLenum pname, GLint param) ...@@ -3141,36 +3141,35 @@ void TexEnvi(GLenum target, GLenum pname, GLint param)
switch((GLenum)param) switch((GLenum)param)
{ {
case GL_REPLACE: case GL_REPLACE:
UNIMPLEMENTED();
break;
case GL_MODULATE: case GL_MODULATE:
UNIMPLEMENTED();
break;
case GL_ADD: case GL_ADD:
context->setTextureEnvMode((GLenum)param);
break;
case GL_ADD_SIGNED: case GL_ADD_SIGNED:
UNIMPLEMENTED();
break;
case GL_INTERPOLATE: case GL_INTERPOLATE:
UNIMPLEMENTED();
break;
case GL_SUBTRACT: case GL_SUBTRACT:
UNIMPLEMENTED();
break;
case GL_DOT3_RGB: case GL_DOT3_RGB:
UNIMPLEMENTED();
break;
case GL_DOT3_RGBA: case GL_DOT3_RGBA:
UNIMPLEMENTED();
break; break;
default: default:
error(GL_INVALID_ENUM); error(GL_INVALID_ENUM);
} }
context->setCombineRGB((GLenum)param);
break; break;
case GL_COMBINE_ALPHA: case GL_COMBINE_ALPHA:
UNIMPLEMENTED(); switch((GLenum)param)
{
case GL_REPLACE:
case GL_MODULATE:
case GL_ADD:
case GL_ADD_SIGNED:
case GL_INTERPOLATE:
case GL_SUBTRACT:
break;
default:
error(GL_INVALID_ENUM);
}
context->setCombineAlpha((GLenum)param);
break; break;
case GL_RGB_SCALE: case GL_RGB_SCALE:
UNIMPLEMENTED(); UNIMPLEMENTED();
...@@ -3178,6 +3177,24 @@ void TexEnvi(GLenum target, GLenum pname, GLint param) ...@@ -3178,6 +3177,24 @@ void TexEnvi(GLenum target, GLenum pname, GLint param)
case GL_ALPHA_SCALE: case GL_ALPHA_SCALE:
UNIMPLEMENTED(); UNIMPLEMENTED();
break; break;
case GL_OPERAND0_RGB:
UNIMPLEMENTED();
break;
case GL_OPERAND1_RGB:
UNIMPLEMENTED();
break;
case GL_OPERAND2_RGB:
UNIMPLEMENTED();
break;
case GL_OPERAND0_ALPHA:
UNIMPLEMENTED();
break;
case GL_OPERAND1_ALPHA:
UNIMPLEMENTED();
break;
case GL_OPERAND2_ALPHA:
UNIMPLEMENTED();
break;
default: default:
return error(GL_INVALID_ENUM); return error(GL_INVALID_ENUM);
} }
...@@ -3204,7 +3221,7 @@ void TexEnvxv(GLenum target, GLenum pname, const GLfixed *params) ...@@ -3204,7 +3221,7 @@ void TexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
} }
void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
GLint border, GLenum format, GLenum type, const GLvoid* pixels) GLint border, GLenum format, GLenum type, const GLvoid* pixels)
{ {
TRACE("(GLenum target = 0x%X, GLint level = %d, GLint internalformat = %d, GLsizei width = %d, GLsizei height = %d, " TRACE("(GLenum target = 0x%X, GLint level = %d, GLint internalformat = %d, GLsizei width = %d, GLsizei height = %d, "
"GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const GLvoid* pixels = %p)", "GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const GLvoid* pixels = %p)",
...@@ -3508,7 +3525,7 @@ void TexParameterxv(GLenum target, GLenum pname, const GLfixed *params) ...@@ -3508,7 +3525,7 @@ void TexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
} }
void TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, void TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
GLenum format, GLenum type, const GLvoid* pixels) GLenum format, GLenum type, const GLvoid* pixels)
{ {
TRACE("(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, " TRACE("(GLenum target = 0x%X, GLint level = %d, GLint xoffset = %d, GLint yoffset = %d, "
"GLsizei width = %d, GLsizei height = %d, GLenum format = 0x%X, GLenum type = 0x%X, " "GLsizei width = %d, GLsizei height = %d, GLenum format = 0x%X, GLenum type = 0x%X, "
......
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