Use active uniforms data to implement gl.uniform* checks

This commit is contained in:
Anthony Ramine 2018-07-16 10:16:08 +02:00
parent e7631cea61
commit 476640c3ab
14 changed files with 477 additions and 304 deletions

View file

@ -15,26 +15,38 @@ pub struct WebGLUniformLocation {
reflector_: Reflector,
id: i32,
program_id: WebGLProgramId,
size: Option<i32>,
type_: u32,
}
impl WebGLUniformLocation {
fn new_inherited(id: i32,
program_id: WebGLProgramId)
-> WebGLUniformLocation {
WebGLUniformLocation {
fn new_inherited(
id: i32,
program_id: WebGLProgramId,
size: Option<i32>,
type_: u32,
) -> Self {
Self {
reflector_: Reflector::new(),
id: id,
program_id: program_id,
id,
program_id,
size,
type_,
}
}
pub fn new(window: &Window,
id: i32,
program_id: WebGLProgramId)
-> DomRoot<WebGLUniformLocation> {
reflect_dom_object(Box::new(WebGLUniformLocation::new_inherited(id, program_id)),
window,
WebGLUniformLocationBinding::Wrap)
pub fn new(
window: &Window,
id: i32,
program_id: WebGLProgramId,
size: Option<i32>,
type_: u32,
) -> DomRoot<Self> {
reflect_dom_object(
Box::new(Self::new_inherited(id, program_id, size, type_)),
window,
WebGLUniformLocationBinding::Wrap,
)
}
pub fn id(&self) -> i32 {
@ -44,4 +56,12 @@ impl WebGLUniformLocation {
pub fn program_id(&self) -> WebGLProgramId {
self.program_id
}
pub fn size(&self) -> Option<i32> {
self.size
}
pub fn type_(&self) -> u32 {
self.type_
}
}