From c1b770cc0db5649c4b9dc52f5e31105b2bc88eb6 Mon Sep 17 00:00:00 2001
From: archshift <admin@archshift.com>
Date: Wed, 30 Apr 2014 17:00:36 -0700
Subject: [PATCH] OpenGL 3+ on OSX with GLFW

---
 src/citra/emu_window/emu_window_glfw.cpp | 9 ++++++++-
 src/video_core/video_core.cpp            | 2 ++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/citra/emu_window/emu_window_glfw.cpp b/src/citra/emu_window/emu_window_glfw.cpp
index e6943f146a..ea1499e7c0 100644
--- a/src/citra/emu_window/emu_window_glfw.cpp
+++ b/src/citra/emu_window/emu_window_glfw.cpp
@@ -27,11 +27,18 @@ EmuWindow_GLFW::EmuWindow_GLFW() {
         exit(1);
     }
     glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
-    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
+    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
+	glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
+	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
     m_render_window = glfwCreateWindow(VideoCore::kScreenTopWidth, 
         (VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight), 
         m_window_title.c_str(), NULL, NULL);
 
+	if (m_render_window == NULL) {
+		printf("Failed to create GLFW window! Exiting...");
+		exit(1);
+	}
+	
     // Setup callbacks
     glfwSetWindowUserPointer(m_render_window, this);
     //glfwSetKeyCallback(m_render_window, OnKeyEvent);
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index f2e17f9f93..4e9cd70bcc 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.cpp
@@ -30,6 +30,8 @@ void Start() {
 
 /// Initialize the video core
 void Init(EmuWindow* emu_window) {
+	glewExperimental = GL_TRUE;
+	
     g_emu_window = emu_window;
     g_emu_window->MakeCurrent();
     g_renderer = new RendererOpenGL();