Commit Graph

84 Commits

Author SHA1 Message Date
Ariel Abreu
ac4514c596
More stubs and fixes for Xcode 2023-09-25 16:17:44 -04:00
Ariel Abreu
3c656d84f5
[mtl] Only require texture memory to be host-visible if it's not framebuffer-only 2023-04-11 08:16:16 -04:00
Ariel Abreu
c449e7608e
Make Metal an optional part of the build
See the corresponding commit in the main repo
2023-04-06 10:04:50 -04:00
Ariel Abreu
96122cff43
Use Indium's DynamicVK to load Vulkan functions dynamically
This allows us to link to Vulkan dynamically at runtime (via Indium).
2023-04-06 10:04:50 -04:00
Ariel Abreu
6afea83f6c
[mtl-layer] Fix some lock issues with queued drawables 2023-04-06 10:04:49 -04:00
Ariel Abreu
ccf32c6281
Ensure objc presented handlers are invoked
Previously, they would only be invoked if the `present` method was
invoked directly on the objc drawable object.
2023-04-06 10:04:49 -04:00
Ariel Abreu
55bafce1f1
Initial support for Metal layers and drawables
In its current state, I consider this code to be experimental and
unstable. The biggest problem is that there's currently a HUGE memory
leak somewhere (over 2GiB in under 5 seconds at 60fps). I'm committing
what I have now since I don't feel like debugging that right now and it
*does* technically work as-is.

The current approach is not great for performance: first, we render to a Metal/Vulkan
texture in the desired format then blit that to an RGBA Metal/Vulkan
texture shared with
OpenGL. Then, we copy *that* to another OpenGL texture in CAMetalLayer
to use as the content for the layer (we can't keep the drawable's OpenGL
texture, since that has to be recycled). Finally, this is rendered to a
subwindow by CARenderer/CALayerContext. We cannot get rid of the last copy
since we must render to the subwindow somehow and it's the easiest
way to play nice with sublayers. I also don't think we can get rid of the
first copy since OpenGL doesn't support some of Metal/Vulkan's texture
formats; plus, we can't share optimally tiled images between Vulkan and
OpenGL with some vendors' drivers (e.g. AMD).
We *could* get rid of the second copy if we were able to accurately
determine when the content is finally presented; then we could simply
keep the drawable in-use, render it to the subwindow when asked to, and
release it once we know the render is complete.
2023-04-06 10:04:49 -04:00
Thomas A
19b47b890d Generate Headers for AppKit, Cocoa, CoreData, CoreGraphics, CoreText, Onyx2D, and QuartzCore 2022-09-04 10:58:40 -07:00
TheBrokenRail
9700bac810 Removed Unused Code 2021-05-24 21:11:48 -04:00
Ariel Abreu
bedacf6515
Add a bunch of class/constant stubs 2021-02-26 12:42:00 -05:00
Ariel Abreu
228a30a672
Merge remote-tracking branch 'origin/master' into update-sources 2020-06-15 14:30:17 -04:00
Ariel Abreu
e44fa3e280
Initial update to clean up include directories
"initial" because there might some additional modifications necessary later on
2020-05-14 12:57:38 -04:00
TheBrokenRail
b6548a202d Fix Continuation Indent 2020-05-12 17:04:16 -04:00
TheBrokenRail
98620811ce Better Braces 2020-05-12 17:04:16 -04:00
TheBrokenRail
55c7b99e5d Proper Braces 2020-05-12 17:04:16 -04:00
TheBrokenRail
cda40d9947 Code Formatting Using Patched ClangFormat 2020-05-12 17:04:15 -04:00
Ariel Abreu
10e4a6c644
Update CoreVideo framework reexport path 2020-05-05 12:19:20 -04:00
Andrew Hyatt
255b78624f
Fix build issue caused by reorganization 2020-01-08 23:41:11 -05:00
Andrew Hyatt
6116cd1df6
Move stubs from ApplicationServices to CG 2019-06-09 15:43:12 -04:00
Andrew Hyatt
cc89db5830 Add symbols for sketchtool
darlinghq/darling#494
2019-04-01 09:15:47 -04:00
Andrew Hyatt
a13d0363b1 Make QuartzCore reexports dependencies
darlinghq/darling#496
2019-03-26 17:48:08 -04:00
Andrew Hyatt
94403265ab Reexport some libraries in QuartzCore
It reexports CoreImage, CoreVideo, and objc.
2019-03-17 12:39:58 -04:00
Andrew Hyatt
89ca94c60f CAAnimation/CALayer constants
darlinghq/darling#445
2019-01-16 16:36:49 -05:00
Andrew Hyatt
d75da03ddf CAReplicatorLayer and CAScrollLayer classes
darlinghq/darling#445
2019-01-16 16:23:16 -05:00
Andrew Hyatt
38cfae7a6b QuartzCore additions
darlinghq/darling#445
2019-01-16 15:05:59 -05:00
Andrew Hyatt
47df1155c9 Missing Core Animation classes/constants
darlinghq/darling#445
2019-01-09 15:39:53 -05:00
Sergey Bugaev
a66dd5efba NSInteger-ization & CGFloat/O2Float-ization
See https://github.com/darlinghq/darling/issues/418
2018-09-02 23:14:39 +03:00
Sergey Bugaev
50a571eb4b Port Cocotron to the new EGL-based OpenGL.framework
See darlinghq/darling#365

