// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.

///|
#external
pub type GTAOPass

///|
#module("@mizchi/three-mbt/render-extra")
pub extern "js" fn GTAOPass::GTAOPass(
  scene : Scene,
  camera : Camera,
  width : Int,
  height : Int,
) -> GTAOPass = "gTAOPass"

///|
pub fn GTAOPass::as_pass(self : GTAOPass) -> Pass = "%identity"

///|
pub extern "js" fn GTAOPass::output(self : GTAOPass) -> GTAOOutput =
  #| (self) => self.output===-1?7:self.output

///|
pub extern "js" fn GTAOPass::set_output(
  self : GTAOPass,
  value : GTAOOutput,
) -> Unit =
  #| (self, value) => { self.output=value===7?-1:value; }

///|
pub extern "js" fn GTAOPass::blend_intensity(self : GTAOPass) -> Double =
  #| (self) => self.blendIntensity

///|
pub extern "js" fn GTAOPass::set_blend_intensity(
  self : GTAOPass,
  value : Double,
) -> Unit =
  #| (self, value) => { self.blendIntensity = value; }

///|
pub extern "js" fn GTAOPass::gtao_map(self : GTAOPass) -> Texture =
  #| (self) => self.gtaoMap

///|
pub extern "js" fn GTAOPass::set_scene_clip_box(
  self : GTAOPass,
  box : Box3,
) -> Unit =
  #| (self, box) => self.setSceneClipBox(box)

///|
pub extern "js" fn GTAOPass::update_gtao(
  self : GTAOPass,
  settings : GTAOSettings,
) -> Unit =
  #| (self, settings) => self.updateGtaoMaterial(settings)

///|
pub extern "js" fn GTAOPass::update_denoise(
  self : GTAOPass,
  settings : DenoiseSettings,
) -> Unit =
  #| (self, settings) => self.updatePdMaterial(settings)

///|
pub extern "js" fn GTAOPass::set_gbuffer(
  self : GTAOPass,
  depth : DepthTexture,
  normal : Texture,
) -> Unit =
  #| (self, depth, normal) => self.setGBuffer(depth, normal)

///|
pub extern "js" fn GTAOPass::clear_gbuffer(self : GTAOPass) -> Unit =
  #| (self) => self.setGBuffer()