Commit Graph

49 Commits

Author SHA1 Message Date
twinaphex 1b0ab1c05f Cleanups 2020-02-21 07:34:53 +01:00
twinaphex 7c7d0f596a HAVE_MENU_WIDGETS now decoupled from HAVE_MENU 2020-02-17 21:28:42 +01:00
twinaphex b00bf17153 Move menu_widgets to gfx/ and call it gfx_widgets 2020-02-17 01:54:07 +01:00
twinaphex b229f267e4 Rename menu_widgets to gfx_widgets 2020-02-17 01:43:40 +01:00
twinaphex 47af95469a (font_driver.c) Remove configuration.h dependency 2020-02-16 21:59:03 +01:00
twinaphex f0e889b552 Change prototype of video_driver_set_size 2020-01-31 15:06:50 +01:00
twinaphex 1216c3ef6d (OSX/Metal) Buildfix 2020-01-04 17:44:33 +01:00
Tor Arne Vestbø b5cf9b639e metal: Improve shader debugging
Having the path to each shader is helpful when debugging the
rendering pipeline. The render command encoder label is limited
to just the filename of the shader, as the graphics debugging
UI in Xcode doesn't handle long names very well.

We don't encode the pass number into the string as the shaders
can be organized in a graph, not just a linked list, so an
indexed order can be misrepresenting the flow.
2019-09-25 22:36:40 +02:00
Tor Arne Vestbø 91caf28bfc metal: Add some missing debug labels and groups 2019-09-25 22:36:40 +02:00
twinaphex ad1fb29092 (Metal) Refactor 2019-09-22 10:28:51 +02:00
Tor Arne Vestbø af75ddd04a metal: Draw video stats on top of overlay 2019-09-02 20:02:16 +02:00
Tor Arne Vestbø 204407b64a metal: Set up correct viewport before rendering overlay 2019-09-02 18:02:30 +02:00
Tor Arne Vestbø 48d28aa734 metal: Split menu drawing out from core drawing 2019-09-02 18:02:30 +02:00
Tor Arne Vestbø e6227f9898 Use correct uniforms when blitting menu frame with Metal
Fixes broken rgui with the Metal video driver.
2019-09-02 13:01:42 +02:00
LazyBumHorse a882901e39 save unmodified auto-shaders as a reference instead of a copy, see:
- implement #reference directive for auto-shaders
 - replace usual preset saving and loading functions with video_shader_read_preset() and video_shader_write_preset()
 - apply saved presets automatically for console menus
 - move auto-shader saving logic from menus into menu_shader.c menu_shader_manager_save_auto_preset()
 - refactor menu_shader_manager_save_preset() into menu_shader_manager_save_preset_internal()
2019-08-22 16:57:28 +02:00
twinaphex 6c671faed6 Start preparing for menu_widgets_ready to be moved to retroarch.c 2019-08-15 14:20:51 +02:00
twinaphex 65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00
LazyBumHorse f8b92770d4 simplify video_shader_read_conf_preset() calls 2019-07-21 18:15:28 +02:00
Yoshi Sugawara f292a5b9cb macos: fix call to video_shader_read_conf_preset 2019-07-20 12:08:37 -10:00
twinaphex c0787accc3 Use config_file_new_from_path_to_string 2019-07-18 12:13:09 +02:00
LazyBumHorse b5199d7921 fix black screen in Metal 2019-06-22 11:07:08 +02:00
LazyBumHorse 692dc9f6a9 refactor shader checks affected by last commit and more:
- gl.c: refactor backend fallback into more general gl2_get_fallback_shader_type
 - d3d9-12, gl_core, gx2_gfx, gl, vulkan: more consistent shader init and `set_shader` behavior
 - configuration.c: remove check_shader_compatibility
 - shader_glsl.c, shader_gl_cg.c: use `video_shader_get_type_from_ext`
 - shader_gl_cg.c: add shader type check with fallback to stock like in shader_glsl.c
 - menu_shader.c: use `enum rarch_shader_type` instead of `unsigned`
 - video_shader_parse.c: add `video_shader_to_str` for easier logging
 - remove `type` from `struct video_shader`, which was always set to CG and wrongly used in lang_process.cpp's `slang_process()` (has no further consequences because the code is unused)
