Blank windows

main
_ 2020-03-26 01:52:57 +00:00
parent 198254aa79
commit cdea0ffbea
1 changed files with 68 additions and 1 deletions

View File

@ -1,4 +1,71 @@
use opengl_rust::*;
struct SdlThings {
sdl_context: sdl2::Sdl,
window: sdl2::video::Window,
gl_ctx: sdl2::video::GLContext,
}
impl SdlThings {
pub fn new () -> Self
{
let sdl_context = sdl2::init ().unwrap ();
let video_subsystem = sdl_context.video ().unwrap ();
let window = video_subsystem.window ("Racing game.", 1280, 720)
.position_centered ()
.opengl ()
.build ()
.unwrap ();
gl::load_with (|s| {
video_subsystem.gl_get_proc_address (s) as *const _
});
// The only OpenGL function anyone uses, anyway
assert! (gl::Clear::is_loaded ());
let gl_ctx = window.gl_create_context ().unwrap ();
Self {
sdl_context,
window,
gl_ctx,
}
}
}
fn main () {
println! ("Racing game.");
use sdl2::event::Event;
use sdl2::keyboard::{Keycode, Scancode};
let siddle = SdlThings::new ();
let mut time_step = timestep::TimeStep::new (60, 1000);
let mut gl_state = gl_state::GlState::default ();
let mut event_pump = siddle.sdl_context.event_pump ().unwrap ();
'running: loop {
let frames_to_do = time_step.step ();
for event in event_pump.poll_iter () {
match event {
Event::Quit {..} |
Event::KeyDown { keycode: Some (Keycode::Escape), .. } => {
break 'running
},
_ => (),
}
}
siddle.window.gl_make_current (&siddle.gl_ctx).unwrap ();
// Good graphics go here
siddle.window.gl_swap_window ();
std::thread::sleep (std::time::Duration::from_millis (15));
}
}