tornavis/source/blender/windowmanager
Thomas Dinges 697b447c20 Metal: MTLContext implementation and immediate mode rendering support.
MTLContext provides functionality for command encoding, binding management and graphics device management. MTLImmediate provides simple draw enablement with dynamically encoded data. These draws utilise temporary scratch buffer memory to provide minimal bandwidth overhead during workload submission.

This patch also contains empty placeholders for MTLBatch and MTLDrawList to enable testing of first pixels on-screen without failure.

The Metal API also requires access to the GHOST_Context to ensure the same pre-initialized Metal GPU device is used by the viewport. Given the explicit nature of Metal, explicit control is also needed over presentation, to ensure correct work scheduling and rendering pipeline state.

Authored by Apple: Michael Parkin-White

Ref T96261

(The diff is based on 043f59cb3b)

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D15953
2022-09-22 17:32:43 +02:00
..
gizmo Cleanup: spelling in comments 2022-09-16 18:14:33 +10:00
intern Metal: MTLContext implementation and immediate mode rendering support. 2022-09-22 17:32:43 +02:00
message_bus Cleanup: fix typos 2022-08-15 13:48:50 +02:00
xr Cleanup: spelling in comments 2022-07-06 15:28:54 +10:00
CMakeLists.txt GPU: replace GLEW with libepoxy 2022-08-15 16:10:29 +02:00
WM_api.h Cleanup: remove ED_types.h & ACTIVE, DESELECT definitions 2022-09-08 12:08:20 +10:00
WM_keymap.h Cleanup: use event parameters for functions that create key-map items 2022-04-04 14:32:42 +10:00
WM_message.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
WM_toolsystem.h Adding `const Scene*` parameter in many areas. 2022-09-14 21:30:56 +02:00
WM_types.h Cleanup: spelling in comments, correct doxy slashes, replace '/w' 2022-09-07 13:04:44 +10:00
wm.h Cleanup: ensure space after file named in headers 2022-04-04 13:34:42 +10:00
wm_cursors.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
wm_draw.h Cleanup: ensure space after file named in headers 2022-04-04 13:34:42 +10:00
wm_event_system.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
wm_event_types.h Cleanup: comment unused INPUTCHANGE event 2022-09-07 16:34:44 +10:00
wm_files.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
wm_surface.h File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
wm_window.h Introduce headless OpenGL rendering on Linux 2022-08-15 16:54:29 +02:00