mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
add log2(u32) and use it to prevent casting to and from float to int
This commit is contained in:
parent
4dcb05ca4f
commit
94ad5aef62
1 changed files with 5 additions and 1 deletions
|
@ -87,6 +87,10 @@ pub struct WebGLRenderingContext {
|
||||||
current_vertex_attrib_0: Cell<(f32, f32, f32, f32)>,
|
current_vertex_attrib_0: Cell<(f32, f32, f32, f32)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn log2(n: u32) -> u32 {
|
||||||
|
31 - n.leading_zeros()
|
||||||
|
}
|
||||||
|
|
||||||
impl WebGLRenderingContext {
|
impl WebGLRenderingContext {
|
||||||
fn new_inherited(global: GlobalRef,
|
fn new_inherited(global: GlobalRef,
|
||||||
canvas: &HTMLCanvasElement,
|
canvas: &HTMLCanvasElement,
|
||||||
|
@ -402,7 +406,7 @@ impl WebGLRenderingContext {
|
||||||
// the returned value of GL_MAX_TEXTURE_SIZE when
|
// the returned value of GL_MAX_TEXTURE_SIZE when
|
||||||
// target is GL_TEXTURE_2D or GL_MAX_CUBE_MAP_TEXTURE_SIZE
|
// target is GL_TEXTURE_2D or GL_MAX_CUBE_MAP_TEXTURE_SIZE
|
||||||
// when target is not GL_TEXTURE_2D.
|
// when target is not GL_TEXTURE_2D.
|
||||||
if level > (max as f32).log2() as i32 {
|
if level > log2(max) as i32 {
|
||||||
self.webgl_error(InvalidValue);
|
self.webgl_error(InvalidValue);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue