MCPcopy Create free account
hub / github.com/DioxusLabs/anyrender / window_event

Method window_event

examples/player/src/main.rs:162–231  ·  view source on GitHub ↗
(
        &mut self,
        event_loop: &ActiveEventLoop,
        window_id: WindowId,
        event: WindowEvent,
    )

Source from the content-addressed store, hash-verified

160 }
161
162 fn window_event(
163 &mut self,
164 event_loop: &ActiveEventLoop,
165 window_id: WindowId,
166 event: WindowEvent,
167 ) {
168 let RenderState::Active { window, renderer } = &mut self.render_state else {
169 return;
170 };
171
172 if window.id() != window_id {
173 return;
174 }
175
176 match event {
177 WindowEvent::CloseRequested => event_loop.exit(),
178 WindowEvent::Resized(physical_size) => {
179 self.width = physical_size.width;
180 self.height = physical_size.height;
181 renderer.set_size(self.width, self.height);
182 self.request_redraw();
183 }
184 WindowEvent::RedrawRequested => match renderer {
185 Renderer::Skia(r) => {
186 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
187 }
188 Renderer::Gpu(r) => {
189 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
190 }
191 Renderer::Hybrid(r) => {
192 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
193 }
194 Renderer::Cpu(r) => {
195 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
196 }
197 Renderer::CpuSoftbuffer(r) => {
198 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
199 }
200 Renderer::Null(r) => {
201 r.render(|painter| painter.append_scene(self.scene.clone(), Affine::IDENTITY))
202 }
203 },
204 WindowEvent::KeyboardInput {
205 event:
206 KeyEvent {
207 logical_key: Key::Named(NamedKey::Space),
208 state: ElementState::Pressed,
209 ..
210 },
211 ..
212 } => match renderer {
213 Renderer::Cpu(_) | Renderer::CpuSoftbuffer(_) => {
214 self.set_backend(VelloHybridWindowRenderer::new(), event_loop);
215 }
216 Renderer::Hybrid(_) => {
217 self.set_backend(VelloWindowRenderer::new(), event_loop);
218 }
219 Renderer::Gpu(_) => {

Callers

nothing calls this directly

Calls 5

set_sizeMethod · 0.45
request_redrawMethod · 0.45
renderMethod · 0.45
append_sceneMethod · 0.45
set_backendMethod · 0.45

Tested by

no test coverage detected