Add support for the OpenGL debug flag

This commit is contained in:
Tomaka17 2014-11-09 16:07:58 +01:00
parent 9ee0875d4e
commit 8c1b2dd633
4 changed files with 39 additions and 6 deletions

View file

@ -16,8 +16,8 @@ local_data_key!(WINDOW: (ffi::HWND, Sender<Event>))
pub fn new_window(builder_dimensions: Option<(uint, uint)>, builder_title: String,
builder_monitor: Option<super::MonitorID>,
builder_gl_version: Option<(uint, uint)>, builder_vsync: bool,
builder_hidden: bool) -> Result<Window, CreationError>
builder_gl_version: Option<(uint, uint)>, builder_debug: bool,
builder_vsync: bool, builder_hidden: bool) -> Result<Window, CreationError>
{
use std::mem;
use std::os;
@ -298,6 +298,11 @@ pub fn new_window(builder_dimensions: Option<(uint, uint)>, builder_title: Strin
attributes.push(version.val1() as libc::c_int);
}
if builder_debug {
attributes.push(ffi::wgl_extra::CONTEXT_FLAGS_ARB as libc::c_int);
attributes.push(ffi::wgl_extra::CONTEXT_DEBUG_BIT_ARB as libc::c_int);
}
attributes.push(0);
let ctxt = unsafe {

View file

@ -24,8 +24,8 @@ pub struct HeadlessContext(Window);
impl HeadlessContext {
/// See the docs in the crate root file.
pub fn new(builder: HeadlessRendererBuilder) -> Result<HeadlessContext, CreationError> {
let HeadlessRendererBuilder { dimensions, gl_version } = builder;
init::new_window(Some(dimensions), "".to_string(), None, gl_version, false, true)
let HeadlessRendererBuilder { dimensions, gl_version, gl_debug } = builder;
init::new_window(Some(dimensions), "".to_string(), None, gl_version, gl_debug, false, true)
.map(|w| HeadlessContext(w))
}
@ -68,8 +68,9 @@ pub struct Window {
impl Window {
/// See the docs in the crate root file.
pub fn new(builder: WindowBuilder) -> Result<Window, CreationError> {
let WindowBuilder { dimensions, title, monitor, gl_version, vsync, visible } = builder;
init::new_window(dimensions, title, monitor, gl_version, vsync, !visible)
let WindowBuilder { dimensions, title, monitor, gl_version,
gl_debug, vsync, visible } = builder;
init::new_window(dimensions, title, monitor, gl_version, gl_debug, vsync, !visible)
}
}