Replace GLEW with a glLoadGen loader.
This should fix the GL loading errors that occur in some drivers due to the use of deprecated functions by GLEW. Side benefits are more accurate auto-completion (deprecated function and symbols don't exist) and faster pointer loading (less entrypoints to load). In addition it removes an external library depency, simplifying the build system a bit and eliminating one set of binary libraries for Windows.
This commit is contained in:
		| @@ -6,7 +6,7 @@ set -e | |||||||
| if [ "$TRAVIS_OS_NAME" = linux -o -z "$TRAVIS_OS_NAME" ]; then | if [ "$TRAVIS_OS_NAME" = linux -o -z "$TRAVIS_OS_NAME" ]; then | ||||||
|     sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y |     sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y | ||||||
|     sudo apt-get -qq update |     sudo apt-get -qq update | ||||||
|     sudo apt-get -qq install g++-4.8 xorg-dev libglu1-mesa-dev libglew-dev libxcursor-dev |     sudo apt-get -qq install g++-4.8 xorg-dev libglu1-mesa-dev libxcursor-dev | ||||||
|     sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90 |     sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 90 | ||||||
|     git clone https://github.com/glfw/glfw.git |     git clone https://github.com/glfw/glfw.git | ||||||
|     mkdir glfw/build && cd glfw/build |     mkdir glfw/build && cd glfw/build | ||||||
| @@ -14,5 +14,5 @@ if [ "$TRAVIS_OS_NAME" = linux -o -z "$TRAVIS_OS_NAME" ]; then | |||||||
|     cd -	 |     cd -	 | ||||||
| elif [ "$TRAVIS_OS_NAME" = osx ]; then | elif [ "$TRAVIS_OS_NAME" = osx ]; then | ||||||
|     brew tap homebrew/versions |     brew tap homebrew/versions | ||||||
|     brew install glew qt5 glfw3 pkgconfig |     brew install qt5 glfw3 pkgconfig | ||||||
| fi | fi | ||||||
|   | |||||||
| @@ -19,7 +19,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modul | |||||||
| set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests) | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests) | ||||||
| include(FindX11 REQUIRED) | include(FindX11 REQUIRED) | ||||||
| find_package(PkgConfig REQUIRED) | find_package(PkgConfig REQUIRED) | ||||||
| find_package(GLEW REQUIRED) |  | ||||||
| find_package(OpenGL REQUIRED) | find_package(OpenGL REQUIRED) | ||||||
| pkg_search_module(GLFW REQUIRED glfw3) | pkg_search_module(GLFW REQUIRED glfw3) | ||||||
|  |  | ||||||
| @@ -33,7 +32,6 @@ ENDIF (APPLE) | |||||||
| #external includes | #external includes | ||||||
| include_directories(${GLFW_INCLUDE_DIRS}) | include_directories(${GLFW_INCLUDE_DIRS}) | ||||||
| include_directories(${OPENGL_INCLUDE_DIR}) | include_directories(${OPENGL_INCLUDE_DIR}) | ||||||
| include_directories(${GLEW_INCLUDE_PATH}) |  | ||||||
|  |  | ||||||
| # workaround for GLFW linking on OSX | # workaround for GLFW linking on OSX | ||||||
| link_directories(${GLFW_LIBRARY_DIRS}) | link_directories(${GLFW_LIBRARY_DIRS}) | ||||||
|   | |||||||
							
								
								
									
										47
									
								
								externals/cmake-modules/FindGLEW.cmake
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								externals/cmake-modules/FindGLEW.cmake
									
									
									
									
										vendored
									
									
								
							| @@ -1,47 +0,0 @@ | |||||||
