diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-08-02 12:08:12 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-02 12:08:12 -0400 |
commit | c5aaae73331fcf4a3dd654abe02840d8a5ab7610 (patch) | |
tree | 73b403a24ef1aed5554a6b4abe5398cf0df6f0bd /components/script/dom/webglrenderingcontext.rs | |
parent | bde8a1e2390b8fb41c8ce03c4d2914d7980650a0 (diff) | |
parent | f7124886bc64158dd2ce2487a1f98990e157f3fe (diff) | |
download | servo-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.rs | 27 |
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()) { |