aboutsummaryrefslogtreecommitdiffstats
path: root/src/win32/init.rs
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-02-19 21:55:15 +0100
committertomaka <pierre.krieger1708@gmail.com>2015-02-19 21:55:15 +0100
commit8e1d0f7a976078ef7031ff84e077f00655d4e061 (patch)
treee03c5d40096b2545fe02fed2ec4668a3872cc3cd /src/win32/init.rs
parent95d70ce549f776794a89c6c83d1df707b914ab8f (diff)
parentf4f84c6566d99c297cddee3c712e94927f313204 (diff)
downloadglutin-8e1d0f7a976078ef7031ff84e077f00655d4e061.tar.gz
glutin-8e1d0f7a976078ef7031ff84e077f00655d4e061.zip
Merge pull request #282 from tomaka/gl-api
Improve the OpenGL context request system
Diffstat (limited to 'src/win32/init.rs')
-rw-r--r--src/win32/init.rs24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/win32/init.rs b/src/win32/init.rs
index 94e2fa0..246a6b7 100644
--- a/src/win32/init.rs
+++ b/src/win32/init.rs
@@ -5,9 +5,12 @@ use std::os;
use super::callback;
use super::Window;
use super::MonitorID;
+
+use Api;
use BuilderAttribs;
use CreationError;
use CreationError::OsError;
+use GlRequest;
use PixelFormat;
use std::ffi::CString;
@@ -353,12 +356,21 @@ fn create_context(extra: Option<(&gl::wgl_extra::Wgl, &BuilderAttribs<'static>)>
if extra_functions.CreateContextAttribsARB.is_loaded() {
let mut attributes = Vec::new();
- if builder.gl_version.is_some() {
- let version = builder.gl_version.as_ref().unwrap();
- attributes.push(gl::wgl_extra::CONTEXT_MAJOR_VERSION_ARB as libc::c_int);
- attributes.push(version.0 as libc::c_int);
- attributes.push(gl::wgl_extra::CONTEXT_MINOR_VERSION_ARB as libc::c_int);
- attributes.push(version.1 as libc::c_int);
+ match builder.gl_version {
+ GlRequest::Latest => {},
+ GlRequest::Specific(Api::OpenGl, (major, minor)) => {
+ attributes.push(gl::wgl_extra::CONTEXT_MAJOR_VERSION_ARB as libc::c_int);
+ attributes.push(major as libc::c_int);
+ attributes.push(gl::wgl_extra::CONTEXT_MINOR_VERSION_ARB as libc::c_int);
+ attributes.push(minor as libc::c_int);
+ },
+ GlRequest::Specific(_, _) => panic!("Only OpenGL is supported"),
+ GlRequest::GlThenGles { opengl_version: (major, minor), .. } => {
+ attributes.push(gl::wgl_extra::CONTEXT_MAJOR_VERSION_ARB as libc::c_int);
+ attributes.push(major as libc::c_int);
+ attributes.push(gl::wgl_extra::CONTEXT_MINOR_VERSION_ARB as libc::c_int);
+ attributes.push(minor as libc::c_int);
+ },
}
if builder.gl_debug {