Commit Graph

41 Commits

Author SHA1 Message Date
Lioncash 38049444da video_core; Get rid of global g_toggle_framelimit_enabled variable
Instead, we make a struct for renderer settings and allow the renderer
to update all of these settings, getting rid of the need for
global-scoped variables.

This also uncovered a few indirect inclusions for certain headers, which
this commit also fixes.
2018-08-10 19:00:09 -04:00
Lioncash 49dc22f84e video_core: Eliminate the g_renderer global variable
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.

For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
2018-08-04 02:36:57 -04:00
Lioncash 153a00ebc0 video_core: Make global EmuWindow instance part of the base renderer class
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.

This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
2018-08-01 21:40:30 -04:00
James Rowe e159c550d8 Rename logging macro back to LOG_* 2018-07-02 21:45:47 -04:00
Lioncash f5bd2617a8 video-core: Move logging macros over to new fmt-capable ones 2018-04-25 09:13:57 -04:00
bunnei 71a932291f renderer_opengl: Logging, etc. cleanup. 2018-03-26 21:16:59 -04:00
James Rowe ea88c44eb8 Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
James Rowe bd5740a721 Remove gpu debugger and get yuzu qt to compile 2018-01-12 19:11:04 -07:00
James Rowe a5b9cd4d18 Remove references to PICA and rasterizers in video_core 2018-01-12 19:11:03 -07:00
bunnei d2a2789dda config: Add option for specifying screen resolution scale factor. 2017-01-07 03:23:22 -05:00
emmauss 4865993e6f Implement Frame rate limiter (#2223)
* implement frame limiter

* fixes
2016-12-06 14:33:19 -05:00
Yuri Kunde Schlesner fa5d9d8266 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
Emmanuel Gil Peyrot 1138ec0d49 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Emmanuel Gil Peyrot 628ed4376a Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
bunnei cfefb55db2 config: Add a setting for graphics V-Sync. 2016-08-29 21:42:30 -04:00
Emmanuel Gil Peyrot c39a267974 VideoCore: Run include-what-you-use and fix most includes. 2016-04-30 17:02:41 +01:00
tfarley 621cf30b24 Config: Add scaled resolution option 2016-04-21 17:27:48 -04:00
MerryMage 9f9c987924 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
LittleWhite 59fe02348a Improve error report from Init() functions
Add error popup when citra initialization failed
2016-03-08 22:05:25 +01:00
Lioncash 4dcc5fe6ab video_core: Make the renderer global a unique_ptr 2015-12-30 08:52:01 -05:00
Lioncash 2cd98a45cb video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
bunnei c03924e60e Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.
- Config: Add an option for selecting to use shader JIT or interpreter.
- Qt: Add a menu option for enabling/disabling the shader JIT.
2015-08-15 18:01:07 -04:00
bunnei 1b42d55a9d Pica: Create 'State' structure and move state memory there. 2015-05-22 22:59:42 -04:00
tfarley 05dc633a8c OpenGL renderer 2015-05-22 15:51:18 -07:00
Yuri Kunde Schlesner e1fbac3ca1 Common: Remove common.h 2015-05-07 15:45:22 -03:00
bunnei 9960c49c21 Set framebuffer layout from EmuWindow. 2015-03-07 17:21:19 -05:00
archshift ef24e72b26 Asserts: break/crash program, fit to style guide; log.h->assert.h
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time)
As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing)

Also removed some GEKKO cruft.
2015-02-10 18:30:31 -08:00
purpasmart96 ebfd831ccb License change 2014-12-20 21:20:24 -08:00
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 2014-12-13 02:08:02 -02:00
Rohit Nirmal 8a62423970 Change NULLs to nullptrs. 2014-12-03 12:57:57 -06:00
archshift 1c02c03e32 Dead code removal: video_core.cpp, load_symbol_map.cpp 2014-09-07 12:09:02 -07:00
Yuri Kunde Schlesner 478289140d 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.
2014-09-01 17:41:56 -03:00
Sacha a3a70e56ac Fix the threading for GL Context in Qt5.
Connect the emu_thread start/finish to a moveContext slot.
2014-08-25 00:47:00 +10:00
archshift d71af1bd20 Use glewExperimental on Linux in order to fix GLFW-mode 2014-08-12 13:42:04 -07:00
archshift ee4717aaae Preprocessor: #if's out OSX-specific GL changes on other platforms 2014-06-12 06:10:55 -04:00
archshift 034e3aabc8 Improved clarity and whitespace
Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5.
2014-05-19 15:21:55 -07:00
archshift 704075f04a Fixed indents 2014-04-30 20:13:28 -07:00
archshift c1b770cc0d OpenGL 3+ on OSX with GLFW 2014-04-30 17:00:36 -07:00
bunnei 5d95bb9843 cleaned up some logging messages 2014-04-10 22:45:40 -04:00
bunnei de0a034a84 fixed project includes to use new directory structure 2014-04-08 20:15:08 -04:00
bunnei 63e46abdb8 got rid of 'src' folders in each sub-project 2014-04-08 19:25:03 -04:00