Blank windows
parent
198254aa79
commit
cdea0ffbea
|
@ -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 () {
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue