renders great. need to 2 step it so I can render in the other systems, and figure out how to get winit events into the system. bleh
This commit is contained in:
@@ -143,9 +143,8 @@ fn main() {
|
||||
let mut imgui_platform = ImguiPlatform {
|
||||
platform: platform,
|
||||
};
|
||||
let font_size = 10.0 as f32;
|
||||
imgui_context.context.io_mut().font_global_scale = 10.0 as f32;
|
||||
|
||||
let font_size = 20.0 as f32;
|
||||
imgui_context.context.io_mut().font_global_scale = 1.0 as f32;
|
||||
imgui_context.context.fonts().add_font(&[FontSource::DefaultFontData {
|
||||
config: Some(imgui::FontConfig {
|
||||
oversample_h: 1,
|
||||
|
||||
@@ -9,10 +9,12 @@ use winit::event::{
|
||||
AxisId, DeviceEvent, DeviceId, ElementState, Event, KeyboardInput, ModifiersState, MouseButton,
|
||||
MouseScrollDelta, StartCause, Touch, TouchPhase, WindowEvent,
|
||||
};
|
||||
use winit::window::{Theme, WindowId};
|
||||
use winit::window::{Theme, WindowId, Window};
|
||||
|
||||
use crate::camera::{Camera, CameraController};
|
||||
use crate::owned_event::OwnedWindowEvent::MouseWheel;
|
||||
use crate::{ImguiPlatform, ImguiContext};
|
||||
use std::sync::{Mutex, Arc};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub enum OwnedUIEvent<T> {
|
||||
@@ -244,10 +246,14 @@ pub enum OwnedWindowEvent {
|
||||
pub fn event_dispatch(
|
||||
world: &mut SubWorld,
|
||||
#[resource] event_stack: &mut Vec<OwnedEvent<OwnedEventExtension>>,
|
||||
#[resource] imgui_context: &mut Arc<Mutex<ImguiContext>>,
|
||||
#[resource] imgui_platform: &mut Arc<Mutex<ImguiPlatform>>,
|
||||
#[resource] winit_window: &mut Window,
|
||||
) {
|
||||
use winit::event::Event::DeviceEvent;
|
||||
|
||||
for event in event_stack {
|
||||
|
||||
match event {
|
||||
OwnedEvent::DeviceEvent {
|
||||
event: winit::event::DeviceEvent::MouseMotion { delta },
|
||||
@@ -288,5 +294,9 @@ pub fn event_dispatch(
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
let mut imgui_context = &mut imgui_context.lock().unwrap().context;
|
||||
let mut imgui_platform = &mut imgui_platform.lock().unwrap().platform;
|
||||
|
||||
imgui_platform.handle_event(imgui_context.io_mut(), &winit_window, &event.into());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,50 +246,43 @@ pub fn render_test(
|
||||
|
||||
{
|
||||
|
||||
// let mut imgui_context = &mut imgui_context.lock().unwrap().context;
|
||||
// let mut imgui_platform = &mut imgui_platform.lock().unwrap().platform;
|
||||
//
|
||||
// //imgui_state.context.io_mut().update_delta_time(Duration::new(0,160));
|
||||
// imgui_platform
|
||||
// .prepare_frame(imgui_context.io_mut(), &winit_window)
|
||||
// .expect("Failed to prepare frame");
|
||||
//
|
||||
// // get the frame and build a ui window
|
||||
// let ui = imgui_context.frame();
|
||||
// let window = imgui::Window::new(im_str!("Hello too"));
|
||||
// window
|
||||
// .size([400.0, 200.0], Condition::FirstUseEver)
|
||||
// .position([400.0, 200.0], Condition::FirstUseEver)
|
||||
// .build(&ui, || {
|
||||
// ui.text(im_str!("Frametime: {:?}", 10.0));
|
||||
// });
|
||||
//
|
||||
//
|
||||
// //ui.show_demo_window(&mut demo_open);
|
||||
// imgui_platform.prepare_render(&ui, &winit_window);
|
||||
//
|
||||
// let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor {
|
||||
// label: None,
|
||||
// color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor {
|
||||
// attachment: &frame.output.view,
|
||||
// resolve_target: None,
|
||||
// ops: wgpu::Operations {
|
||||
// load: wgpu::LoadOp::Clear(wgpu::Color {
|
||||
// r: 0.1,
|
||||
// g: 0.2,
|
||||
// b: 0.3,
|
||||
// a: 1.0,
|
||||
// }),
|
||||
// store: true,
|
||||
// },
|
||||
// }],
|
||||
// depth_stencil_attachment: None,
|
||||
// });
|
||||
// renderer.imgui_renderer
|
||||
// .render(ui.render(), &renderer.queue, &renderer.device, &mut rpass)
|
||||
// .expect("Rendering failed");
|
||||
//
|
||||
let mut imgui_context = &mut imgui_context.lock().unwrap().context;
|
||||
let mut imgui_platform = &mut imgui_platform.lock().unwrap().platform;
|
||||
|
||||
//imgui_state.context.io_mut().update_delta_time(Duration::new(0,160));
|
||||
imgui_platform
|
||||
.prepare_frame(imgui_context.io_mut(), &winit_window)
|
||||
.expect("Failed to prepare frame");
|
||||
|
||||
// get the frame and build a ui window
|
||||
let ui = imgui_context.frame();
|
||||
let window = imgui::Window::new(im_str!("Hello too"));
|
||||
window
|
||||
.size([400.0, 100.0], Condition::FirstUseEver)
|
||||
.position([50.0, 50.0], Condition::FirstUseEver)
|
||||
.build(&ui, || {
|
||||
ui.text(im_str!("Frametime: {:?}", 10.0));
|
||||
});
|
||||
|
||||
|
||||
//ui.show_demo_window(&mut demo_open);
|
||||
imgui_platform.prepare_render(&ui, &winit_window);
|
||||
|
||||
let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor {
|
||||
label: None,
|
||||
color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor {
|
||||
attachment: &frame.output.view,
|
||||
resolve_target: None,
|
||||
ops: wgpu::Operations {
|
||||
load: wgpu::LoadOp::Load,
|
||||
store: true,
|
||||
},
|
||||
}],
|
||||
depth_stencil_attachment: None,
|
||||
});
|
||||
renderer.imgui_renderer
|
||||
.render(ui.render(), &renderer.queue, &renderer.device, &mut rpass)
|
||||
.expect("Rendering failed");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user