mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Auto merge of #6812 - ecoal95:webgl-fail, r=jdm
webgl: Make context creation fallible. Fixes #6806 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6812) <!-- Reviewable:end -->
This commit is contained in:
commit
b90fd5931d
3 changed files with 24 additions and 16 deletions
|
@ -64,20 +64,23 @@ impl WebGLRenderingContext {
|
|||
canvas: &HTMLCanvasElement,
|
||||
size: Size2D<i32>,
|
||||
attrs: GLContextAttributes)
|
||||
-> Result<WebGLRenderingContext, &'static str> {
|
||||
-> Result<WebGLRenderingContext, String> {
|
||||
let (sender, receiver) = ipc::channel().unwrap();
|
||||
let constellation_chan = global.constellation_chan();
|
||||
constellation_chan.0
|
||||
.send(ConstellationMsg::CreateWebGLPaintTask(size, attrs, sender))
|
||||
.unwrap();
|
||||
let (ipc_renderer, renderer_id) = receiver.recv().unwrap();
|
||||
Ok(WebGLRenderingContext {
|
||||
reflector_: Reflector::new(),
|
||||
global: GlobalField::from_rooted(&global),
|
||||
renderer_id: renderer_id,
|
||||
ipc_renderer: ipc_renderer,
|
||||
last_error: Cell::new(None),
|
||||
canvas: JS::from_ref(canvas),
|
||||
let result = receiver.recv().unwrap();
|
||||
|
||||
result.map(|(ipc_renderer, renderer_id)| {
|
||||
WebGLRenderingContext {
|
||||
reflector_: Reflector::new(),
|
||||
global: GlobalField::from_rooted(&global),
|
||||
renderer_id: renderer_id,
|
||||
ipc_renderer: ipc_renderer,
|
||||
last_error: Cell::new(None),
|
||||
canvas: JS::from_ref(canvas),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue