mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #20598 - servo:webgl, r=Manishearth
Four nondescript WebGL improvements <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20598) <!-- Reviewable:end -->
This commit is contained in:
commit
ce72e52656
3 changed files with 11 additions and 10 deletions
|
@ -151,6 +151,13 @@ impl<'a> WebGLValidator for CommonTexImage2DValidator<'a> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// GL_INVALID_VALUE is generated if target is one of the six cube map 2D
|
||||||
|
// image targets and the width and height parameters are not equal.
|
||||||
|
if target.is_cubic() && self.width != self.height {
|
||||||
|
self.context.webgl_error(InvalidValue);
|
||||||
|
return Err(TexImageValidationError::InvalidCubicTextureDimensions);
|
||||||
|
}
|
||||||
|
|
||||||
// GL_INVALID_VALUE is generated if level is less than 0.
|
// GL_INVALID_VALUE is generated if level is less than 0.
|
||||||
if self.level < 0 {
|
if self.level < 0 {
|
||||||
self.context.webgl_error(InvalidValue);
|
self.context.webgl_error(InvalidValue);
|
||||||
|
@ -287,13 +294,6 @@ impl<'a> WebGLValidator for TexImage2DValidator<'a> {
|
||||||
border,
|
border,
|
||||||
} = self.common_validator.validate()?;
|
} = self.common_validator.validate()?;
|
||||||
|
|
||||||
// GL_INVALID_VALUE is generated if target is one of the six cube map 2D
|
|
||||||
// image targets and the width and height parameters are not equal.
|
|
||||||
if target.is_cubic() && width != height {
|
|
||||||
context.webgl_error(InvalidValue);
|
|
||||||
return Err(TexImageValidationError::InvalidCubicTextureDimensions);
|
|
||||||
}
|
|
||||||
|
|
||||||
// GL_INVALID_ENUM is generated if format or data_type is not an
|
// GL_INVALID_ENUM is generated if format or data_type is not an
|
||||||
// accepted value.
|
// accepted value.
|
||||||
let data_type = match TexDataType::from_gl_constant(self.data_type) {
|
let data_type = match TexDataType::from_gl_constant(self.data_type) {
|
||||||
|
|
|
@ -303,10 +303,11 @@ impl WebGLProgram {
|
||||||
|
|
||||||
// Check if the name is reserved
|
// Check if the name is reserved
|
||||||
if name.starts_with("gl_") {
|
if name.starts_with("gl_") {
|
||||||
return Err(WebGLError::InvalidOperation);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
if name.starts_with("webgl") || name.starts_with("_webgl_") {
|
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#GLSL_CONSTRUCTS
|
||||||
|
if name.starts_with("webgl_") || name.starts_with("_webgl_") {
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ impl WebGLTexture {
|
||||||
let face_count = match target {
|
let face_count = match target {
|
||||||
constants::TEXTURE_2D => 1,
|
constants::TEXTURE_2D => 1,
|
||||||
constants::TEXTURE_CUBE_MAP => 6,
|
constants::TEXTURE_CUBE_MAP => 6,
|
||||||
_ => return Err(WebGLError::InvalidOperation)
|
_ => return Err(WebGLError::InvalidEnum)
|
||||||
};
|
};
|
||||||
self.face_count.set(face_count);
|
self.face_count.set(face_count);
|
||||||
self.target.set(Some(target));
|
self.target.set(Some(target));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue