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…
Reference in a new issue