TODO:
* Get rid of the few remaining glX calls
* Port CALayerContext
2018-05-27 08:26:31 +03:00
Andrew Hyatt
71a3529ac6 Set proper QuartzCore version 2017-12-30 22:46:07 -08:00
Andrew Hyatt
bffdf45663 Revert "Build QuartzCore"
This reverts commit ac81f937b5.
2017-12-30 19:15:08 -08:00
Andrew Hyatt
ed34575b90 Build QuartzCore 2017-12-30 19:15:08 -08:00
Sergey Bugaev
348fdf7813 Fix direct isa access 2017-12-17 16:11:05 +03:00
Andrew Hyatt
b2a54b1871 Revert "Link to CF using the new way"
This reverts commit a8364108d4.
2017-08-22 12:20:24 -07:00
Andrew Hyatt
a8364108d4 Link to CF using the new way 2017-08-10 17:46:00 -07:00
Andrew Hyatt
1c81808e25 Create include directories 2017-08-07 23:33:12 -07:00
Sergey Bugaev
74900145cc Build CGLPixelSurface 2017-07-14 00:35:47 +03:00
Sergey Bugaev
13da68a5db Build OpenGL 2017-07-14 00:34:28 +03:00
Sergey Bugaev
934f067913 QuartzCore building, but not linking 2017-07-13 00:46:23 +03:00
Rolf Jansen
bbba7c2199 in the *.xcodeproj files, set indent and tab width to 4 and use tabs to 0, so file editing within the respective projects will honour these settings instead of any custom user settings 2015-10-05 08:11:19 -03:00
Christopher Lloyd
631462795d Reformat entire project using newer style 2015-05-23 20:15:45 -04:00
Christopher Lloyd
426eaa4bcd overhaul of targets and configurations, move from multiple targets to single targets and multiple configurations 2015-05-16 11:07:53 -04:00
Christopher Lloyd
a0336d6dbc merge rolfanroni-cva 2015-04-13 21:53:33 -04:00
Christopher Lloyd
a4cf947897 merge 0e5bc1f andyvn22-cocotron 2015-04-11 22:14:17 -04:00
Christopher Lloyd
c0185d7525 merge dcdf46c 2015-03-29 23:00:41 -04:00
Christopher Lloyd
b381b1982d merge 3d9c3b7 2015-03-26 21:45:09 -04:00
Christopher Lloyd
100fbed89b fix a pile of clang warnings 2013-08-04 01:53:06 -04:00
Christopher Lloyd
2ad3151efb upgrade some projects to 4.6, remove xcconfigs from resources build phase 2013-04-05 11:24:24 -04:00
Christopher Lloyd
54c3412526 move bulk of build settings to xcconfigs, clean out unneeded build rules, phases and settings 2013-04-05 11:01:56 -04:00
Andy Van Ness
0e5bc1f800 fixed Linux AppKit dependencies & build settings 2012-07-13 18:56:18 -04:00
Christopher Lloyd
f442357e0d validated projects with Xcode 4 2012-03-06 09:56:28 -05:00