Skip to content

Commit

Permalink
Add glNamedFramebufferTexture* and glNamedFramebufferRenderBuffer
Browse files Browse the repository at this point in the history
  • Loading branch information
chyyran authored and grovesNL committed Sep 3, 2024
1 parent 825b006 commit efe6784
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 0 deletions.
25 changes: 25 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -820,6 +820,31 @@ pub trait HasContext: __private::Sealed {
layer: i32,
);

unsafe fn named_framebuffer_renderbuffer(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
renderbuffer_target: u32,
renderbuffer: Option<Self::Renderbuffer>,
);

unsafe fn named_framebuffer_texture(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
texture: Option<Self::Texture>,
level: i32,
);

unsafe fn named_framebuffer_texture_layer(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
texture: Option<Self::Texture>,
level: i32,
layer: i32,
);

unsafe fn front_face(&self, value: u32);

unsafe fn get_error(&self) -> u32;
Expand Down
50 changes: 50 additions & 0 deletions src/native.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1845,6 +1845,56 @@ impl HasContext for Context {
);
}

unsafe fn named_framebuffer_renderbuffer(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
renderbuffer_target: u32,
renderbuffer: Option<Self::Renderbuffer>,
) {
let gl = &self.raw;
gl.NamedFramebufferRenderbuffer(
framebuffer.map(|f| f.0.get()).unwrap_or(0),
attachment,
renderbuffer_target,
renderbuffer.map(|rb| rb.0.get()).unwrap_or(0),
);
}

unsafe fn named_framebuffer_texture(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
texture: Option<Self::Texture>,
level: i32,
) {
let gl = &self.raw;
gl.NamedFramebufferTexture(
framebuffer.map(|f| f.0.get()).unwrap_or(0),
attachment,
texture.map(|t| t.0.get()).unwrap_or(0),
level,
);
}

unsafe fn named_framebuffer_texture_layer(
&self,
framebuffer: Option<Self::Framebuffer>,
attachment: u32,
texture: Option<Self::Texture>,
level: i32,
layer: i32,
) {
let gl = &self.raw;
gl.NamedFramebufferTextureLayer(
framebuffer.map(|f| f.0.get()).unwrap_or(0),
attachment,
texture.map(|t| t.0.get()).unwrap_or(0),
level,
layer,
);
}

unsafe fn front_face(&self, value: u32) {
let gl = &self.raw;
gl.FrontFace(value as u32);
Expand Down
31 changes: 31 additions & 0 deletions src/web_sys.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3214,6 +3214,37 @@ impl HasContext for Context {
}
}

unsafe fn named_framebuffer_renderbuffer(
&self,
_framebuffer: Option<Self::Framebuffer>,
_attachment: u32,
_renderbuffer_target: u32,
_renderbuffer: Option<Self::Renderbuffer>,
) {
panic!("Named framebuffers are not supported");
}

unsafe fn named_framebuffer_texture(
&self,
_framebuffer: Option<Self::Framebuffer>,
_attachment: u32,
_texture: Option<Self::Texture>,
_level: i32,
) {
panic!("Named framebuffers are not supported");
}

unsafe fn named_framebuffer_texture_layer(
&self,
_framebuffer: Option<Self::Framebuffer>,
_attachment: u32,
_texture: Option<Self::Texture>,
_level: i32,
_layer: i32,
) {
panic!("Named framebuffers are not supported");
}

unsafe fn front_face(&self, value: u32) {
match self.raw {
RawRenderingContext::WebGl1(ref gl) => gl.front_face(value as u32),
Expand Down

0 comments on commit efe6784

Please sign in to comment.