Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add destructors to some WebGL objects, remove duplicated glutin dependency and try to enable the webgl reftests #8291

Merged
merged 7 commits into from Nov 2, 2015
@@ -71,7 +71,13 @@ impl WebGLBuffer {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteBuffer(self.id))).unwrap();
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteBuffer(self.id)));
}
}
}

impl Drop for WebGLBuffer {
fn drop(&mut self) {
self.delete();
}
}
@@ -60,7 +60,13 @@ impl WebGLFramebuffer {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteFramebuffer(self.id))).unwrap();
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteFramebuffer(self.id)));
}
}
}

impl Drop for WebGLFramebuffer {
fn drop(&mut self) {
self.delete();
}
}
@@ -58,7 +58,7 @@ impl WebGLProgram {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteProgram(self.id))).unwrap();
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteProgram(self.id)));
}
}

@@ -125,3 +125,9 @@ impl WebGLProgram {
Ok(receiver.recv().unwrap())
}
}

impl Drop for WebGLProgram {
fn drop(&mut self) {
self.delete();
}
}
@@ -59,7 +59,7 @@ impl WebGLRenderbuffer {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteRenderbuffer(self.id))).unwrap();
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteRenderbuffer(self.id)));
}
}
}
@@ -121,7 +121,7 @@ impl WebGLShader {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteShader(self.id))).unwrap()
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteShader(self.id)));
}
}

@@ -152,3 +152,9 @@ impl WebGLShader {
*self.source.borrow_mut() = Some(source);
}
}

impl Drop for WebGLShader {
fn drop(&mut self) {
self.delete();
}
}
@@ -78,7 +78,7 @@ impl WebGLTexture {
pub fn delete(&self) {
if !self.is_deleted.get() {
self.is_deleted.set(true);
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteTexture(self.id))).unwrap();
let _ = self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::DeleteTexture(self.id)));
}
}

@@ -145,3 +145,9 @@ impl WebGLTexture {
}
}
}

impl Drop for WebGLTexture {
fn drop(&mut self) {
self.delete();
}
}

Some generated files are not rendered by default. Learn more.

@@ -133,6 +133,9 @@ features = ["plugins"]
[dependencies.gleam]
version = "0.1"

[dependencies.offscreen_gl_context]
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"

[dependencies]
env_logger = "0.3"
time = "0.1.12"
@@ -29,12 +29,25 @@ extern crate log;
extern crate servo;
extern crate time;

extern crate gleam;
extern crate offscreen_gl_context;

use gleam::gl;
use offscreen_gl_context::GLContext;
use servo::Browser;
use servo::compositing::windowing::WindowEvent;
use servo::net_traits::hosts;
use servo::util::opts;
use std::rc::Rc;

#[cfg(not(target_os = "android"))]
fn load_gl_when_headless() {
gl::load_with(|addr| GLContext::get_proc_address(addr) as *const _);
}

#[cfg(target_os = "android")]
fn load_gl_when_headless() {}

fn main() {
env_logger::init().unwrap();

@@ -47,6 +60,9 @@ fn main() {
hosts::global_init();

let window = if opts::get().headless {
// Load gl functions even when in headless mode,
// to avoid crashing with webgl
load_gl_when_headless();
None
} else {
Some(app::create_window(std::ptr::null_mut()))

Some generated files are not rendered by default. Learn more.

Some generated files are not rendered by default. Learn more.

@@ -107,14 +107,6 @@ resolution=800x600 == viewport_percentage_vw_vh.html viewport_percentage_vw_vh_a
# resolution=600x800 == viewport_percentage_vw_vh.html viewport_percentage_vw_vh_b.html
prefs:"layout.viewport.enabled" == viewport_rule.html viewport_rule_ref.html

# https://github.com/servo/servo/issues/7931
# == webgl-context/clearcolor.html webgl-context/clearcolor_ref.html
# == webgl-context/draw_arrays_simple.html webgl-context/draw_arrays_simple_ref.html
# == webgl-context/tex_image_2d_canvas.html webgl-context/tex_image_2d_canvas_ref.html
# == webgl-context/tex_image_2d_canvas2d.html webgl-context/tex_image_2d_canvas_ref.html
# == webgl-context/tex_image_2d_canvas_no_context.html webgl-context/tex_image_2d_canvas_no_context_ref.html
# == webgl-context/tex_image_2d_simple.html webgl-context/tex_image_2d_simple_ref.html

flaky_macos == white_space_intrinsic_sizes_a.html white_space_intrinsic_sizes_ref.html


ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.