Skip to content

Commit

Permalink
Add get_default_configure to simplify user creation of `SurfaceConf…
Browse files Browse the repository at this point in the history
…iguration` (#3034)
  • Loading branch information
jinleili committed Oct 13, 2022
1 parent 9272cc6 commit caee97e
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ Bottom level categories:
- Implement `Hash` for `DepthStencilState` and `DepthBiasState`
- Add the `"wgsl"` feature, to enable WGSL shaders in `wgpu-core` and `wgpu`. Enabled by default in `wgpu`. By @daxpedda in [#2890](https://github.com/gfx-rs/wgpu/pull/2890).
- Implement `Clone` for `ShaderSource` and `ShaderModuleDescriptor` in `wgpu`. By @daxpedda in [#3086](https://github.com/gfx-rs/wgpu/pull/3086).
- Add `get_default_config` for `Surface` to simplify user creation of `SurfaceConfiguration`. By @jinleili in [#3034](https://github.com/gfx-rs/wgpu/pull/3034)

#### GLES

Expand Down
9 changes: 1 addition & 8 deletions wgpu/examples/framework.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,7 @@ fn start<E: Example>(
}: Setup,
) {
let spawner = Spawner::new();
let mut config = wgpu::SurfaceConfiguration {
usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
format: surface.get_supported_formats(&adapter)[0],
width: size.width,
height: size.height,
present_mode: wgpu::PresentMode::Fifo,
alpha_mode: surface.get_supported_alpha_modes(&adapter)[0],
};
let mut config = surface.get_default_config(&adapter, size.width, size.height);
surface.configure(&device, &config);

log::info!("Initializing the example...");
Expand Down
17 changes: 17 additions & 0 deletions wgpu/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3713,6 +3713,23 @@ impl Surface {
Context::surface_get_supported_alpha_modes(&*self.context, &self.id, &adapter.id)
}

/// Return a default `SurfaceConfiguration` from width and height to use for the [`Surface`] with this adapter.
pub fn get_default_config(
&self,
adapter: &Adapter,
width: u32,
height: u32,
) -> wgt::SurfaceConfiguration {
wgt::SurfaceConfiguration {
usage: wgt::TextureUsages::RENDER_ATTACHMENT,
format: self.get_supported_formats(adapter)[0],
width,
height,
present_mode: self.get_supported_present_modes(adapter)[0],
alpha_mode: wgt::CompositeAlphaMode::Auto,
}
}

/// Initializes [`Surface`] for presentation.
///
/// # Panics
Expand Down

0 comments on commit caee97e

Please sign in to comment.