MCPcopy Create free account
hub / github.com/AryanpurTech/BlueEngine / new

Method new

crates/blue_engine_core/src/render.rs:50–182  ·  view source on GitHub ↗

Creates a new renderer.

(
        size: WindowSize,
        settings: crate::EngineSettings,
    )

Source from the content-addressed store, hash-verified

48impl Renderer {
49 /// Creates a new renderer.
50 pub(crate) async fn new(
51 size: WindowSize,
52 settings: crate::EngineSettings,
53 ) -> Result<Self, crate::error::Error> {
54 // The instance is a handle to our GPU
55 let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
56 backends: settings.backends,
57 ..Default::default()
58 });
59
60 match instance
61 .request_adapter(&wgpu::RequestAdapterOptions {
62 power_preference: settings.power_preference,
63 compatible_surface: None,
64 force_fallback_adapter: false,
65 })
66 .await
67 {
68 Ok(adapter) => {
69 let (device, queue) = adapter
70 .request_device(&wgpu::DeviceDescriptor {
71 label: Some("Device"),
72 required_features: settings.features,
73 required_limits: settings.limits,
74 memory_hints: if settings.power_preference
75 == wgpu::PowerPreference::HighPerformance
76 {
77 wgpu::MemoryHints::Performance
78 } else {
79 wgpu::MemoryHints::MemoryUsage
80 },
81 trace: wgpu::Trace::Off,
82 ..Default::default()
83 })
84 .await?;
85
86 let texture_format = wgpu::TextureFormat::Bgra8UnormSrgb;
87
88 #[cfg(target_os = "android")]
89 let texture_format = wgpu::TextureFormat::Rgba8UnormSrgb;
90
91 let config = wgpu::SurfaceConfiguration {
92 usage: wgpu::TextureUsages::RENDER_ATTACHMENT,
93 format: texture_format, //wgpu::TextureFormat::Bgra8UnormSrgb,
94 #[cfg(target_os = "android")]
95 width: 1080,
96 #[cfg(not(feature = "android"))]
97 width: size.0,
98 #[cfg(target_os = "android")]
99 height: 2300,
100 #[cfg(not(target_os = "android"))]
101 height: size.1,
102 #[cfg(target_os = "android")]
103 present_mode: wgpu::PresentMode::Mailbox,
104 #[cfg(not(target_os = "android"))]
105 present_mode: settings.present_mode,
106 alpha_mode: settings.alpha_mode,
107 view_formats: vec![texture_format],

Callers

nothing calls this directly

Calls 1

build_default_dataMethod · 0.80

Tested by

no test coverage detected