summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/main.cpp
AgeCommit message (Collapse)Author
2015-05-28Rewrite FileSearch and improve ScanDirectoryTree.comex
- FileSearch is now just one function, and it converts the original glob into a regex on all platforms rather than relying on native Windows pattern matching on there and a complete hack elsewhere. It now supports recursion out of the box rather than manually expanding into a full list of directories in multiple call sites. - This adds a GCC >= 4.9 dependency due to older versions having outright broken <regex>. MSVC is fine with it. - ScanDirectoryTree returns the parent entry rather than filling parts of it in via reference. The count is now stored in the entry like it was for subdirectories. - .glsl file search is now done with DoFileSearch. - IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the results after replacements for better determinism.
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-03-08Merge pull request #2092 from Sonicadvance1/gles_occlusion_queriesRyan Houdek
Implement full occlusion queries for the Nexus 9.
2015-02-24OGL: support palette texture decodingdegasus
2015-02-21Implement full occlusion queries for the Nexus 9.Ryan Houdek
GLES3 spec is worthless and only returns a boolean result for occlusion queries. This is fine for simple cellular games but we need more than a boolean result. Thankfully Nvidia exposes GL_NV_occlusion_queries under a OpenGL ES extension, which allows us to get full samples rendered. The only device this change affects is the Nexus 9, since it is an Nvidia K1 crippled to only support OpenGL ES. No other OpenGL ES device that I know of supports this extension.
2015-02-19Decode EFB copies used as paletted textures.magumagu
A number of games make an EFB copy in I4/I8 format, then use it as a texture in C4/C8 format. Detect when this happens, and decode the copy on the GPU using the specified palette. This has a few advantages: it allows using EFB2Tex for a few more games, it, it preserves the resolution of scaled EFB copies, and it's probably a bit faster. D3D only at the moment, but porting to OpenGL should be straightforward..
2015-02-01VideoBackends: set GLInterface to zero after deleting itdegasus
This fixes a crash on opening the gfx settings after closing a game.
2015-01-31OGL: Fix a memory leak that would occur every time a game is launchedLioncash
2015-01-25PostProcessing: Add support for user-supplied anaglyph shaders.Jules Blok
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-21Merge pull request #1869 from Stevoisiak/GeneralConsistencyRyan Houdek
Minor consistency changes
2015-01-12Minor consistency changesStevoisiak
Mostly small changes, like capitalization and spelling
2015-01-11TexCache: rewrite level calculationdegasus
2014-12-21VideoCommon: split VertexLoaderBase from VertexLoaderdegasus
2014-12-20OGL: Fix OGL3 with stereo enableddegasus
2014-12-18OGL: Don't generate a geometry shader if the backend doesn't support it.Jules Blok
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
2014-12-14VideoCommon: Add a separate constants buffer for the geometry shader.Jules Blok
2014-12-14D3D: Add 3D vision support.Jules Blok
2014-11-23VideoConfig: Limit the Stereo 3D option to the OpenGL backend.Jules Blok
2014-11-17OGL: implement bounding box support with ssbodegasus
This implemention tries to be as accurate as the old SW implemention, but it will remove the dependcy of our vertexloader on videosw.
2014-10-26OGL: Get rid of error macrosLioncash
2014-09-04VideoCommon: Remove support for decoding to ARGB texturesJasper St. Pierre
The D3D / OGL backends only ever used RGBA textures, and the Software backend uses its own custom code for sampling. The ARGB path seems to just be dead code. Since ARGB and RGBA formats are similar, I don't think this will make the code more difficult to read or unable to be used as reference. Somebody who wants to use this code to output ARGB can simply modify the MakeRGBA function to put the shift at the other end.
2014-08-26Unify three types of non-FIFO requests to the GPU thread around ↵comex
Common::Event and Common::Flag. The only possible functionality change is that s_efbAccessRequested and s_swapRequested are no longer reset at init and shutdown of the OGL backend (only; this is the only interaction any files other than MainBase.cpp have with them). I am fairly certain this was entirely vestigial. Possible performance implications: efbAccessReady now uses an Event rather than spinning, which might be slightly slower, but considering the slow loop the flags are being checked in from the GPU thread, I doubt it's noticeable. Also, this uses sequentially consistent rather than release/acquire memory order, which might be slightly slower, especially on ARM... something to improve in Event/Flag, really.
2014-08-19Core: Don't pass through a reference to the window handleJasper St. Pierre
Now that MainNoGUI is properly architected and GLX doesn't need to sometimes craft its own windows sometimes which we have to thread back into MainNoGUI, we don't need to thread the window handle that GLX creates at all. This removes the reference to pass back here, and the g_pWindowHandle always be the same as the window returned by Host_GetRenderHandle(). A future cleanup could remove g_pWindowHandle entirely.
2014-08-17Merge pull request #790 from lioncash/ogl-cleanupLioncash
Small OGL cleanup
2014-08-15OGL: Get rid of an unnecessary WIN32 ifdef in main.cppLioncash
2014-08-15OGL: Fix brace and body placementsLioncash
Also got rid of void argument specifiers. These are a carryover from C.
2014-08-13Change OpenGL's post processing to use the new VideoCommon PP object.Ryan Houdek
Let's OpenGL's PostProcessing namespace be changed to a class inheriting from VideoCommon's PostProcessing class.
2014-08-03Isolate D3D and Software Renderer from wxWidgets codeLioncash
2014-08-02Move GLInterface around to remove VideoBackends dependency on DolphinWXPierre Bourdon
2014-07-26Remove the 3D Vision hack.Jules Blok
The hack was needed because the Nvidia 3D Vision heuristics are documented to only support surfaces that are the same size as the backbuffer. This would be the case if you enabled the hack and selected the "Auto (Window Size)" internal resolution. However, on recent drivers the same effect is achieved by selecting the "Auto (Multiple)" internal resolution. Therefore the hack is no longer required.
2014-07-20VideoConfig: Add "Borderless Fullscreen" option.Jules Blok
This option will disable exclusive fullscreen for users who prefer the old behaviour.
2014-07-11mark all local functions as staticdegasus
2014-06-25Centralize the logging code into its own folder in Common.Lioncash
2014-06-15Remove EmuWindow.Armada
All it did was raise complexity.
2014-05-19ogl: drop csaa supportdegasus
2014-04-12OpenGL backend: remove useless header Globals.h.magumagu
The header has no content, so it can can just be deleted.
2014-04-12OpenGL config: clear backend_info.Adapters on initmagumagu
Fixes a minor UI glitch where if you switch from Direct3D to OpenGL, the OpenGL config page would appear to have an adapter choice available.
2014-04-11VideoBackend: remove unused config vars.magumagu
No point to keeping around variables which are always "true".
2014-03-17More range-based loops and overridesTillmann Karras
2014-03-14Kill off some usages of c_str.Lioncash
Also changes some function params, but this is ok. Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-09clang-modernize -use-nullptrTillmann Karras
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-02-18Convert all includes to relative paths.Lioncash
2014-02-15fix ogl video config crashdegasus
This will happen when playing on any other backend than ogl which have a non-trival GLInterface::GetMode() method.
2014-01-31VideoCommon: remove Cache Displaylistdegasus
This option was known to break every second game and only boost a bit. It also seems to be broken because of streaming into pinned memory and buffer storage buffers. v2: also remove dlc_desc
2014-01-18Merge of GL-AutoChoose.Ryan Houdek
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
2013-12-31Remove unnecessary Src/ foldersJasper St. Pierre