extern crate fontconfig; extern crate freetype; extern crate libc; extern crate glutin; extern crate gl; extern crate cgmath; extern crate euclid; mod list_fonts; mod text; mod renderer; use renderer::{Glyph, QuadRenderer}; fn main() { let window = glutin::Window::new().unwrap(); let (width, height) = window.get_inner_size_pixels().unwrap(); unsafe { window.make_current() }; unsafe { gl::load_with(|symbol| window.get_proc_address(symbol) as *const _); gl::Viewport(0, 0, width as i32, height as i32); } let rasterizer = text::Rasterizer::new(); let glyph_R = Glyph::new(&rasterizer.get_glyph(180., 'R')); let glyph_u = Glyph::new(&rasterizer.get_glyph(180., 'u')); let glyph_s = Glyph::new(&rasterizer.get_glyph(180., 's')); let glyph_t = Glyph::new(&rasterizer.get_glyph(180., 't')); unsafe { gl::Enable(gl::BLEND); gl::BlendFunc(gl::SRC_ALPHA, gl::ONE_MINUS_SRC_ALPHA); gl::Enable(gl::MULTISAMPLE); } let renderer = QuadRenderer::new(width, height); for event in window.wait_events() { unsafe { gl::ClearColor(0.08, 0.08, 0.08, 1.0); gl::Clear(gl::COLOR_BUFFER_BIT); } renderer.render(&glyph_R, 10.0, 10.0); renderer.render(&glyph_u, 130.0, 10.0); renderer.render(&glyph_s, 250.0, 10.0); renderer.render(&glyph_t, 370.0, 10.0); window.swap_buffers(); match event { glutin::Event::Closed => break, _ => () } } }