lambda/render/
render_pass.rs1use std::rc::Rc;
3
4use lambda_platform::gfx::render_pass;
5
6use super::RenderContext;
7
8#[derive(Debug)]
9pub struct RenderPass {
10 render_pass: Rc<render_pass::RenderPass<super::internal::RenderBackend>>,
11}
12
13impl RenderPass {
14 pub fn destroy(self, render_context: &RenderContext) {
16 Rc::try_unwrap(self.render_pass)
17 .expect("Failed to destroy render pass. Is something holding a reference to it?")
18 .destroy(render_context.internal_gpu());
19 logging::debug!("Render pass destroyed");
20 }
21}
22
23impl RenderPass {
25 pub(super) fn internal_render_pass(
27 &self,
28 ) -> &Rc<render_pass::RenderPass<super::internal::RenderBackend>> {
29 return &self.render_pass;
30 }
31
32 pub(super) fn into_gfx_render_pass(
34 &self,
35 ) -> Rc<render_pass::RenderPass<super::internal::RenderBackend>> {
36 return self.render_pass.clone();
37 }
38}
39
40pub struct RenderPassBuilder {}
41
42impl RenderPassBuilder {
43 pub fn new() -> Self {
45 return Self {};
46 }
47
48 pub fn build(self, render_context: &RenderContext) -> RenderPass {
50 let render_pass =
51 lambda_platform::gfx::render_pass::RenderPassBuilder::new()
52 .build(render_context.internal_gpu());
53 return RenderPass {
54 render_pass: Rc::new(render_pass),
55 };
56 }
57}