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);
......
...@@ -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);
} }
......
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