Commit Graph

7886 Commits

Author SHA1 Message Date
Ryan Houdek 650bae12e1 Bit of a failure. Fixes 6964.
I was attempting to grab wglSwapIntervalEXT prior to having a valid WGL context.
This was doomed to fail.
2014-01-23 08:04:33 -06:00
Ryan Houdek 07db7520bf [GLExt-Cleanup] This cleans up some extra bits unneeded in the extension headers
gl.h and glext.h provide most of the function pointer typedefs and defines for extensions and core features.
The only one it doesn't provide is GL 1.1 function typedefs, but this is to be expected.
If anything needs defines or typedefs in their header in the future, that's as easy as before.
2014-01-23 07:11:13 -06:00
Lioncash 391d26d3bf [DolphinWX] Prevent hotkeys from being assigned to more than one button/function.
Prior to this commit it was possible to assign the same keycode to more than one button.

ie. Say I assigned Open with the hotkey Ctrl+O; well, it was possible to also add it to another function as well, which leads to hotkey clashing.

Now, say I assign Open with Ctrl+O, but then assign that same hotkey to Refresh List; it will unbind the hotkey from Open and then assign it to refresh list.
2014-01-22 18:28:59 -05:00
degasus 3cb5bb3b30 VertexLoader: temp class for reader/writer 2014-01-21 23:44:51 +01:00
degasus 0b97b33ceb VertexLoader: inline destionation buffer 2014-01-21 19:23:07 +01:00
degasus c613868f57 VertexLoader: load scale factor as const, this will save some assembler instructions 2014-01-21 18:54:16 +01:00
degasus f90fe90320 fix windows debug comile
This is broken because of revision ebbf1d392b
2014-01-21 14:23:50 +01:00
degasus ebbf1d392b VideoCommon: merge trivial parts of VertexManager::Flush 2014-01-21 10:47:00 +01:00
degasus 60632fda6f OpenGL: remove small optimization
This one was introduced to reduce the glBindTexture and glActiveTexture calls. But it was quite a bit of logic and only an improvment on uploading/creating a texture, which is done rarely.
2014-01-21 10:34:48 +01:00
degasus fe02833f13 OpenGL: fix our ubo workaround when blend_func_extended is missing 2014-01-21 10:03:05 +01:00
Scott Mansell 8b2c540544 Finally Merge branch 'videosoftware-xfb'
This adds xfb support to the videosoftware backend, which increases it's
accuracy and more imporantly, enables the usage of many homebrew apps
which write directly to the xfb on the videosoftware backend.

Conflicts:
	Source/Core/VideoBackends/Software/SWRenderer.cpp
	Source/Core/VideoBackends/Software/SWmain.cpp
2014-01-21 00:10:00 +13:00
Scott Moreau 2c8340e1dc Move GLInterface.h into GLInterface directory 2014-01-20 00:46:21 -07:00
Scott Moreau 4b3c338930 Merge Platform.h into GLInterface.h 2014-01-20 00:32:01 -07:00
Ryan Houdek 683dbc09ac Stop building GLExtensions.cpp twice(One in GL, one in software). We don't need to build it twice, this'll save a bit of time in the build process.
Also a bit of spacing cleanup.
2014-01-19 11:37:37 -06:00
Scott Moreau 84aa98a5a4 wayland: Add bits required to run as a wayland client. 2014-01-19 10:36:20 -07:00
Tillmann Karras 21b0252e27 Jit64: disable non-IEEE mode emulation
I give up. Merging the ppc_fp branch has caused issues in numerous games
and I can't find the bug. I'm leaving this merged to enable easy
recompilation for people who would like to play games that benefit from
non-IEEE mode emulation (e.g. Starfox Assault).
2014-01-19 09:36:08 +01:00
Rachel Bryk 4a81baff3f Reenable vsync after releasing tab even if frame limit is disabled. 2014-01-19 02:48:59 -05:00
Ryan Houdek 5d26bf6d9d Rename our GLInterface class function 'GetProcAddress' in order to not have clashing function names due to Windows. 2014-01-18 14:18:32 +00:00
Ryan Houdek bea484e12f Move Win32 specific function grabbing fallback to WGL.cpp. Fixes issue 6964. 2014-01-18 14:10:24 +00:00
Ryan Houdek 839df31347 Merge of GL-AutoChoose.
This branch is the final step of fully supporting both OpenGL and OpenGL ES in the same binary.
This of course only applies to EGL and won't work for GLX/AGL/WGL since they don't really support GL ES.
The changes here actually aren't too terrible, basically change every #ifdef USE_GLES to a runtime check.

This adds a DetectMode() function to the EGL context backend.
EGL will iterate through each of the configs and check for GL, GLES3_KHR, and GLES2 bits
After that it'll change the mode from _DETECT to whichever one is the best supported.
After that point we'll just create a context with the mode that was detected
2014-01-18 04:11:59 +00:00
degasus 5a599d472e Merge branch 'GLExtensions' 2014-01-17 16:49:51 +01:00
degasus 304adc6e0d IndexGenerator: inline all variables
As we do lots of writes to *Iptr, the compiler isn't allowed to cache any shared variable (neither index nor Iptr itself).
This commit inlines Iptr + index into the index generator functions, so the compiler know that they are const.
2014-01-17 16:34:53 +01:00
degasus 1d6425bd5e IndexGenerator: drop unused variable 2014-01-17 16:34:53 +01:00
degasus 6b01839525 VideoCommon: merge triangle+list+point index buffers
We are used to render them out of order as long as everything else matches, but rendering order does matter, so we have to flush on primitive switch. This commit implements this flush.
Also as we flush on primitive switch, we don't have to create three different index buffers. All indices are now stored in one buffer.

This will slow down games which switch often primitive types (eg ztp), but it should be more accurate.
2014-01-17 16:34:53 +01:00
degasus e932a349e8 [GLExtensions] fixup for missing changes on rebase 2014-01-17 16:10:10 +01:00
Ryan Houdek 29e0a90b88 [GLExtensions] Rename internal GetProcAddress function since it clashes with the global Windows function. Fix Windows function pointer grabbing. 2014-01-17 16:06:46 +01:00
Ryan Houdek 3d4d3f6b11 [GLExtensions] Remove a bunch of unneeded headers. Fix Linux+EGL compiling. Move include to glx.h around to work around it including global GL/gl.h 2014-01-17 16:06:29 +01:00
Ryan Houdek 6cdb05b633 [GLExtensions] OpenGL 3.0 also added GL_ARB_map_buffer_range to core. 2014-01-17 16:06:23 +01:00
Ryan Houdek a5ffe9932a [GLExtensions] Future proof ourself by putting the default: instance on the top, so we'll grab extensions if they support something newer. Handle older GLVersions in the case they get that far. 2014-01-17 16:06:18 +01:00
Ryan Houdek 2a11fead5c [GLExtensions] Populate the extension list for OpenGL implementations that don't show core extensions. 2014-01-17 16:06:13 +01:00
Ryan Houdek 0ea6718d99 [GLExtensions] Fix OS X build. 2014-01-17 16:06:08 +01:00
Ryan Houdek 34c9a33807 [GLExtensions] Remove AGL GetProcAddress. Change dlsym to using RTLD_NEXT. Enable dlsym fallback for OS X 2014-01-17 16:06:03 +01:00
Ryan Houdek ca96274936 [GLExtensions] Make sure to link against libdl since we use it to grab GL function pointers in Linux/Android in the case the GLInterface->GetProcAddress fails. 2014-01-17 16:05:57 +01:00
Ryan Houdek 45dfa3a481 [GLExtensions] Missed a couple USE_GLES3 compile time differences. 2014-01-17 16:05:52 +01:00
Ryan Houdek 97dc20d1be [GLExtensions] Pull in all the function pointers for OpenGL 1.1, This removes the need for a couple compile time differences between GL and GLES3 mode. 2014-01-17 16:05:40 +01:00
Ryan Houdek f308b878b2 [GLExtensions] Oops. Don't just outright disable these helper functions. 2014-01-17 16:05:34 +01:00
Ryan Houdek cfb8b43b4a [GLExtensions] Don't fail out loading funciton pointers in both ES2 and ES3 modes. 2014-01-17 16:05:25 +01:00
Ryan Houdek fc1f8291d6 [GLExtensions] Make sure to initialize our function pointers with VideoSoftware as well. 2014-01-17 16:05:07 +01:00
Ryan Houdek 17955fa025 [GLExtensions] Still had a GLEW lib hanging out in the CMake file for the software renderer. 2014-01-17 16:01:49 +01:00
Ryan Houdek 2a8ee1a7ff [GLExtensions] Hopefully fix OS X build. 2014-01-17 16:01:35 +01:00
Jack Frost f4bd7bdef0 fix windows build
add the GL include (back) to Base.props
use a similar technique to GLX.cpp (by Sonic) in WGL.cpp to get
wglSwapIntervalEXT without the WGLEW check

Conflicts:
	Source/Core/VideoBackends/OGL/OGL.vcxproj
	Source/Core/VideoBackends/OGL/OGL.vcxproj.filters
	Source/VSProps/Base.props
2014-01-17 16:01:17 +01:00
Ryan Houdek 10bd61a9d2 [GLExtensions] Dynamically pull in the GL 1.3 and 1.4 functions as well. 2014-01-17 15:56:54 +01:00
Ryan Houdek d5a7ea2041 [GLExtensions] KHR_debug on OpenGL ES 3 has a KHR suffix on their function pointers. In Desktop OpenGL there is no suffix. So handle this correctly. Make the GrabFunction macro slightly less evil, so update the init_* to reflect it. Thanks Bh44L for the suggestion. 2014-01-17 15:56:28 +01:00
Ryan Houdek d093276e93 [GLExtensions] Fix a typo in KHR_debug 2014-01-17 15:56:20 +01:00
Ryan Houdek a024c515c8 [GLExtensions] Remove glew includes from wgl and agl. 2014-01-17 15:56:04 +01:00
Ryan Houdek cf8865a6e5 [GLExtensions] Add ARB_buffer_storage to negate at least one null pointer instance. 2014-01-17 15:52:34 +01:00
Ryan Houdek 71681de81a [GLExtensions] Initial code drop for GLExtensions. This drops GLEW entirely from the codebase. This has been tested on Android and Linux+ATI. Of course untested on Windows and Apple. Also untested with Linux + EGL but should be fine there. There are most likely a couple of extensions I'm missing which would result in null pointer runs but not bad for the initial commit.
Conflicts:
	CMakeLists.txt
	Externals/GLew/glew.vcxproj
	Externals/GLew/glew.vcxproj.filters
	Source/Core/VideoBackends/OGL/CMakeLists.txt
	Source/Core/VideoBackends/OGL/GLFunctions.cpp
	Source/Core/VideoBackends/OGL/GLFunctions.h
	Source/Core/VideoBackends/OGL/GLUtil.h
	Source/Core/VideoBackends/OGL/Render.cpp
	Source/VSProps/Base.props
2014-01-17 15:50:51 +01:00
degasus 770485ad04 VertexLoader: don't check for possible range
I(index) < std::numeric_limits<I>::max() is always true, so we don't have to check it
2014-01-16 22:07:48 +01:00
degasus 5eae39766b enable buffer_storage on nvidia 331.38 on linux
it works fine here, and as the VSH is removed, this is the newest driver.
2014-01-16 17:51:38 +01:00
degasus 331af32038 fixup "Remove the ZTP speedup hack"
This fixes revision b49c09c36b
2014-01-16 00:26:49 +01:00