Commit graph

147 commits

Author SHA1 Message Date
Leon Styhre a443f86235 Removed a huge amount of unnecessary Window* function arguments. 2022-01-19 18:01:54 +01:00
Leon Styhre 0c8efee8ad General refactoring and code cleanup. 2022-01-16 18:18:28 +01:00
Leon Styhre 8a6652552f Set the clang-format option SpaceBeforeCpp11BracedList to true. 2022-01-16 12:09:55 +01:00
Leon Styhre c7964b7ebc Renamed GameList to Gamelist throughout the codebase. 2022-01-15 13:38:09 +01:00
Leon Styhre dde456cbc8 Removed the unnecessary Renderer::getWindowFlags() function. 2022-01-14 18:23:51 +01:00
Leon Styhre 8596aca68c Added an OpenGL ES 2.0 renderer. 2022-01-13 19:39:49 +01:00
Leon Styhre 90fa63f91c Removed support for supplying a separate format than internalFormat when creating OpenGL textures. 2022-01-12 22:25:41 +01:00
Leon Styhre d85c966e49 Added logging of the display refresh rate on startup. 2022-01-12 21:26:43 +01:00
Leon Styhre f80658696c Removed some unnecessary time measurement constants. 2022-01-09 23:50:08 +01:00
Leon Styhre 0c552dd8fb Added a GLSL shader to convert the color model BGRA to RGBA.
Also added support for specifying a separate format as compared to internalFormat when creating textures, although the shader should be used primarily as this is not really supported by the OpenGL standard.
2022-01-07 18:54:52 +01:00
Leon Styhre 254b00a3d8 Large refactoring to improve thread safety and improve singleton pattern usage. 2022-01-04 21:21:26 +01:00
Leon Styhre 2d8d1e6831 (macOS) Reduced the CPU usage significantly while running in the background. 2021-12-14 18:17:46 +01:00
Leon Styhre 08bba3cbaf (macOS) Removed the Monterey VSync workaround as Apple has patched its OS. 2021-12-14 17:15:04 +01:00
Leon Styhre 045e56ae3f (Windows) Changed the fullscreen mode to SDL_WINDOW_BORDERLESS.
Also removed the 'AMD and Intel GPU game launch workaround' menu option.
2021-12-09 18:53:22 +01:00
Leon Styhre 0978c697a2 (macOS) Updated a code comment as the issue described was resolved with SDL 2.0.18 2021-12-08 21:19:24 +01:00
Leon Styhre 515577c8f9 (Unix) Changed the fullscreen mode to SDL_WINDOW_FULLSCREEN_DESKTOP.
Also removed the --windowed, --fullscreen-normal and --fullscreen-borderless command line options and menu entry.
2021-12-05 13:51:39 +01:00
Leon Styhre af52d9b0ac Changed most increment and decrement operators from postfix to prefix for es-core. 2021-11-17 17:48:49 +01:00
Leon Styhre 1005dfcdb7 (macOS) Added a Monterey VSync bug workaround. 2021-11-12 19:49:24 +01:00
Leon Styhre 3e12fcb420 General refactoring and minor optimizations throughout the codebase. 2021-11-09 22:40:08 +01:00
Leon Styhre db5fb48cf8 OCD commit to fix some spelling inconsistencies. 2021-09-21 22:53:08 +02:00
Leon Styhre 63767347f2 Fixed numerous compiler warnings reported by the -Wall and -Wpedantic flags. 2021-09-19 14:37:10 +02:00
Leon Styhre 0b6d987263 Fixed lots of compiler warnings reported by the -Wall and -Wpedantic flags. 2021-09-18 09:53:26 +02:00
Leon Styhre 655340a94c OCD commit. 2021-08-19 21:51:42 +02:00
Leon Styhre 91879c9b4a Cleaned up some rendering code. 2021-08-19 21:39:01 +02:00
Leon Styhre 6e882dd564 Added support for upscaling bitmap images using linear filtering. 2021-08-19 20:16:42 +02:00
Leon Styhre b6b431f0fd Fixed two debug messages that contained incorrect function names. 2021-08-17 22:51:28 +02:00
Leon Styhre 12c853bc31 Moved the remaining math functions to a math utility namespace. 2021-08-17 22:11:16 +02:00
Leon Styhre 7b5d673050 Replaced the internal Vector2i data type and functions with the GLM library equivalent.
Also applied some code formatting changes for braced lists using clang-format.
2021-08-17 18:41:45 +02:00
Leon Styhre 1fb0ccef0d Replaced the internal Vector2f data type and functions with the GLM library equivalent. 2021-08-16 18:25:01 +02:00
Leon Styhre 64a7b8e54a Replaced the internal Vector3f and Vector4f data types and functions with the GLM library equivalents. 2021-08-15 22:03:17 +02:00
Leon Styhre 722468129e Replaced all internal matrix data types and functions with the GLM library equivalents.
Also changed some vectors.
2021-08-15 19:30:31 +02:00
Leon Styhre 1c31a8a49e Hack to be able to build on Raspberry Pi. 2021-07-08 18:08:43 +02:00
Leon Styhre 23fdc00044 Formatted the es-core source tree using clang-format. 2021-07-07 20:31:46 +02:00
Leon Styhre dc29b97e91 Changed es_settings.cfg to es_settings.xml 2021-06-16 19:05:24 +02:00
Leon Styhre 75430f210a Some cosmetic code cleanup. 2021-06-11 17:02:06 +02:00
Leon Styhre 08aefdb48e (macOS) Made the application work properly on high DPI displays. 2021-05-02 12:35:16 +02:00
Leon Styhre 330a539241 Made a Windows-specific fix for the white screen flashing during startup. 2021-03-20 08:52:08 +01:00
Leon Styhre cd19ef7b16 Properly fixed the white screen flash seen on application startup. 2021-03-19 20:05:34 +01:00
Leon Styhre adaec71f5b Some minor code cleanup. 2021-03-19 18:25:37 +01:00
Leon Styhre 5f727f8c00 Improved the scaling of the scanline shader in relation to screen resolution. 2021-03-18 19:52:48 +01:00
Leon Styhre ded5b1d29b Greatly improved the shader post processing code and fixed some related bugs. 2021-03-17 20:29:43 +01:00
Leon Styhre f08b434bc6 Fixed two regressions that could lead to crashes. 2021-03-17 20:16:22 +01:00
Leon Styhre 6a57a44df9 Improved the sizes of some menu GUI elements on 4:3 aspect ratio displays. 2021-03-09 17:17:33 +01:00
Leon Styhre b44a21dc5a (Unix) Added a menu option to enable or disable the desktop compositor. 2021-02-22 21:13:06 +01:00
Leon Styhre ec5f1c1b5f Fixed the annoying white screen flashing when starting the application. 2021-01-25 18:11:18 +01:00
Leon Styhre 4d2ef89864 Added multi-monitor support. 2021-01-24 23:44:50 +01:00
Leon Styhre f7207edca5 (Windows) Fixed an issue with reliably launching games. 2021-01-24 13:51:40 +01:00
Leon Styhre 88235a0f06 Started to add support for multi-monitor setups. 2021-01-24 12:03:44 +01:00
Leon Styhre 97a6558472 (Windows) Made the application have the correct fullscreen size on high DPI displays. 2021-01-21 21:52:28 +01:00
Leon Styhre 632d11e46f Minor code update. 2021-01-16 23:01:13 +01:00
Leon Styhre ef25c675f7 Fixed an issue where separator lines would not get rendered on lower resolutions. 2021-01-16 22:55:38 +01:00
Leon Styhre ee8e0a0c89 Some minor code cleanup. 2021-01-15 18:47:01 +01:00
Leon Styhre 11bf8046d8 Added screen resolution modifiers to get proper high resolution scaling. 2021-01-13 19:42:06 +01:00
Leon Styhre 001a46341e Small improvements to the VSync setup and logging. 2021-01-07 00:17:59 +01:00
Leon Styhre c95334756d Fixed a lot of MSVC compiler warnings. 2020-12-29 12:54:24 +01:00
Leon Styhre 0365e9c572 Fixed some MSVC compiler warnings. 2020-12-29 11:06:01 +01:00
Leon Styhre 0cce86beca Created a common pixel conversion function for both renderers. 2020-12-18 16:49:11 +01:00
Leon Styhre debf072a0e Rewrote some code from C to C++ 2020-12-16 23:59:00 +01:00
Leon Styhre dc620aa11b Cosmetic log output change to the renderer. 2020-11-29 20:33:17 +01:00
Leon Styhre fe4bb0b7e9 Allowed non-accelerated rendering. 2020-11-27 21:04:49 +01:00
Leon Styhre 0b6dce687e Changed to C++ casts throughout the application. 2020-11-17 23:06:54 +01:00
Leon Styhre 9bea6bb17e Added a game info overlay to the screensaver.
Also refactored Window and SystemScreensaver and added a fade-in effect for the shaded background when opening menus.
2020-11-12 00:46:59 +01:00
Leon Styhre 8db04c5fcb Added SPDX license identifiers to all source files. 2020-09-21 19:17:34 +02:00
Leon Styhre 2a852170a8 (Windows) Fixed some build issues and got the OpenGL shaders to work.
Also some additional code cleanup.
2020-09-16 22:14:35 +02:00
Leon Styhre a34bc45e56 Added an opacity shader. 2020-09-12 19:17:26 +02:00
Leon Styhre 3643c08caf Updates to the OpenGL shader handling. 2020-09-12 12:14:48 +02:00
Leon Styhre fd10aba815 Updated the GLSL shader logic and added a postprocessing function. 2020-09-04 18:59:19 +02:00
Leon Styhre d512c2b11d Implemented OpenGL GLSL shader support. 2020-08-30 22:19:37 +02:00
Leon Styhre 77076c22f4 (Unix) Added border to borderless window if the resolution was manually changed.
Also fixed a mistake introduced in the last commit.
2020-08-23 22:40:15 +02:00
Leon Styhre d6baa2d132 (macOS) Add a window border if the user has changed the resolution from the command line. 2020-08-23 22:19:37 +02:00
Leon Styhre 796d2c9ec8 (macOS) Disabled unusable command line arguments. 2020-08-23 21:53:21 +02:00
Leon Styhre b8c6366349 (macOS) Made the game launching more seamless. 2020-08-23 18:41:08 +02:00
Leon Styhre 88a5962926 Changed '#ifdef' to '#if defined()' throughout the code. 2020-08-23 17:04:30 +02:00
Leon Styhre af5a48ed10 Removed unnecessary #ifdefs for the SDL2 include files. 2020-08-23 16:15:06 +02:00
Leon Styhre b0624f2bc9 Updates to make the application work correctly (more or less) on macOS. 2020-08-18 17:48:21 +02:00
Leon Styhre ad960b28ac Various updates to make the application compile on macOS. 2020-08-17 19:15:05 +02:00
Leon Styhre 8fcb56cfb3 Made game launching on Windows much more seamless.
Also added an option to hide the taskbar.
2020-07-18 13:21:44 +02:00
Leon Styhre fe0e09ec7b Changed log level for missing or empty game systems from Info to Debug.
Also did some small changes to the OpenGL logging.
2020-07-12 12:09:01 +02:00
Leon Styhre 5a7fb828a6 Added proper error handling for resource files and improved overall logging. 2020-07-08 17:01:47 +02:00
Leon Styhre 76aa239855 Initial update to make the application build and run on Windows.
Much more work will be needed to get the Windows port working properly.
2020-07-03 20:23:51 +02:00
Leon Styhre e4fdd1e20d Code cleanup and code documentation update.
As of this commit, the initial code cleanup and code documentation has been completed for the entire application.
2020-06-28 18:39:18 +02:00
Leon Styhre 5b17edde8b Additional changes for SDL2 include files.
Of course I had to miss some things..
2020-06-26 18:11:24 +02:00
Leon Styhre eeae8033bd Use SDL2 include files instead of those for SDL version 1.
This resolves an irritating issue in the code editor where SDL2-specific functions could't be found. Not entirely sure about the SDL include file logic for other operating systems than Linux so the #ifdef directives may need to be updated further at a later date.
2020-06-26 18:03:55 +02:00
Leon Styhre 1f74723533 Another code cleanup and code documentation update. 2020-06-26 17:17:35 +02:00
Leon Styhre 0387d515fb Update to fully support Clang/LLVM.
Also a general cleanup of CMakeLists.txt and many small code changes to satisfy Clang that complained quite a lot and actually wouldn't compile the binary at all at first.
2020-06-25 19:52:38 +02:00
Leon Styhre 8fefc9232c Reorganized all resources to a subdirectory structure and added the CMake install prefix to the resource search path.
CMAKE_INSTALL_PREFIX and CMAKE_INSTALL_DATAROOTDIR are now used to resolve the resource path. As of this commit, there are only two paths where resources are searched, under the user home directory and under this install prefix directory (which defaults to /usr/local/share/emulationstation/resources but can be set to for instance /opt/share/emulationstation/resources using the appropriate CMake flags).
2020-06-21 19:35:43 +02:00
Leon Styhre f5d3c8ac0b Removed code for restarting the application, fixed system reboot and power off (and changed these names), fixed some small cosmetic issues with log file output and main menu 2020-05-15 17:58:25 +02:00
Leon Styhre ffcf52c710 Made game launching more seamless and prevent minimizing of window when switching applications. Also added menu entry to choose between normal fullscreen mode and borderless fullscren mode 2020-05-15 17:51:32 +02:00
Tomas Jakobsson b6f0f5c2c7 Fix clearcolors 2020-04-01 16:13:59 +02:00
Tomas Jakobsson 72786c83a0 Prepare for GLES 2.0 2020-01-03 18:04:58 +01:00
John Rassa 8d759c7c5d add 'animate' to theme properties for imagegrid; fix blurriness on image upscaling 2019-10-09 18:51:33 -04:00
Shanti Gilbert 20b367009c Fixes compiling when Renderer_GLES10 is used 2019-09-02 14:50:14 -05:00
Tomas Jakobsson 71ac016c3d Make sure all vertices are properly rounded 2019-08-31 18:19:43 +02:00
Tomas Jakobsson 489d7de096 Eliminate drawRect that takes int's and make sure everything uses the float version properly, this way everything is rounded the same way
Only round the transforms when setting them on the GPU, to make sure everything is rounded the same, but only at the final moment
2019-08-31 17:58:36 +02:00
John Rassa fc58af98fd support for color gradients in drawRect and ImageComponent 2019-08-29 19:47:16 -04:00
Tomas Jakobsson 9de16045c9 whitespace cleanup
fix faulty line endings
silence warnings on windows
2019-08-25 17:23:02 +02:00
Tomas Jakobsson a02a747c50 Redid the entire Renderer
Made all components render using triangle strips
2019-08-25 15:45:22 +02:00