diff options
author | Saurav Sachidanand <sauravsachidanand@gmail.com> | 2016-04-06 17:59:43 +0530 |
---|---|---|
committer | Saurav Sachidanand <sauravsachidanand@gmail.com> | 2016-04-06 20:02:45 +0530 |
commit | 56eef10718dfb8c43430c58c0a236fae1d11b5bc (patch) | |
tree | b71e34fdbf850f8ee100ead4dff3898d77ee299a /components/script/dom/webglprogram.rs | |
parent | a9eb08dbaa5a9f394aa6c3e563796658826a83b3 (diff) | |
download | servo-56eef10718dfb8c43430c58c0a236fae1d11b5bc.tar.gz servo-56eef10718dfb8c43430c58c0a236fae1d11b5bc.zip |
Implement WebGLRenderingContext.getActiveUniform()
Diffstat (limited to 'components/script/dom/webglprogram.rs')
-rw-r--r-- | components/script/dom/webglprogram.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index 378039b03eb..996e6eb4cee 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -8,7 +8,8 @@ use dom::bindings::codegen::Bindings::WebGLProgramBinding; use dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, MutNullableHeap, Root}; -use dom::bindings::reflector::reflect_dom_object; +use dom::bindings::reflector::{Reflectable, reflect_dom_object}; +use dom::webglactiveinfo::WebGLActiveInfo; use dom::webglobject::WebGLObject; use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN; use dom::webglshader::WebGLShader; @@ -156,6 +157,16 @@ impl WebGLProgram { Ok(()) } + pub fn get_active_uniform(&self, index: u32) -> WebGLResult<Root<WebGLActiveInfo>> { + let (sender, receiver) = ipc::channel().unwrap(); + self.renderer + .send(CanvasMsg::WebGL(WebGLCommand::GetActiveUniform(self.id, index, sender))) + .unwrap(); + + receiver.recv().unwrap().map(|(size, ty, name)| + WebGLActiveInfo::new(self.global().r(), size, ty, DOMString::from(name))) + } + /// glGetAttribLocation pub fn get_attrib_location(&self, name: DOMString) -> WebGLResult<Option<i32>> { if name.len() > MAX_UNIFORM_AND_ATTRIBUTE_LEN { |