2019-06-18 13:44:19 +02:00
twinaphex f60306b232 Rename read_conf_cgp/write_conf_cgp to
read_conf_preset/write_conf_preset
2019-06-15 09:00:35 +02:00
LazyBumHorse 9ab49b7b2c Add FrameDirection for metal and gx2_gfx 2019-05-29 21:06:44 +02:00
twinaphex bc2bdd5734 config_file_read not needed anymore 2019-04-30 13:37:10 +02:00
twinaphex 955a149ce9 Use config_file_read where we can assume we are reading a file 2019-04-22 01:56:24 +02:00
twinaphex 1a8ad73c3f (Cocoa) Unify both headers 2019-02-09 04:40:38 +01:00
twinaphex f49b6e26a0 (Metal) Add menu widget support 2019-02-07 02:00:23 +01:00
orbea 28ff4b391a Clean up white space. 2019-02-03 16:00:50 -08:00
Stuart Carnie 0e295716b9
feat(metal): Add native rotation support for Metal driver
* fix crash when frame or frame size is 0
2018-11-29 22:04:43 -07:00
Stuart Carnie 5c1075127b
chore(metal): Separate legacy GL and Metal source
* Forks of Cocoa / Cocoa Touch to *_metal.* version
* Reverted original GL Cocoa / Cocoa Touch versions
* GL and Metal projects still build
2018-11-04 20:50:50 -07:00
Stuart Carnie 99f497de85 feat(Metal): Add support for screen shots 2018-09-02 17:55:02 -07:00
Stuart Carnie 9d22aacaa7 refactor: Add vertex buffer struct to ShaderTypes and remove global 2018-09-02 17:53:18 -07:00
Stuart Carnie 802697fdec fix(Metal): Use textures for pixel conversion 2018-09-01 11:58:37 -07:00
Stuart Carnie 577d81071e fix(Metal): Cleanup shader logging messages 2018-09-01 11:58:37 -07:00
Stuart Carnie 0291c41afa fix(Metal): Fix blank screen after full screen toggle; window focus 2018-07-14 11:18:21 -07:00
Stuart Carnie 167ad3b57d fix(Metal): Various Metal fixes
* OSD message background
* clear glui background
* add Metal to configuration
* added optional config to compile Metal build without OpenGL
* fixed fill_pathname_join_delim; if out_path and dir are same, don't
  strlcpy, as the results are undefined.
2018-07-12 21:33:18 -07:00
Stuart Carnie a19ea2ed07 feat(Metal): Add support for overlays 2018-07-04 13:12:40 -07:00
Stuart Carnie 844e5e15d0 fix(Metal): fix XRGBA rendering; no nil texture; undefined stuff bad 2018-07-04 08:50:46 -07:00
Stuart Carnie 30d2192338 fix(Metal): Fix release build crash for misaligned read 2018-07-04 00:16:14 -07:00
Stuart Carnie 44ca1062b0 formatting 2018-07-03 22:32:12 -07:00
Stuart Carnie a0900ec433 feat(Metal): full xmb pipeline support
Menu TODOs:

* understand why ribbon does not look the same as GL
* add clear support to `MenuDisplay` for glui
2018-07-03 22:32:12 -07:00
Stuart Carnie 4a101734a1 More cleanup
* use single render command encoder for display for better performance
* Context handles all rendering and presentation
2018-07-03 22:32:12 -07:00
Stuart Carnie 1c5d94aca1 Improve performance; don't care about previous state ofcolor attachment
Color attachment is being completely overwritten.
2018-07-03 22:32:12 -07:00
Stuart Carnie 5e1f991e32 feat(Metal): initial xmb and glui menu support
TODOs

* menu shader pipeline effects
* refactor / optimize graphics rendering
2018-07-03 22:32:12 -07:00
Stuart Carnie 367c15f488 feat(Metal): font rendering
* FPS and other OSD messages render correctly
* add autoreleasepool around entire render loop to avoid memory leaks
2018-06-23 23:54:23 -07:00
Stuart Carnie eacd52f009 fix(Metal): improve shader stability
* use MTKView, which handles layer and scaling changes automatically
  between displays
2018-06-23 13:33:27 -07:00
Twinaphex 467aa30131 Cleanups 2018-06-21 07:26:05 +02:00
Stuart Carnie 411bcf8bdd feat(apple): Metal support for macOS
* includes rgui
* shader support

This is a work-in-progress and there are some bugs and visual artifacts
still to be fixed.
2018-06-20 21:33:45 -07:00