mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									76372feb19
								
							
						
					
					
						commit
						478289140d
					
				
					 42 changed files with 2829 additions and 21329 deletions
				
			
		| 
						 | 
					@ -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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue