aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/win32
diff options
context:
space:
mode:
authorDzmitry Malyshau <kvarkus@gmail.com>2015-04-29 23:05:47 -0400
committerDzmitry Malyshau <kvarkus@gmail.com>2015-04-30 22:50:15 -0400
commita42f1f58333a9899d36e18e641f3f52517dd58b1 (patch)
tree8e11e18d3bb3fc4f5a3a5a65eb7c895d515c105c /src/api/win32
parentc1ca5d1d87166daa20d4ae2a9a0a7c8d4ba2ba63 (diff)
downloadglutin-a42f1f58333a9899d36e18e641f3f52517dd58b1.tar.gz
glutin-a42f1f58333a9899d36e18e641f3f52517dd58b1.zip
Implemented gl_core flag
Diffstat (limited to 'src/api/win32')
-rw-r--r--src/api/win32/init.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/api/win32/init.rs b/src/api/win32/init.rs
index 39b9d97..3837069 100644
--- a/src/api/win32/init.rs
+++ b/src/api/win32/init.rs
@@ -374,6 +374,22 @@ unsafe fn create_context(extra: Option<(&gl::wgl_extra::Wgl, &BuilderAttribs<'st
},
}
+ if let Some(core) = builder.gl_core {
+ if is_extension_supported(extra_functions, hdc,
+ "WGL_ARB_create_context_profile")
+ {
+ attributes.push(gl::wgl_extra::CONTEXT_PROFILE_MASK_ARB as libc::c_int);
+ attributes.push(if core {
+ gl::wgl_extra::CONTEXT_CORE_PROFILE_BIT_ARB
+ } else {
+ gl::wgl_extra::CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB
+ } as libc::c_int
+ );
+ } else {
+ return Err(CreationError::NotSupported);
+ }
+ }
+
if builder.gl_debug {
attributes.push(gl::wgl_extra::CONTEXT_FLAGS_ARB as libc::c_int);
attributes.push(gl::wgl_extra::CONTEXT_DEBUG_BIT_ARB as libc::c_int);