Skip to content

Commit 95662c4

Browse files
committed
[remove] internal dependencies.
1 parent 2dd2d8b commit 95662c4

5 files changed

Lines changed: 67 additions & 75 deletions

File tree

crates/lambda-platform/src/gfx/buffer.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use gfx_hal::{
44
SparseFlags,
55
},
66
prelude::Device,
7+
Backend,
78
};
89

910
use super::gpu::Gpu;
@@ -24,14 +25,14 @@ pub enum BufferType {
2425
/// A buffer is a block of memory that can be used to store data that can be
2526
/// accessed by the GPU.
2627
#[derive(Debug, Clone, Copy)]
27-
pub struct Buffer<RenderBackend: super::internal::Backend> {
28+
pub struct Buffer<RenderBackend: Backend> {
2829
buffer: RenderBackend::Buffer,
2930
memory: RenderBackend::Memory,
3031
stride: usize,
3132
buffer_type: BufferType,
3233
}
3334

34-
impl<RenderBackend: super::internal::Backend> Buffer<RenderBackend> {
35+
impl<RenderBackend: Backend> Buffer<RenderBackend> {
3536
/// Destroy the buffer and all it's resources with the GPU that
3637
/// created it.
3738
pub fn destroy(self, gpu: &Gpu<RenderBackend>) {
@@ -47,7 +48,7 @@ impl<RenderBackend: super::internal::Backend> Buffer<RenderBackend> {
4748
}
4849
}
4950

50-
impl<RenderBackend: super::internal::Backend> Buffer<RenderBackend> {
51+
impl<RenderBackend: Backend> Buffer<RenderBackend> {
5152
/// Retrieve a reference to the internal buffer.
5253
pub(super) fn internal_buffer(&self) -> &RenderBackend::Buffer {
5354
return &self.buffer;
@@ -95,7 +96,7 @@ impl BufferBuilder {
9596
/// bound to the GPU, the buffer memory is freed before the error is returned.
9697
/// Data must represent the data that will be stored in the buffer, meaning
9798
/// it must repr C and be the same size as the buffer length.
98-
pub fn build<RenderBackend: super::internal::Backend, Data: Sized>(
99+
pub fn build<RenderBackend: Backend, Data: Sized>(
99100
&self,
100101
gpu: &mut Gpu<RenderBackend>,
101102
data: Vec<Data>,

crates/lambda-platform/src/gfx/command.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,19 +171,17 @@ impl<'command_pool, RenderBackend: gfx_hal::Backend>
171171
.into_iter(),
172172
gfx_hal::command::SubpassContents::Inline,
173173
),
174-
Command::AttachGraphicsPipeline { pipeline } => {
175-
self.command_buffer.bind_graphics_pipeline(
176-
super::pipeline::internal::pipeline_for(pipeline.as_ref()),
177-
)
178-
}
174+
Command::AttachGraphicsPipeline { pipeline } => self
175+
.command_buffer
176+
.bind_graphics_pipeline(pipeline.internal_pipeline()),
179177
Command::EndRenderPass => self.command_buffer.end_render_pass(),
180178
Command::PushConstants {
181179
pipeline,
182180
stage,
183181
offset,
184182
bytes,
185183
} => self.command_buffer.push_graphics_constants(
186-
super::pipeline::internal::pipeline_layout_for(pipeline.as_ref()),
184+
pipeline.internal_pipeline_layout(),
187185
stage,
188186
offset,
189187
bytes.as_slice(),

crates/lambda-platform/src/gfx/mod.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ pub mod shader;
1414
pub mod surface;
1515
pub mod viewport;
1616

17-
use gfx_hal::Instance as _;
17+
use gfx_hal::{
18+
Backend,
19+
Instance as _,
20+
};
1821

1922
// ----------------------- INSTANCE BUILDER AND INSTANCE -------------------------------
2023

@@ -30,19 +33,19 @@ impl InstanceBuilder {
3033
}
3134

3235
/// Builds a graphical instance for the current platform.
33-
pub fn build<RenderBackend: internal::Backend>(
36+
pub fn build<RenderBackend: Backend>(
3437
self,
3538
name: &str,
3639
) -> Instance<RenderBackend> {
3740
return Instance::new(name);
3841
}
3942
}
4043

41-
pub struct Instance<RenderBackend: internal::Backend> {
44+
pub struct Instance<RenderBackend: Backend> {
4245
gfx_hal_instance: RenderBackend::Instance,
4346
}
4447

45-
impl<RenderBackend: internal::Backend> Instance<RenderBackend> {
48+
impl<RenderBackend: Backend> Instance<RenderBackend> {
4649
/// Create a new GfxInstance connected to the current platforms primary backend.
4750
fn new(name: &str) -> Self {
4851
let instance = RenderBackend::Instance::create(name, 1)
@@ -54,7 +57,7 @@ impl<RenderBackend: internal::Backend> Instance<RenderBackend> {
5457
}
5558
}
5659

57-
impl<RenderBackend: internal::Backend> Instance<RenderBackend> {
60+
impl<RenderBackend: Backend> Instance<RenderBackend> {
5861
/// Returns a list of all available adapters.
5962
pub(super) fn enumerate_adapters(
6063
&self,
@@ -90,9 +93,5 @@ impl<RenderBackend: internal::Backend> Instance<RenderBackend> {
9093
// ----------------------- INTERNAL INSTANCE OPERATIONS ------------------------
9194

9295
pub mod internal {
93-
94-
pub use super::{
95-
pipeline::internal::*,
96-
shader::internal::*,
97-
};
96+
pub use super::shader::internal::*;
9897
}

crates/lambda-platform/src/gfx/pipeline.rs

Lines changed: 42 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,21 @@
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-
341
use 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

3820
use 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

5840
pub 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+
}

crates/lambda-platform/src/gfx/surface.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
/// ColorFormat for the surface.
22
pub use gfx_hal::format::Format as ColorFormat;
3-
use gfx_hal::window::{
4-
PresentationSurface,
5-
Surface as _,
3+
use gfx_hal::{
4+
window::{
5+
PresentationSurface,
6+
Surface as _,
7+
},
8+
Backend,
69
};
710
#[cfg(test)]
811
use mockall::automock;
@@ -167,7 +170,7 @@ impl SwapchainBuilder {
167170
return self;
168171
}
169172

170-
pub fn build<RenderBackend: super::internal::Backend>(
173+
pub fn build<RenderBackend: Backend>(
171174
self,
172175
gpu: &Gpu<RenderBackend>,
173176
surface: &Surface<RenderBackend>,

0 commit comments

Comments
 (0)