From 89a0b55c61e719aeeb26609b66f0925d684341ce Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 28 Jun 2016 15:18:53 +0200 Subject: Use wrappers for GL IDs See https://github.com/servo/webrender_traits/pull/62. --- components/script/dom/webglshader.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'components/script/dom/webglshader.rs') diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs index 949cb4550ae..ca2555faa8e 100644 --- a/components/script/dom/webglshader.rs +++ b/components/script/dom/webglshader.rs @@ -15,7 +15,7 @@ use dom::webglobject::WebGLObject; use ipc_channel::ipc::{self, IpcSender}; use std::cell::Cell; use std::sync::{ONCE_INIT, Once}; -use webrender_traits::{WebGLCommand, WebGLParameter, WebGLResult}; +use webrender_traits::{WebGLCommand, WebGLParameter, WebGLResult, WebGLShaderId}; #[derive(Clone, Copy, PartialEq, Debug, JSTraceable, HeapSizeOf)] pub enum ShaderCompilationStatus { @@ -27,7 +27,7 @@ pub enum ShaderCompilationStatus { #[dom_struct] pub struct WebGLShader { webgl_object: WebGLObject, - id: u32, + id: WebGLShaderId, gl_type: u32, source: DOMRefCell>, info_log: DOMRefCell>, @@ -47,7 +47,10 @@ const SHADER_OUTPUT_FORMAT: Output = Output::Essl; static GLSLANG_INITIALIZATION: Once = ONCE_INIT; impl WebGLShader { - fn new_inherited(renderer: IpcSender, id: u32, shader_type: u32) -> WebGLShader { + fn new_inherited(renderer: IpcSender, + id: WebGLShaderId, + shader_type: u32) + -> WebGLShader { GLSLANG_INITIALIZATION.call_once(|| ::angle::hl::initialize().unwrap()); WebGLShader { webgl_object: WebGLObject::new_inherited(), @@ -69,21 +72,23 @@ impl WebGLShader { renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap(); let result = receiver.recv().unwrap(); - result.map(|shader_id| WebGLShader::new(global, renderer, *shader_id, shader_type)) + result.map(|shader_id| WebGLShader::new(global, renderer, shader_id, shader_type)) } pub fn new(global: GlobalRef, renderer: IpcSender, - id: u32, - shader_type: u32) -> Root { - reflect_dom_object( - box WebGLShader::new_inherited(renderer, id, shader_type), global, WebGLShaderBinding::Wrap) + id: WebGLShaderId, + shader_type: u32) + -> Root { + reflect_dom_object(box WebGLShader::new_inherited(renderer, id, shader_type), + global, + WebGLShaderBinding::Wrap) } } impl WebGLShader { - pub fn id(&self) -> u32 { + pub fn id(&self) -> WebGLShaderId { self.id } -- cgit v1.2.3