| # |  | ||||||
| # Try to find GLEW library and include path. |  | ||||||
| # Once done this will define |  | ||||||
| # |  | ||||||
| # GLEW_FOUND |  | ||||||
| # GLEW_INCLUDE_PATH |  | ||||||
| # GLEW_LIBRARY |  | ||||||
| # |  | ||||||
|  |  | ||||||
| IF (WIN32) |  | ||||||
|     FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h |  | ||||||
|         $ENV{PROGRAMFILES}/GLEW/include |  | ||||||
|         ${PROJECT_SOURCE_DIR}/src/nvgl/glew/include |  | ||||||
|         DOC "The directory where GL/glew.h resides") |  | ||||||
|     FIND_LIBRARY( GLEW_LIBRARY |  | ||||||
|         NAMES glew GLEW glew32 glew32s |  | ||||||
|         PATHS |  | ||||||
|         $ENV{PROGRAMFILES}/GLEW/lib |  | ||||||
|         ${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin |  | ||||||
|         ${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib |  | ||||||
|         DOC "The GLEW library") |  | ||||||
| ELSE (WIN32) |  | ||||||
|     FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h |  | ||||||
|         /usr/include |  | ||||||
|         /usr/local/include |  | ||||||
|         /sw/include |  | ||||||
|         /opt/local/include |  | ||||||
|         DOC "The directory where GL/glew.h resides") |  | ||||||
|     FIND_LIBRARY( GLEW_LIBRARY |  | ||||||
|         NAMES GLEW glew |  | ||||||
|         PATHS |  | ||||||
|         /usr/lib64 |  | ||||||
|         /usr/lib |  | ||||||
|         /usr/local/lib64 |  | ||||||
|         /usr/local/lib |  | ||||||
|         /sw/lib |  | ||||||
|         /opt/local/lib |  | ||||||
|         DOC "The GLEW library") |  | ||||||
| ENDIF (WIN32) |  | ||||||
|  |  | ||||||
| IF (GLEW_INCLUDE_PATH) |  | ||||||
|     SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") |  | ||||||
| ELSE (GLEW_INCLUDE_PATH) |  | ||||||
|     SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") |  | ||||||
| ENDIF (GLEW_INCLUDE_PATH) |  | ||||||
|  |  | ||||||
| MARK_AS_ADVANCED( GLEW_FOUND ) |  | ||||||
							
								
								
									
										73
									
								
								externals/glew-1.10.0/LICENSE.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								externals/glew-1.10.0/LICENSE.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,73 +0,0 @@ | |||||||
| The OpenGL Extension Wrangler Library |  | ||||||
| Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org> |  | ||||||
| Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org> |  | ||||||
| Copyright (C) 2002, Lev Povalahev |  | ||||||
| All rights reserved. |  | ||||||
|  |  | ||||||
| Redistribution and use in source and binary forms, with or without  |  | ||||||
| modification, are permitted provided that the following conditions are met: |  | ||||||
|  |  | ||||||
| * Redistributions of source code must retain the above copyright notice,  |  | ||||||
|   this list of conditions and the following disclaimer. |  | ||||||
| * Redistributions in binary form must reproduce the above copyright notice,  |  | ||||||
|   this list of conditions and the following disclaimer in the documentation  |  | ||||||
|   and/or other materials provided with the distribution. |  | ||||||
| * The name of the author may be used to endorse or promote products  |  | ||||||
|   derived from this software without specific prior written permission. |  | ||||||
|  |  | ||||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  |  | ||||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  |  | ||||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |  | ||||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  |  | ||||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  |  | ||||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  |  | ||||||
| SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |  | ||||||
| INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |  | ||||||
| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |  | ||||||
| ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |  | ||||||
| THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Mesa 3-D graphics library |  | ||||||
| Version:  7.0 |  | ||||||
|  |  | ||||||
| Copyright (C) 1999-2007  Brian Paul   All Rights Reserved. |  | ||||||
|  |  | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a |  | ||||||
| copy of this software and associated documentation files (the "Software"), |  | ||||||
| to deal in the Software without restriction, including without limitation |  | ||||||
| the rights to use, copy, modify, merge, publish, distribute, sublicense, |  | ||||||
| and/or sell copies of the Software, and to permit persons to whom the |  | ||||||
| Software is furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| The above copyright notice and this permission notice shall be included |  | ||||||
| in all copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |  | ||||||
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL |  | ||||||
| BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |  | ||||||
| AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |  | ||||||
| CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Copyright (c) 2007 The Khronos Group Inc. |  | ||||||
|  |  | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a |  | ||||||
| copy of this software and/or associated documentation files (the |  | ||||||
| "Materials"), to deal in the Materials without restriction, including |  | ||||||
| without limitation the rights to use, copy, modify, merge, publish, |  | ||||||
| distribute, sublicense, and/or sell copies of the Materials, and to |  | ||||||
| permit persons to whom the Materials are furnished to do so, subject to |  | ||||||
| the following conditions: |  | ||||||
|  |  | ||||||
| The above copyright notice and this permission notice shall be included |  | ||||||
| in all copies or substantial portions of the Materials. |  | ||||||
|  |  | ||||||
| THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |  | ||||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |  | ||||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |  | ||||||
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |  | ||||||
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |  | ||||||
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |  | ||||||
| MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |  | ||||||
							
								
								
									
										18
									
								
								externals/glew-1.10.0/README.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								externals/glew-1.10.0/README.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| See doc/index.html for more information. |  | ||||||
|  |  | ||||||
| If you downloaded the tarball from the GLEW website, you just need to: |  | ||||||
|  |  | ||||||
|     Unix: |  | ||||||
|  |  | ||||||
|         make |  | ||||||
|  |  | ||||||
|     Windows: |  | ||||||
|  |  | ||||||
|         use the project file in build/vc6/ |  | ||||||
|  |  | ||||||
| If you wish to build GLEW from scratch (update the extension data from |  | ||||||
| the net or add your own extension information), you need a Unix |  | ||||||
| environment (including wget, perl, and GNU make).  The extension data |  | ||||||
| is regenerated from the top level source directory with: |  | ||||||
|  |  | ||||||
|         make extensions |  | ||||||
							
								
								
									
										12
									
								
								externals/glew-1.10.0/TODO.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								externals/glew-1.10.0/TODO.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +0,0 @@ | |||||||
| Major: |  | ||||||
|  - add support for windows mini-client drivers |  | ||||||
|  - add windows installer (msi) |  | ||||||
|  - separate build of static and shared object files (for mingw and |  | ||||||
|  cygwin) |  | ||||||
|  - start designing GLEW 2.0 |  | ||||||
|  |  | ||||||
| Minor: |  | ||||||
|  - make auto scripts work with text mode cygwin mounts |  | ||||||
|  - add support for all SUN, MTX, and OML extensions |  | ||||||
|  - make auto/Makefile more robust against auto/core/*~ mistakes |  | ||||||
|  - web poll on separating glew, glxew and wglew |  | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/Win32/glew32.dll
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/Win32/glew32.dll
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/Win32/glewinfo.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/Win32/glewinfo.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/glew32.dll
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/glew32.dll
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/glewinfo.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/glewinfo.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/visualinfo.exe
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/bin/Release/x64/visualinfo.exe
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										18062
									
								
								externals/glew-1.10.0/include/GL/glew.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18062
									
								
								externals/glew-1.10.0/include/GL/glew.h
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1669
									
								
								externals/glew-1.10.0/include/GL/glxew.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1669
									
								
								externals/glew-1.10.0/include/GL/glxew.h
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1421
									
								
								externals/glew-1.10.0/include/GL/wglew.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1421
									
								
								externals/glew-1.10.0/include/GL/wglew.h
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/Win32/glew32.lib
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/Win32/glew32.lib
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/Win32/glew32s.lib
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/Win32/glew32s.lib
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/x64/glew32.lib
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/x64/glew32.lib
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/x64/glew32s.lib
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								externals/glew-1.10.0/lib/Release/x64/glew32s.lib
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -10,9 +10,9 @@ endif() | |||||||
| add_executable(citra ${SRCS} ${HEADERS}) | add_executable(citra ${SRCS} ${HEADERS}) | ||||||
|  |  | ||||||
| if (APPLE) | if (APPLE) | ||||||
|     target_link_libraries(citra core common video_core iconv pthread ${COREFOUNDATION_LIBRARY} ${OPENGL_LIBRARIES} ${GLEW_LIBRARY} ${GLFW_LIBRARIES}) |     target_link_libraries(citra core common video_core iconv pthread ${COREFOUNDATION_LIBRARY} ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES}) | ||||||
| else() | else() | ||||||
|     target_link_libraries(citra core common video_core GLEW pthread X11 Xxf86vm Xi Xcursor ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES} rt ${X11_Xrandr_LIB} ${X11_xv86vmode_LIB} ${PNG_LIBRARIES}) |     target_link_libraries(citra core common video_core pthread X11 Xxf86vm Xi Xcursor ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES} rt ${X11_Xrandr_LIB} ${X11_xv86vmode_LIB} ${PNG_LIBRARIES}) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| #install(TARGETS citra RUNTIME DESTINATION ${bindir}) | #install(TARGETS citra RUNTIME DESTINATION ${bindir}) | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include <GL/glew.h> |  | ||||||
| #include <GLFW/glfw3.h> | #include <GLFW/glfw3.h> | ||||||
|  |  | ||||||
| #include "common/emu_window.h" | #include "common/emu_window.h" | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ else() | |||||||
| 	set(RT_LIBRARY rt) | 	set(RT_LIBRARY rt) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| target_link_libraries(citra-qt core common video_core qhexedit ${ICONV_LIBRARY} ${COREFOUNDATION_LIBRARY} ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${RT_LIBRARY} ${GLEW_LIBRARY} ${PNG_LIBRARIES}) | target_link_libraries(citra-qt core common video_core qhexedit ${ICONV_LIBRARY} ${COREFOUNDATION_LIBRARY} ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${RT_LIBRARY} ${PNG_LIBRARIES}) | ||||||
| if(USE_QT5) | if(USE_QT5) | ||||||
|     target_link_libraries(citra-qt Qt5::Gui Qt5::Widgets Qt5::OpenGL) |     target_link_libraries(citra-qt Qt5::Gui Qt5::Widgets Qt5::OpenGL) | ||||||
| endif() | endif() | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ set(SRCS    clipper.cpp | |||||||
|             utils.cpp |             utils.cpp | ||||||
|             vertex_shader.cpp |             vertex_shader.cpp | ||||||
|             video_core.cpp |             video_core.cpp | ||||||
|  |             renderer_opengl/generated/gl_3_2_core.c | ||||||
|             renderer_opengl/renderer_opengl.cpp |             renderer_opengl/renderer_opengl.cpp | ||||||
|             renderer_opengl/gl_shader_util.cpp |             renderer_opengl/gl_shader_util.cpp | ||||||
|             debug_utils/debug_utils.cpp) |             debug_utils/debug_utils.cpp) | ||||||
| @@ -19,6 +20,7 @@ set(HEADERS clipper.h | |||||||
|             renderer_base.h |             renderer_base.h | ||||||
|             vertex_shader.h |             vertex_shader.h | ||||||
|             video_core.h |             video_core.h | ||||||
|  |             renderer_opengl/generated/gl_3_2_core.h | ||||||
|             renderer_opengl/renderer_opengl.h |             renderer_opengl/renderer_opengl.h | ||||||
|             renderer_opengl/gl_shader_util.h |             renderer_opengl/gl_shader_util.h | ||||||
|             renderer_opengl/gl_shaders.h |             renderer_opengl/gl_shaders.h | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								src/video_core/renderer_opengl/generated/Readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/video_core/renderer_opengl/generated/Readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | These file were generated by the [glLoadGen](https://bitbucket.org/alfonse/glloadgen/wiki/Home) OpenGL loader generator and have been checked in as-is. You can re-generate them using version 2.0.2 of glLoadGen and executing the following command: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | lua LoadGen.lua -version 3.2 -profile core -indent space 3_2_core | ||||||
|  | ``` | ||||||
							
								
								
									
										1186
									
								
								src/video_core/renderer_opengl/generated/gl_3_2_core.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1186
									
								
								src/video_core/renderer_opengl/generated/gl_3_2_core.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1609
									
								
								src/video_core/renderer_opengl/generated/gl_3_2_core.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1609
									
								
								src/video_core/renderer_opengl/generated/gl_3_2_core.h
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -4,7 +4,7 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include <GL/glew.h> | #include "generated/gl_3_2_core.h" | ||||||
|  |  | ||||||
| namespace ShaderUtil { | namespace ShaderUtil { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -247,10 +247,9 @@ void RendererOpenGL::SetWindow(EmuWindow* window) { | |||||||
| void RendererOpenGL::Init() { | void RendererOpenGL::Init() { | ||||||
|     render_window->MakeCurrent(); |     render_window->MakeCurrent(); | ||||||
|  |  | ||||||
|     GLenum err = glewInit(); |     int err = ogl_LoadFunctions(); | ||||||
|     if (GLEW_OK != err) { |     if (ogl_LOAD_SUCCEEDED != err) { | ||||||
|         ERROR_LOG(RENDER, "Failed to initialize GLEW! Error message: \"%s\". Exiting...", |         ERROR_LOG(RENDER, "Failed to initialize GL functions! Exiting..."); | ||||||
|                   glewGetErrorString(err)); |  | ||||||
|         exit(-1); |         exit(-1); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -265,7 +264,6 @@ void RendererOpenGL::Init() { | |||||||
|  |  | ||||||
|     // Initialize everything else |     // Initialize everything else | ||||||
|     // -------------------------- |     // -------------------------- | ||||||
|  |  | ||||||
|     InitFramebuffer(); |     InitFramebuffer(); | ||||||
|  |  | ||||||
|     NOTICE_LOG(RENDER, "GL_VERSION: %s\n", glGetString(GL_VERSION)); |     NOTICE_LOG(RENDER, "GL_VERSION: %s\n", glGetString(GL_VERSION)); | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include <GL/glew.h> | #include "generated/gl_3_2_core.h" | ||||||
|  |  | ||||||
| #include "common/common.h" | #include "common/common.h" | ||||||
| #include "common/emu_window.h" | #include "common/emu_window.h" | ||||||
|   | |||||||
| @@ -30,11 +30,6 @@ void Start() { | |||||||
|  |  | ||||||
| /// Initialize the video core | /// Initialize the video core | ||||||
| void Init(EmuWindow* emu_window) { | void Init(EmuWindow* emu_window) { | ||||||
|  |  | ||||||
|     // Required in order for GLFW to work on Linux,  |  | ||||||
|     // or for GL contexts above 2.x on OS X |  | ||||||
|     glewExperimental = GL_TRUE; |  | ||||||
|  |  | ||||||
|     g_emu_window = emu_window; |     g_emu_window = emu_window; | ||||||
|     g_renderer = new RendererOpenGL(); |     g_renderer = new RendererOpenGL(); | ||||||
|     g_renderer->SetWindow(g_emu_window); |     g_renderer->SetWindow(g_emu_window); | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ | |||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="debug_utils\debug_utils.cpp" /> |     <ClCompile Include="debug_utils\debug_utils.cpp" /> | ||||||
|  |     <ClCompile Include="renderer_opengl\generated\gl_3_2_core.c" /> | ||||||
|     <ClCompile Include="renderer_opengl\renderer_opengl.cpp" /> |     <ClCompile Include="renderer_opengl\renderer_opengl.cpp" /> | ||||||
|     <ClCompile Include="renderer_opengl\gl_shader_util.cpp" /> |     <ClCompile Include="renderer_opengl\gl_shader_util.cpp" /> | ||||||
|     <ClCompile Include="clipper.cpp" /> |     <ClCompile Include="clipper.cpp" /> | ||||||
| @@ -39,6 +40,7 @@ | |||||||
|     <ClInclude Include="primitive_assembly.h" /> |     <ClInclude Include="primitive_assembly.h" /> | ||||||
|     <ClInclude Include="rasterizer.h" /> |     <ClInclude Include="rasterizer.h" /> | ||||||
|     <ClInclude Include="renderer_base.h" /> |     <ClInclude Include="renderer_base.h" /> | ||||||
|  |     <ClInclude Include="renderer_opengl\generated\gl_3_2_core.h" /> | ||||||
|     <ClInclude Include="utils.h" /> |     <ClInclude Include="utils.h" /> | ||||||
|     <ClInclude Include="vertex_shader.h" /> |     <ClInclude Include="vertex_shader.h" /> | ||||||
|     <ClInclude Include="video_core.h" /> |     <ClInclude Include="video_core.h" /> | ||||||
|   | |||||||
| @@ -7,6 +7,9 @@ | |||||||
|     <Filter Include="debug_utils"> |     <Filter Include="debug_utils"> | ||||||
|       <UniqueIdentifier>{0ac498e6-bbd8-46e3-9d5f-e816546ab90e}</UniqueIdentifier> |       <UniqueIdentifier>{0ac498e6-bbd8-46e3-9d5f-e816546ab90e}</UniqueIdentifier> | ||||||
|     </Filter> |     </Filter> | ||||||
|  |     <Filter Include="renderer_opengl\generated"> | ||||||
|  |       <UniqueIdentifier>{00301d57-24b3-4717-86a4-0073d131eb78}</UniqueIdentifier> | ||||||
|  |     </Filter> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="renderer_opengl\renderer_opengl.cpp"> |     <ClCompile Include="renderer_opengl\renderer_opengl.cpp"> | ||||||
| @@ -25,6 +28,9 @@ | |||||||
|     <ClCompile Include="debug_utils\debug_utils.cpp"> |     <ClCompile Include="debug_utils\debug_utils.cpp"> | ||||||
|       <Filter>debug_utils</Filter> |       <Filter>debug_utils</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|  |     <ClCompile Include="renderer_opengl\generated\gl_3_2_core.c"> | ||||||
|  |       <Filter>renderer_opengl\generated</Filter> | ||||||
|  |     </ClCompile> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClInclude Include="clipper.h" /> |     <ClInclude Include="clipper.h" /> | ||||||
| @@ -50,6 +56,9 @@ | |||||||
|     <ClInclude Include="debug_utils\debug_utils.h"> |     <ClInclude Include="debug_utils\debug_utils.h"> | ||||||
|       <Filter>debug_utils</Filter> |       <Filter>debug_utils</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="renderer_opengl\generated\gl_3_2_core.h"> | ||||||
|  |       <Filter>renderer_opengl\generated</Filter> | ||||||
|  |     </ClInclude> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Text Include="CMakeLists.txt" /> |     <Text Include="CMakeLists.txt" /> | ||||||
|   | |||||||
| @@ -11,7 +11,6 @@ | |||||||
|   <ItemDefinitionGroup> |   <ItemDefinitionGroup> | ||||||
|     <PostBuildEvent> |     <PostBuildEvent> | ||||||
|       <Command>xcopy "$(SolutionDir)data" "$(EmuBinDir)" /Y /S /D |       <Command>xcopy "$(SolutionDir)data" "$(EmuBinDir)" /Y /S /D | ||||||
| xcopy "$(ExternalsDir)glew-1.10.0\bin\Release\$(PlatformName)\glew32.dll" "$(EmuBinDir)" /Y /S /D |  | ||||||
| xcopy "$(ExternalsDir)glfw-3.0.2\lib-msvc100\glfw3.dll" "$(EmuBinDir)" /Y /S /D | xcopy "$(ExternalsDir)glfw-3.0.2\lib-msvc100\glfw3.dll" "$(EmuBinDir)" /Y /S /D | ||||||
| %(Command)</Command> | %(Command)</Command> | ||||||
|     </PostBuildEvent> |     </PostBuildEvent> | ||||||
|   | |||||||
| @@ -9,14 +9,14 @@ | |||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   <ItemDefinitionGroup> |   <ItemDefinitionGroup> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <AdditionalIncludeDirectories>$(ExternalsDir)glew-1.10.0\include;$(ExternalsDir)glfw-3.0.2\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>$(ExternalsDir)glfw-3.0.2\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||||
|       <PreprocessorDefinitions> |       <PreprocessorDefinitions> | ||||||
|       </PreprocessorDefinitions> |       </PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Lib /> |     <Lib /> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalLibraryDirectories>$(ExternalsDir)glew-1.10.0\lib\Release\$(PlatformName);$(ExternalsDir)glfw-3.0.2\lib-msvc100;$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |       <AdditionalLibraryDirectories>$(ExternalsDir)glfw-3.0.2\lib-msvc100;$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> | ||||||
|       <AdditionalDependencies>glfw3dll.lib;opengl32.lib;glew32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>glfw3dll.lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <IgnoreSpecificDefaultLibraries> |       <IgnoreSpecificDefaultLibraries> | ||||||
|       </IgnoreSpecificDefaultLibraries> |       </IgnoreSpecificDefaultLibraries> | ||||||
|     </Link> |     </Link> | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
|       <QtUicExt>.h</QtUicExt> |       <QtUicExt>.h</QtUicExt> | ||||||
|     </UIC> |     </UIC> | ||||||
|     <MOC> |     <MOC> | ||||||
|       <QtCommandLine>/I"$(SolutionDir)src" /I"$(ExternalsDir)glew-1.6.0\include" /I"$(ExternalsDir)sdl-1.2.15\include" /I"$(ExternalsDir)qhexedit"</QtCommandLine> |       <QtCommandLine>/I"$(SolutionDir)src" /I"$(ExternalsDir)sdl-1.2.15\include" /I"$(ExternalsDir)qhexedit"</QtCommandLine> | ||||||
|       <QtKeywords>false</QtKeywords> |       <QtKeywords>false</QtKeywords> | ||||||
|     </MOC> |     </MOC> | ||||||
|     <Link /> |     <Link /> | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|     </Link> |     </Link> | ||||||
|     <MOC> |     <MOC> | ||||||
|       <QtNoDebug>false</QtNoDebug> |       <QtNoDebug>false</QtNoDebug> | ||||||
|       <QtCommandLine>/I"$(SolutionDir)src" /I"$(ExternalsDir)glew-1.6.0\include" /I"$(ExternalsDir)sdl-1.2.15\include" /I"$(ExternalsDir)qhexedit" /D"_DEBUG"</QtCommandLine> |       <QtCommandLine>/I"$(SolutionDir)src" /I"$(ExternalsDir)sdl-1.2.15\include" /I"$(ExternalsDir)qhexedit" /D"_DEBUG"</QtCommandLine> | ||||||
|     </MOC> |     </MOC> | ||||||
|     <PostBuildEvent> |     <PostBuildEvent> | ||||||
|       <Command>xcopy "$(QtBinaryDir)QtCored4.dll" "$(EmuBinDir)" /Y /S /D |       <Command>xcopy "$(QtBinaryDir)QtCored4.dll" "$(EmuBinDir)" /Y /S /D | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user