diff options
author | Mátyás Mustoha <matyas.mustoha@h-lab.eu> | 2020-04-28 10:00:14 +0200 |
---|---|---|
committer | Mátyás Mustoha <matyas.mustoha@h-lab.eu> | 2020-04-30 10:11:11 +0200 |
commit | 1431a389daf6fb1f44187628f70b84d0087f3f96 (patch) | |
tree | 361801689fb645a691755a90410e71adbd6cc3b3 /components/canvas/webgl_limits.rs | |
parent | ff33b88f724704409c1fe675c4ebe05343a7cc5b (diff) | |
download | servo-1431a389daf6fb1f44187628f70b84d0087f3f96.tar.gz servo-1431a389daf6fb1f44187628f70b84d0087f3f96.zip |
Add support for WebGL2 MIN_PROGRAM_TEXEL_OFFSET
Improves the support of the WebGL2 `MIN_PROGRAM_TEXEL_OFFSET` property
(ie. stores it as a signed integer) and adds support for querying it
using GetParameter.
See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2
Diffstat (limited to 'components/canvas/webgl_limits.rs')
-rw-r--r-- | components/canvas/webgl_limits.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/components/canvas/webgl_limits.rs b/components/canvas/webgl_limits.rs index ee02825d122..803d5525259 100644 --- a/components/canvas/webgl_limits.rs +++ b/components/canvas/webgl_limits.rs @@ -95,7 +95,7 @@ impl GLLimitsDetect for GLLimits { if webgl_version == WebGLVersion::WebGL2 { max_uniform_block_size = gl.get_integer64(gl::MAX_UNIFORM_BLOCK_SIZE); max_uniform_buffer_bindings = gl.get_integer(gl::MAX_UNIFORM_BUFFER_BINDINGS); - min_program_texel_offset = gl.get_integer(gl::MIN_PROGRAM_TEXEL_OFFSET); + min_program_texel_offset = gl.get_signed_integer(gl::MIN_PROGRAM_TEXEL_OFFSET); max_program_texel_offset = gl.get_integer(gl::MAX_PROGRAM_TEXEL_OFFSET); max_transform_feedback_separate_attribs = gl.get_integer(gl::MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS); @@ -206,9 +206,11 @@ impl GLLimitsDetect for GLLimits { trait GLExt { fn try_get_integer(self, parameter: GLenum) -> Option<u32>; fn try_get_integer64(self, parameter: GLenum) -> Option<u64>; + fn try_get_signed_integer(self, parameter: GLenum) -> Option<i32>; fn try_get_float(self, parameter: GLenum) -> Option<f32>; fn get_integer(self, parameter: GLenum) -> u32; fn get_integer64(self, parameter: GLenum) -> u64; + fn get_signed_integer(self, parameter: GLenum) -> i32; fn get_float(self, parameter: GLenum) -> f32; } @@ -236,5 +238,12 @@ macro_rules! create_fun { impl<'a> GLExt for &'a Gl { create_fun!(try_get_integer, get_integer, i32, get_integer_v, u32); create_fun!(try_get_integer64, get_integer64, i64, get_integer64_v, u64); + create_fun!( + try_get_signed_integer, + get_signed_integer, + i32, + get_integer_v, + i32 + ); create_fun!(try_get_float, get_float, f32, get_float_v, f32); } |