use super::*;
#[derive(Clone, Data, Debug)]
pub(crate) struct WebGlRayTraceTexture {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) texture: WebGlTexture,
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) width: i32,
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) height: i32,
}
#[derive(Data, Debug)]
pub(crate) struct WebGlRayTraceBackend {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) context: WebGl2RenderingContext,
#[get(pub(crate))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) program: WebGlProgram,
#[get(pub(crate))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) vao: WebGlVertexArrayObject,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) scene_texture: WebGlRayTraceTexture,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) frame_texture: WebGlRayTraceTexture,
#[get(pub(crate))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) scene_uniform: WebGlUniformLocation,
#[get(pub(crate))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) frame_uniform: WebGlUniformLocation,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) scene_scratch: Vec<f32>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) frame_scratch: Vec<f32>,
#[get(pub(crate), type(copy))]
#[set(pub(crate))]
#[get_mut(pub(crate))]
pub(crate) dimension_limit_value: u32,
}
#[derive(Debug, Getter)]
pub(crate) struct WebGlPackedUpload<'a> {
#[get(pub(crate), type(copy))]
pub(crate) context: &'a WebGl2RenderingContext,
#[get(pub(crate), type(copy))]
pub(crate) unit: u32,
#[get(pub(crate), type(copy))]
pub(crate) packed: &'a [f32],
}
#[derive(Debug, Getter)]
pub(crate) struct WebGlPartialAttach<'a> {
#[get(pub(crate), type(clone))]
pub(crate) program: Option<&'a WebGlProgram>,
#[get(pub(crate), type(clone))]
pub(crate) vao: Option<&'a WebGlVertexArrayObject>,
#[get(pub(crate), type(clone))]
pub(crate) scene_texture: Option<&'a WebGlRayTraceTexture>,
#[get(pub(crate), type(clone))]
pub(crate) frame_texture: Option<&'a WebGlRayTraceTexture>,
}