aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-08-02 12:08:12 -0400
committerGitHub <noreply@github.com>2018-08-02 12:08:12 -0400
commitc5aaae73331fcf4a3dd654abe02840d8a5ab7610 (patch)
tree73b403a24ef1aed5554a6b4abe5398cf0df6f0bd /components/script/dom/webglrenderingcontext.rs
parentbde8a1e2390b8fb41c8ce03c4d2914d7980650a0 (diff)
parentf7124886bc64158dd2ce2487a1f98990e157f3fe (diff)
downloadservo-c5aaae73331fcf4a3dd654abe02840d8a5ab7610.tar.gz
servo-c5aaae73331fcf4a3dd654abe02840d8a5ab7610.zip
Auto merge of #21324 - servo:webgl, r=emilio
Properly set initial values for WebGL texture filters <!-- 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/21324) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r--components/script/dom/webglrenderingcontext.rs27
1 files changed, 18 insertions, 9 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 3d693f1bb96..d460aefde09 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -446,22 +446,22 @@ impl WebGLRenderingContext {
handle_potential_webgl_error!(self, f(location));
}
- fn tex_parameter(&self, target: u32, name: u32, value: TexParameterValue) {
+ fn tex_parameter(&self, target: u32, param: u32, value: TexParameterValue) {
let texture = match target {
constants::TEXTURE_2D |
constants::TEXTURE_CUBE_MAP => self.bound_texture(target),
_ => return self.webgl_error(InvalidEnum),
};
- if !self.extension_manager.is_get_tex_parameter_name_enabled(name) {
- return self.webgl_error(InvalidEnum);
- }
-
- let param = handle_potential_webgl_error!(self, TexParameter::from_u32(name), return);
let texture = match texture {
Some(tex) => tex,
None => return self.webgl_error(InvalidOperation),
};
+
+ if !self.extension_manager.is_get_tex_parameter_name_enabled(param) {
+ return self.webgl_error(InvalidEnum);
+ }
+
handle_potential_webgl_error!(self, texture.tex_parameter(param, value), return);
// Validate non filterable TEXTURE_2D data_types
@@ -1664,9 +1664,18 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
return NullValue();
}
- if self.bound_texture(target).is_none() {
- self.webgl_error(InvalidOperation);
- return NullValue();
+ let texture = match self.bound_texture(target) {
+ Some(texture) => texture,
+ None => {
+ self.webgl_error(InvalidOperation);
+ return NullValue();
+ }
+ };
+
+ match pname {
+ constants::TEXTURE_MAG_FILTER => return UInt32Value(texture.mag_filter()),
+ constants::TEXTURE_MIN_FILTER => return UInt32Value(texture.min_filter()),
+ _ => {}
}
match handle_potential_webgl_error!(self, TexParameter::from_u32(pname), return NullValue()) {