1- pub mod internal {
2-
3- /// gfx-hal imports for pipeline.rs
4- pub use gfx_hal:: {
5- device:: Device ,
6- pass:: Subpass ,
7- pso:: {
8- BlendState ,
9- ColorBlendDesc ,
10- ColorMask ,
11- EntryPoint ,
12- Face ,
13- GraphicsPipelineDesc ,
14- PrimitiveAssemblerDesc ,
15- Rasterizer ,
16- } ,
17- Backend ,
18- } ;
19-
20- /// Retrieves the underlying gfx_hal pipeline for internal use.
21- pub fn pipeline_for < RenderBackend : gfx_hal:: Backend > (
22- pipeline : & super :: RenderPipeline < RenderBackend > ,
23- ) -> & RenderBackend :: GraphicsPipeline {
24- return & pipeline. pipeline ;
25- }
26-
27- pub fn pipeline_layout_for < RenderBackend : gfx_hal:: Backend > (
28- pipeline : & super :: RenderPipeline < RenderBackend > ,
29- ) -> & RenderBackend :: PipelineLayout {
30- return & pipeline. pipeline_layout ;
31- }
32- }
33-
341use std:: ops:: Range ;
352
36- use gfx_hal:: device:: Device ;
3+ /// gfx-hal imports for pipeline.rs
4+ use gfx_hal:: {
5+ device:: Device ,
6+ pass:: Subpass ,
7+ pso:: {
8+ BlendState ,
9+ ColorBlendDesc ,
10+ ColorMask ,
11+ EntryPoint ,
12+ Face ,
13+ GraphicsPipelineDesc ,
14+ PrimitiveAssemblerDesc ,
15+ Rasterizer ,
16+ } ,
17+ Backend ,
18+ } ;
3719
3820use super :: {
3921 assembler:: {
@@ -46,7 +28,7 @@ use super::{
4628} ;
4729
4830/// Builder for a gfx-hal backed render pipeline.
49- pub struct RenderPipelineBuilder < RenderBackend : internal :: Backend > {
31+ pub struct RenderPipelineBuilder < RenderBackend : Backend > {
5032 pipeline_layout : Option < RenderBackend :: PipelineLayout > ,
5133 push_constants : Vec < PushConstantUpload > ,
5234 buffers : Vec < Buffer < RenderBackend > > ,
@@ -57,7 +39,7 @@ pub type PipelineStage = gfx_hal::pso::ShaderStageFlags;
5739
5840pub type PushConstantUpload = ( PipelineStage , Range < u32 > ) ;
5941
60- impl < RenderBackend : internal :: Backend > RenderPipelineBuilder < RenderBackend > {
42+ impl < RenderBackend : Backend > RenderPipelineBuilder < RenderBackend > {
6143 pub fn new ( ) -> Self {
6244 return Self {
6345 pipeline_layout : None ,
@@ -128,35 +110,32 @@ impl<RenderBackend: internal::Backend> RenderPipelineBuilder<RenderBackend> {
128110 builder. build ( vertex_shader, Some ( buffers) , Some ( attributes) ) ;
129111
130112 let fragment_entry = match fragment_shader {
131- Some ( shader) => Some ( internal :: EntryPoint :: < RenderBackend > {
113+ Some ( shader) => Some ( EntryPoint :: < RenderBackend > {
132114 entry : shader. entry ( ) ,
133115 module : super :: internal:: module_for ( shader) ,
134116 specialization : shader. specializations ( ) . clone ( ) ,
135117 } ) ,
136118 None => None ,
137119 } ;
138120
139- let mut pipeline_desc = internal :: GraphicsPipelineDesc :: new (
121+ let mut pipeline_desc = GraphicsPipelineDesc :: new (
140122 primitive_assembler. internal_primitive_assembler ( ) ,
141- internal :: Rasterizer {
142- cull_face : internal :: Face :: BACK ,
143- ..internal :: Rasterizer :: FILL
123+ Rasterizer {
124+ cull_face : Face :: BACK ,
125+ ..Rasterizer :: FILL
144126 } ,
145127 fragment_entry,
146128 & pipeline_layout,
147- internal :: Subpass {
129+ Subpass {
148130 index : 0 ,
149131 main_pass : render_pass. internal_render_pass ( ) ,
150132 } ,
151133 ) ;
152134
153- pipeline_desc
154- . blender
155- . targets
156- . push ( internal:: ColorBlendDesc {
157- mask : internal:: ColorMask :: ALL ,
158- blend : Some ( internal:: BlendState :: ALPHA ) ,
159- } ) ;
135+ pipeline_desc. blender . targets . push ( ColorBlendDesc {
136+ mask : ColorMask :: ALL ,
137+ blend : Some ( BlendState :: ALPHA ) ,
138+ } ) ;
160139
161140 let pipeline = unsafe {
162141 let pipeline_build_result = gpu
@@ -179,13 +158,13 @@ impl<RenderBackend: internal::Backend> RenderPipelineBuilder<RenderBackend> {
179158
180159/// Represents a render capable pipeline for graphical
181160#[ derive( Debug ) ]
182- pub struct RenderPipeline < RenderBackend : internal :: Backend > {
161+ pub struct RenderPipeline < RenderBackend : Backend > {
183162 pipeline_layout : RenderBackend :: PipelineLayout ,
184163 pipeline : RenderBackend :: GraphicsPipeline ,
185164 buffers : Vec < Buffer < RenderBackend > > ,
186165}
187166
188- impl < RenderBackend : internal :: Backend > RenderPipeline < RenderBackend > {
167+ impl < RenderBackend : Backend > RenderPipeline < RenderBackend > {
189168 /// Destroys the pipeline layout and graphical pipeline
190169 pub fn destroy ( self , gpu : & super :: gpu:: Gpu < RenderBackend > ) {
191170 println ! ( "Destroying render pipeline" ) ;
@@ -204,3 +183,15 @@ impl<RenderBackend: internal::Backend> RenderPipeline<RenderBackend> {
204183 }
205184 }
206185}
186+
187+ impl < RenderBackend : Backend > RenderPipeline < RenderBackend > {
188+ pub ( super ) fn internal_pipeline_layout (
189+ & self ,
190+ ) -> & RenderBackend :: PipelineLayout {
191+ return & self . pipeline_layout ;
192+ }
193+
194+ pub ( super ) fn internal_pipeline ( & self ) -> & RenderBackend :: GraphicsPipeline {
195+ return & self . pipeline ;
196+ }
197+ }
0 commit comments