619 Commits

Author SHA1 Message Date
Kbz-8 5df699c547 working on python bindings 2025-10-22 08:25:00 +02:00
Kbz-8 0d0d2d4451 fixing strings management 2025-10-16 10:36:31 +02:00
Kbz-8 73d31c196e adding python bindings base 2025-10-15 22:32:21 +02:00
kbz_8 d6a7450bdd 143 headless mode (#150) 2025-09-24 19:49:32 +02:00
Kbz-8 5a0a2fccfe updating kvf 2025-09-24 19:39:22 +02:00
Kbz-8 7722e26095 updating readme 2025-09-24 19:22:45 +02:00
Kbz-8 d6f472cf6c fixing physical device selection under swiftshaders 2025-09-24 19:11:53 +02:00
Kbz-8 7ebce77bb3 fixing unit tests CI 2025-09-24 16:32:55 +02:00
Kbz-8 61d7c6ce95 fixing unit tests CI 2025-09-24 16:27:59 +02:00
Kbz-8 c24f1ade64 fixing unit tests CI 2025-09-24 16:24:06 +02:00
Kbz-8 083e3db912 fixing unit tests CI 2025-09-24 15:48:08 +02:00
Kbz-8 1704776df1 fixing unit tests CI 2025-09-24 11:06:05 +02:00
Kbz-8 bae90e5603 fixing unit tests CI 2025-09-24 10:57:29 +02:00
Kbz-8 6766777dca fixing unit tests CI 2025-09-24 10:56:22 +02:00
Kbz-8 baf5a963f3 fixing unit tests CI 2025-09-24 10:55:06 +02:00
Kbz-8 36119a1643 fixing unit tests CI 2025-09-24 10:48:08 +02:00
Kbz-8 5767be94f8 fixing unit tests CI 2025-09-24 10:37:03 +02:00
Kbz-8 a2ba022c01 fixing unit tests CI 2025-09-24 10:26:28 +02:00
Kbz-8 bada4ea193 adding unit test CI 2025-09-24 10:15:54 +02:00
Kbz-8 8c68564be2 adding headless mode 2025-09-24 09:54:44 +02:00
kbz_8 973b177abf update dependencies (#144)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-07-03 10:58:06 +02:00
Kbz-8 a27dada134 [BOT] update dependencies 2025-06-29 00:51:34 +00:00
Kbz-8 26eab93f9f starting to work on headless support 2025-06-24 07:10:02 +02:00
kbz_8 ea9bd71245 Merge branch 'master' into indev 2025-06-23 20:41:57 +02:00
Kbz-8 be3030977a fixing image set pixel 2025-06-23 20:40:42 +02:00
Kbz-8 2fcc9cfaa0 Merge branch 'master' of github.com:seekrs/MacroLibX 2025-06-23 20:35:45 +02:00
Kbz-8 bc1da5a177 fixing image set pixel 2025-06-23 20:35:36 +02:00
kbz_8 d189342d6c update dependencies (#140)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-06-01 11:16:11 +02:00
Kbz-8 efa56f3c05 [BOT] update dependencies 2025-06-01 00:54:50 +00:00
kbz_8 b71ee5411c update dependencies (#139)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-05-18 12:54:08 +02:00
Kbz-8 4fa376bca3 [BOT] update dependencies 2025-05-18 00:46:40 +00:00
kbz_8 a5f8999b8d update dependencies (#138)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-05-11 13:35:22 +02:00
Kbz-8 da48596af4 [BOT] update dependencies 2025-05-11 00:45:50 +00:00
kbz_8 4a5722539e update dependencies (#137)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-05-05 15:47:10 +02:00
Kbz-8 1856934053 [BOT] update dependencies 2025-04-20 00:44:40 +00:00
kbz_8 63f04e5dbd update dependencies (#136)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-04-17 16:49:02 +02:00
Kbz-8 5de7ce6adc [BOT] update dependencies 2025-04-06 00:43:23 +00:00
kbz_8 7f7fd835e1 update dependencies (#135)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-03-23 15:00:05 +01:00
Kbz-8 e493fad120 [BOT] update dependencies 2025-03-23 00:42:57 +00:00
kbz_8 58c44a1cff add rules in valgrind.supp (#134)
Hello,

Following my use of this library for my cub3D project, I noticed some
Valgrind issues that are not handled by the valgrind.supp file.
2025-03-19 11:31:27 +01:00
Jérémy Lorette 00da9ebd7e add rules in valgrind.supp 2025-03-19 08:33:20 +01:00
kbz_8 c54aff0397 Indev (#133) 2025-03-17 11:34:58 +01:00
Kbz-8 49a66e1abc fixing bug 2025-03-17 11:24:43 +01:00
Kbz-8 a2996191d3 yes 2025-03-14 12:41:51 +01:00
kbz_8 30cc6cb0d5 adding bindings (#132) 2025-03-13 17:11:33 +01:00
kbz_8 ad27df221b Merge branch 'master' into indev 2025-03-13 17:06:23 +01:00
Kbz-8 96bb8c94f5 adding bindings 2025-03-13 16:58:10 +01:00
kbz_8 7991b045f3 Indev (#131) 2025-03-13 00:47:48 +01:00
Kbz-8 8c27a1eb20 Merge branch 'indev' of github.com:seekrs/MacroLibX into indev 2025-03-13 00:43:47 +01:00
Kbz-8 0c177eaaa7 removing unnecessary mode in CIs 2025-03-13 00:43:34 +01:00
Kbz-8 ff77f3bf9c adding hidden bindings 2025-03-13 00:40:16 +01:00
Kbz-8 5c1cfdea60 Merge branch 'indev' of github.com:seekrs/MacroLibX into indev 2025-03-13 00:39:22 +01:00
Kbz-8 0a9d423eeb adding hidden bindings 2025-03-13 00:39:01 +01:00
kbz_8 ce291c9c47 Indev (#130) 2025-03-12 23:09:01 +01:00
kbz_8 2dd27f9411 Merge branch 'master' into indev 2025-03-12 23:03:14 +01:00
Kbz-8 91c87e2b7a adding secret bindings 2025-03-12 22:57:29 +01:00
Kbz-8 ac05312375 Merge branch 'indev' of github.com:seekrs/MacroLibX into indev 2025-03-12 21:38:20 +01:00
Kbz-8 d47f71804b yes 2025-03-12 21:37:59 +01:00
kbz_8 970a1b4575 update dependencies (#129)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-03-10 08:49:06 +01:00
Kbz-8 ae9b0beac9 [BOT] update dependencies 2025-03-09 00:34:15 +00:00
kbz_8 b0c8a09697 Indev (#128) 2025-03-08 19:01:54 +01:00
kbz_8 785fb0808e Merge branch 'master' into indev 2025-03-08 18:53:58 +01:00
kbz_8 37bb97b4d1 update dependencies (#124)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-02-24 08:13:09 +01:00
kbz_8 65aa97ceb5 fix(Renderer/Image.cpp): bad moving_y bounds checking (#126) 2025-02-24 08:12:50 +01:00
kbz_8 ba60f93434 Revert "🐛 fix(Renderer/Image.cpp): bad moving_y bounds checking" (#125)
Reverts seekrs/MacroLibX#123
2025-02-24 08:12:05 +01:00
kbz_8 c06a0fb1de Revert "🐛 fix(Renderer/Image.cpp): bad moving_y bounds checking" 2025-02-24 08:11:18 +01:00
kbz_8 cc0e674f3a 🐛 fix(Renderer/Image.cpp): bad moving_y bounds checking (#123)
moved moving_y++ line
2025-02-24 08:11:10 +01:00
Kbz-8 e13ea28ae6 [BOT] update dependencies 2025-02-23 00:40:25 +00:00
Arkturius 312ca527be 🐛 fix(Renderer/Image.cpp): bad moving_y bounds checking 2025-02-22 16:39:09 +01:00
kbz_8 580352f970 update dependencies (#122)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-02-10 08:05:01 +01:00
Kbz-8 278ea3e756 [BOT] update dependencies 2025-02-09 00:39:34 +00:00
kbz_8 cadfce3e7b update dependencies (#121)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-02-02 17:19:08 +01:00
Kbz-8 5c1771a711 [BOT] update dependencies 2025-02-02 00:38:46 +00:00
kbz_8 876be807e2 update dependencies (#120)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-01-26 10:18:23 +01:00
Kbz-8 5c18ceeb16 [BOT] update dependencies 2025-01-26 00:37:34 +00:00
kbz_8 8ff55ee0e7 fixing error message (#119) 2025-01-24 20:30:54 +01:00
Kbz-8 cd9d2dde95 fixing error message 2025-01-24 20:23:28 +01:00
kbz_8 56bbc2204e Fix swapchain surface format selection (#118) 2025-01-22 10:11:02 +01:00
Kbz-8 04294418b7 yes 2025-01-21 21:27:13 +01:00
Kbz-8 eeb563d2c2 fixing msvc compilation issue 2025-01-21 21:24:58 +01:00
Kbz-8 f18fa55b59 fixing swapchain surface format selection 2025-01-21 20:59:57 +01:00
Kbz-8 49dd56ba8f Merge branch 'indev' of github.com:seekrs/MacroLibX into indev 2025-01-21 15:12:30 +01:00
Kbz-8 1934e4a478 adding swapchain format to debug logs 2025-01-21 15:12:09 +01:00
kbz_8 3e5f370281 update dependencies (#117)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-01-19 20:48:42 +01:00
Kbz-8 b156368f9c [BOT] update dependencies 2025-01-19 00:39:17 +00:00
kbz_8 082f9907b0 fixing too recent header (#116) 2025-01-12 21:17:31 +01:00
Kbz-8 430fa0af9e fixing too recent header 2025-01-12 21:13:30 +01:00
kbz_8 99d20ca740 Indev (#115) 2025-01-12 18:39:09 +01:00
Kbz-8 8470080236 fixing deps update 2025-01-12 12:30:43 +01:00
kbz_8 a226e4d746 yes (#114) 2025-01-12 12:28:03 +01:00
kbz_8 f478c44599 update dependencies (#113)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-01-12 12:27:14 +01:00
Kbz-8 be01670919 [BOT] update dependencies 2025-01-12 00:41:23 +00:00
kbz_8 b06150f322 update README.md (#112) 2025-01-11 23:44:59 +01:00
Kbz-8 6cd0aaa42b update README.md 2025-01-11 23:44:37 +01:00
kbz_8 87e2c2002d Update README.md (#111) 2025-01-11 23:26:30 +01:00
kbz_8 52a18af142 Update README.md 2025-01-11 23:26:20 +01:00
kbz_8 f8dc9613d6 release 2.0 (#110) 2025-01-11 23:15:04 +01:00
Kbz-8 07f521d3d5 fixing macOS issue 2025-01-11 23:04:58 +01:00
Kbz-8 d2a8ac46f6 fixing macOS issue 2025-01-11 22:47:26 +01:00
Kbz-8 f73fa1b02d fixing macOS issue 2025-01-11 22:42:40 +01:00
Kbz-8 2030534cf2 fixing macOS issue 2025-01-11 22:28:39 +01:00
Kbz-8 712ac4be64 fixing macOS issue 2025-01-11 22:23:20 +01:00
Kbz-8 809bea2fca fixing macOS issue 2025-01-11 22:21:32 +01:00
Kbz-8 285bcda21f fixing macOS issue 2025-01-11 22:00:42 +01:00
Kbz-8 c9870faaf1 fixing macOS issue 2025-01-11 21:49:30 +01:00
Kbz-8 c6490c979c fixing macOS issue 2025-01-11 21:44:17 +01:00
Kbz-8 427e5aa099 fixing macOS issue 2025-01-11 21:42:50 +01:00
Kbz-8 55f1df2ec7 fixing haeder 2025-01-08 12:37:34 +01:00
Kbz-8 273255ecfe fixing transformations 2025-01-07 19:57:03 +01:00
Kbz-8 f9ef8fc790 fixing possible segmentation fault in Texture::SetLinearRegion 2025-01-07 15:59:26 +01:00
Kbz-8 54b45824b3 fixing things 2025-01-07 01:20:26 +01:00
kbz_8 aa345c7e38 update dependencies (#109)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2025-01-05 12:05:19 +01:00
Kbz-8 9874c1fd5b [BOT] update dependencies 2025-01-05 00:40:54 +00:00
kbz_8 1da9fd767d update dependencies (#107)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-12-29 17:27:48 +01:00
Kbz-8 c6fefe2ffa [BOT] update dependencies 2024-12-29 00:41:02 +00:00
Kbz-8 c60c176a54 wtf is hapenning 2024-12-28 15:42:38 +01:00
Kbz-8 cd906ca117 Merge branch 'indev' of github.com:seekrs/MacroLibX into indev 2024-12-27 23:29:27 +01:00
Kbz-8 f6708058b3 fixing vicious bug in scene code 2024-12-27 23:28:51 +01:00
kbz_8 f07131686f update dependencies (#106)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-12-22 15:42:50 +01:00
Kbz-8 036fa0e7b6 [BOT] update dependencies 2024-12-22 00:40:37 +00:00
Kbz-8 b6edf442a2 re-adding render to texture 2024-12-20 01:19:15 +01:00
Kbz-8 b6660b99d6 fixing documentation in headers 2024-12-17 03:00:12 +01:00
Kbz-8 ffff4722b7 adding multiple hooks supports for events and loop 2024-12-17 02:33:04 +01:00
Kbz-8 8f4dc6e3b5 fixing gcc/msvc error 2024-12-17 01:40:58 +01:00
Kbz-8 6de8d3a4fd fixing gcc/msvc error 2024-12-17 01:03:00 +01:00
Kbz-8 24d9b4b6c9 fixing gcc/msvc error 2024-12-17 00:59:54 +01:00
Kbz-8 905859acba changing endianness getter 2024-12-17 00:42:21 +01:00
Kbz-8 213a8f6a6d implementing endianness check on mlx_color struct 2024-12-17 00:19:13 +01:00
Kbz-8 42e62ac3eb working on endianness with vulkan images 2024-12-17 00:11:21 +01:00
Kbz-8 30328b1732 fixing bug in texture clear 2024-12-16 19:07:16 +01:00
Kbz-8 335c797c12 fixing homebrew path 2024-12-16 17:26:12 +01:00
Kbz-8 d3808cde1a revert 2024-12-16 17:22:34 +01:00
Kbz-8 9183e7c1e8 installing SDL2 framework in macos action 2024-12-16 17:03:53 +01:00
Kbz-8 17ae77d11a update action images 2024-12-16 16:57:23 +01:00
Kbz-8 d379e5a9fe fixing windows compilation issue 2024-12-16 16:39:50 +01:00
Kbz-8 7d407fc6d1 adding gcc13 to CI 2024-12-16 16:39:04 +01:00
Kbz-8 47f6bc73e9 fixing macos compilation issue 2024-12-16 16:17:17 +01:00
Kbz-8 4987a8ca6e implementing last functions, adding put pixel region 2024-12-16 16:13:44 +01:00
Kbz-8 ab4d67d764 finxing memory usages 2024-12-16 01:24:25 +01:00
Kbz-8 11ccc041d2 adding missing function implementation 2024-12-15 03:53:56 +01:00
Kbz-8 323b16f107 reworking application and bridge 2024-12-15 03:35:17 +01:00
Kbz-8 0622684e40 rewritting parts of the API; ci skip 2024-12-14 16:38:44 +01:00
Kbz-8 f5333882c6 working on garbage collection, fixing small issues with font destroy 2024-12-14 01:39:50 +01:00
Kbz-8 5d4d97e05d fixing valgrind issues, injecting garbage collector inside vulkan's funtions 2024-12-13 02:51:52 +01:00
Kbz-8 5a04ad7781 moving experimental features to a new folder 2024-12-04 18:34:53 +01:00
kbz_8 e1add20315 officially push 2.0 to test (#105) 2024-12-04 15:56:59 +01:00
Kbz-8 9bb95be679 fetching deps 2024-12-04 15:56:38 +01:00
Kbz-8 97ea5e3acf trying to fix merge conflicts 2024-12-04 15:55:11 +01:00
Kbz-8 841d140c69 working on subpass dependencies 2024-12-04 15:38:47 +01:00
Kbz-8 fc74873bc6 yes 2024-12-04 15:14:56 +01:00
Kbz-8 37ea1b1cd4 enabling pre compiled header 2024-12-04 15:04:51 +01:00
Kbz-8 1bf92b3b26 adding include check 2024-12-04 14:35:54 +01:00
Kbz-8 cda4faa103 adding compiler version info to makefile header 2024-12-04 14:30:09 +01:00
Kbz-8 5529bbd2e1 adding missing include 2024-12-04 14:19:36 +01:00
Kbz-8 ec2c444051 fixing window resizing 2024-12-04 14:04:44 +01:00
kbz_8 56fec8d1ff update dependencies (#104)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-12-03 14:35:12 +01:00
Kbz-8 e29f5e7edd [BOT] update dependencies 2024-12-01 00:48:21 +00:00
Kbz-8 17fcb85adc working on swapchains 2024-11-26 23:11:03 +01:00
kbz_8 b8966d5907 update dependencies (#103)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-11-24 18:11:21 +01:00
Kbz-8 50edf78e7d [BOT] update dependencies 2024-11-24 00:41:50 +00:00
kbz_8 89b1ae475f yes (#102) 2024-11-22 15:37:01 +01:00
kbz_8 44484798e8 Edit valgrind.supp for libdbus & libnvidia leak (#101)
Added rules in valgrind.supp for libdbus.so & libnvidia leaks
2024-11-22 15:35:43 +01:00
Thomas Arnaud 8cf08d3490 Edit valgrind.supp for libdbus & libnvidia lib 2024-11-22 13:59:35 +01:00
Kbz-8 c85a30e669 working on rtt 2024-11-14 17:38:44 +01:00
Kbz-8 f401b3694a fixing rotation 2024-11-14 11:44:52 +01:00
Kbz-8 f27e5ef043 fixing linux build failure 2024-11-13 12:23:16 +01:00
Kbz-8 35b7408eab adding transformations 2024-11-13 12:17:59 +01:00
Kbz-8 71d1c20a27 adding nesting to debug logs 2024-11-05 12:49:21 +01:00
Kbz-8 8d879fb5bc improving BringToLayer 2024-11-05 11:59:31 +01:00
Kbz-8 d1a5bceb03 fixing bug with image recreation 2024-11-05 11:50:40 +01:00
Kbz-8 5bd66fd362 adding clear color in mlx_clear_window 2024-11-04 21:21:46 +01:00
kbz_8 142ea2d39f update dependencies (#100)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-11-04 17:50:11 +01:00
Kbz-8 21964fc628 [BOT] update dependencies 2024-11-03 00:40:16 +00:00
Kbz-8 af70e2e354 yes 2024-11-03 01:23:52 +01:00
Kbz-8 77f1a2d8f8 added show and hide cursor support, fixing technological debt from original mlx, fixed missaligned comments in mlx.h 2024-10-31 15:16:01 +01:00
Kbz-8 fc404a4d22 updating example 2024-10-31 13:07:07 +01:00
Kbz-8 601c2435f1 fixing texts 2024-10-31 12:54:05 +01:00
Kbz-8 ea950a1901 yes 2024-10-31 12:36:44 +01:00
Kbz-8 524da32c65 yes 2024-10-28 20:19:39 +01:00
Kbz-8 3153941573 yes 2024-10-28 20:17:39 +01:00
kbz_8 51427dce86 Fixing layering issues with text and textures (#99)
![image](https://github.com/user-attachments/assets/804d7dfa-90fd-4d61-b448-61ffa30ed00f)
2024-10-28 20:16:49 +01:00
Namonay 245d556105 Formatting 2024-10-28 20:02:42 +01:00
Namonay df05148d22 Cleaned code 2024-10-28 00:29:11 +01:00
Namonay f7ddf3cccb add: bring textures to draw layer
Adding the Scene::BringToDrawLayer() to fix layering issues after a Scene::ResetScene() call
2024-10-27 23:12:07 +01:00
Kbz-8 77240013a4 fixing segfault at exit 2024-10-27 21:18:22 +01:00
Kbz-8 1721632a75 pushing for vavaas to debug 2024-10-27 20:55:21 +01:00
kbz_8 d3bf2505f6 update dependencies (#98)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-27 11:42:45 +01:00
Kbz-8 c6d6c821a9 [BOT] update dependencies 2024-10-27 00:40:14 +00:00
Kbz-8 d4bd8b62c5 working on texts and fonts 2024-10-27 01:14:07 +02:00
kbz_8 fc6aeab678 feature(platform/window.cpp): put SDL_CreateWindow flags in a define (#97) 2024-10-27 00:42:33 +02:00
kbz_8 53bb936453 fixed code style 2024-10-27 00:34:41 +02:00
killian a7fdb5838d feature(platform/window.cpp): put SDL_CreateWindow flags in a define
Signed-off-by: killian <oss@xtrm.me>
2024-10-27 00:32:22 +02:00
kbz_8 ef61b7943e 2.0 devFixing putpixel and put image overlapping incorrectly after a mlx_clear_window() call (#96)
Fixed m_draw_layer incrementation when TexturePut is called
2024-10-25 23:23:37 +02:00
Namonay 185a2b700c Merge branch 'seekrs:2.0-dev' into 2.0-dev 2024-10-25 23:08:55 +02:00
Kbz-8 da85343e32 yes 2024-10-24 19:13:02 +02:00
Namonay d8a6676063 better naming and removed todo🤓 2024-10-24 05:30:37 +02:00
Namonay 47d0cfb20b this feels wrong 2024-10-24 05:16:37 +02:00
Namonay 92c8014af1 Merge branch '2.0-dev' of github.com:Namonay/MacroLibX into 2.0-dev 2024-10-24 05:15:57 +02:00
Namonay 101b8dac7b this feel so wrong 2024-10-24 05:13:41 +02:00
Kbz-8 cfb41b7b27 yes 2024-10-22 16:25:13 +02:00
Kbz-8 aa26e528c4 fixing compilation issues 2024-10-22 12:09:49 +02:00
Kbz-8 e7cb78557f working on fonts 2024-10-21 23:21:50 +02:00
Kbz-8 05d07e5b72 bozoman solution 2024-10-21 21:58:04 +02:00
Kbz-8 8f757cab08 yes 2024-10-21 19:45:33 +02:00
Kbz-8 c7484b771f fixing put pixel, adding scene change checker 2024-10-21 01:48:01 +02:00
kbz_8 418feba7d3 update dependencies (#95)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-20 02:42:25 +02:00
Kbz-8 0c35f2702e [BOT] update dependencies 2024-10-20 00:40:22 +00:00
kbz_8 226430f01e fixing crash when initializing mlx multiple times (#94) 2024-10-19 10:57:39 +02:00
kbz_8 ae3be69081 Merge branch 'master' into indev 2024-10-19 10:52:55 +02:00
Kbz-8 307270532f fetching deps once a week 2024-10-19 10:51:33 +02:00
Kbz-8 04f9cb1d95 fixing crash when initializing the mlx multiple times 2024-10-19 10:50:50 +02:00
Kbz-8 59455495b6 yes 2024-10-19 10:46:31 +02:00
kbz_8 c45a76a5bf update dependencies (#92)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-19 00:44:08 +02:00
Kbz-8 632117a3a3 yes 2024-10-19 00:43:39 +02:00
Kbz-8 0ea0cde668 fixing inputs bug, fixing missing depth image destruction in scenes 2024-10-17 18:35:33 +02:00
Kbz-8 74dd8a01e2 fixing projection issue 2024-10-17 15:37:39 +02:00
Kbz-8 09561328ed [BOT] update dependencies 2024-10-12 01:21:00 +00:00
kbz_8 baa0ab0a2c update dependencies (#91)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-08 05:29:49 +02:00
Kbz-8 fd56e83c7b [BOT] update dependencies 2024-10-08 01:23:20 +00:00
kbz_8 ea2ee83a3e update dependencies (#90)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-07 06:09:15 +02:00
Kbz-8 5be3c86de4 [BOT] update dependencies 2024-10-07 01:25:31 +00:00
kbz_8 ae02055e18 update dependencies (#89)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-06 07:50:37 +02:00
Kbz-8 74e2d04b7b [BOT] update dependencies 2024-10-06 01:35:52 +00:00
kbz_8 6ad95ca4c4 update dependencies (#88)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-10-06 02:05:35 +02:00
Kbz-8 f08b1f6c8a [BOT] update dependencies 2024-10-05 01:22:08 +00:00
kbz_8 4d640ed70c dumbass (#87) 2024-09-30 03:26:07 +02:00
xtrm 85ada83d57 Update mlx.h 2024-09-30 03:15:44 +02:00
kbz_8 c9ca2187b3 update dependencies (#86)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-09-28 22:03:43 +02:00
Kbz-8 6a0f4fd8dc [BOT] update dependencies 2024-09-27 01:23:16 +00:00
Kbz-8 cf773b586e adding shaders compilation in makefile 2024-09-22 21:39:20 +02:00
Kbz-8 c718915927 fixing release compilation issue 2024-09-21 12:56:21 +02:00
Kbz-8 0b3ca8ec0c adding debug vulkan resources names 2024-09-21 12:18:42 +02:00
Kbz-8 3f065bc77e fixing bugs 2024-09-20 21:43:23 +02:00
Kbz-8 8dd6def84d fixing kvf issues 2024-09-20 17:41:52 +02:00
Kbz-8 4e1ae347a8 removing all singletons 2024-09-20 17:29:42 +02:00
Kbz-8 4ed84d43c1 fixing SDLManager 2024-09-20 17:02:55 +02:00
Kbz-8 48801d1070 fixing vulkan loader, moving vulkan pfns to RenderCore 2024-09-20 16:14:14 +02:00
Kbz-8 e9a8a0cb84 working on vulkan loader 2024-09-16 05:07:02 +02:00
Kbz-8 83432cb356 fixing warnings in kvf 2024-09-15 10:11:08 +02:00
Kbz-8 527a88ebaa fixing compilation issues 2024-09-15 09:03:52 +02:00
Kbz-8 7079e1e42d implementing mouse move and get screen size, removing warnings 2024-09-15 08:56:22 +02:00
Kbz-8 7243c67c3e AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHH 2024-09-15 07:56:28 +02:00
Kbz-8 94873df8fe fixing windows build x3 | replacing compile commands by compile flags 2024-09-15 07:52:25 +02:00
Kbz-8 25b605d7d9 fixing windows build x2 2024-09-14 13:20:31 +02:00
Kbz-8 f743fc717f fixing windows build 2024-09-14 13:14:36 +02:00
Kbz-8 8191191fff fixing macos and windows CI ? x3 2024-09-14 13:04:43 +02:00
Kbz-8 9631305e35 fixing macos and windows CI ? 2024-09-14 12:53:29 +02:00
Kbz-8 14b42a7c9e fixing macos and windows CI ? 2024-09-14 12:44:25 +02:00
Kbz-8 f50dd2d946 fixing compilation issues 2024-09-14 09:55:19 +02:00
kbz_8 3dd68f9942 merge indev into master (#84) 2024-09-14 00:45:30 +02:00
Kbz-8 ffe5704673 fixing compilation issues with GCC 2024-09-14 00:05:50 +02:00
kbz_8 20ec13d2b9 resolving merge (#83) 2024-09-13 23:54:58 +02:00
Kbz-8 77bfe4ff11 yes 2024-09-13 23:51:01 +02:00
kbz_8 33d2b98c55 adding support for changing window position (#82)
added window move function
2024-09-12 21:00:40 +02:00
kbz_8 1adce43d9f fixing codestyle in application.inl 2024-09-12 03:32:08 +02:00
Tidian Delage 466050ee7a adding support for changing window position
mlx_set_window_position(void *mlx, void *win, int x, int y)
2024-09-12 01:32:52 +02:00
kbz_8 6bc505de13 update dependencies (#80)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-09-07 05:17:36 +02:00
Kbz-8 d70d748877 [BOT] update dependencies 2024-09-07 01:17:30 +00:00
Kbz-8 6eaf871d45 fixing compilation issues 2024-09-05 00:41:52 +02:00
Kbz-8 0a84ea6a18 fixing compilation issues, working on textures 2024-09-04 02:35:01 +02:00
Kbz-8 1b996af83f starting to fix compilation issues 2024-09-02 13:36:02 +02:00
Kbz-8 b7d554553b adding depth buffer, ci skip 2024-09-02 13:02:32 +02:00
Kbz-8 d5eeef9559 big refactoring ! ci skip 2024-09-02 09:44:42 +02:00
kbz_8 5cda85d16c update dependencies (#79)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-09-02 09:42:20 +02:00
Kbz-8 9318456afb [BOT] update dependencies 2024-08-31 01:18:08 +00:00
kbz_8 40fe100ecc update dependencies (#75)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-08-22 23:13:32 +02:00
Kbz-8 c1bfc0f27d [BOT] update dependencies 2024-08-17 01:12:49 +00:00
kbz_8 5a09ebb179 Add <algorithm> header to fix compilation issue on Arch Linux (#76)
The code was failing to compile on Arch Linux due to missing definitions
from the <algorithm> header. Including this header resolves the issue,
ensuring compatibility across different environments.
2024-08-08 18:10:22 +02:00
bonsthie 8370ae8324 Add <algorithm> header to fix compilation issue on Arch Linux
The code was failing to compile on Arch Linux due to missing definitions from the <algorithm> header. Including this header resolves the issue, ensuring compatibility across different environments.
2024-08-08 17:49:14 +02:00
kbz_8 a4fcbf187b update dependencies (#74)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-07-20 09:58:01 +02:00
Kbz-8 b15aa648e2 [BOT] update dependencies 2024-07-19 15:46:30 +00:00
kbz_8 9a88a8502e update dependencies (#73)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-07-13 03:50:02 +02:00
Kbz-8 34a46d643a [BOT] update dependencies 2024-07-13 01:13:25 +00:00
Kbz-8 7ecee717f8 fixing compoilation issues 2024-07-05 22:15:36 +02:00
kbz_8 359be83f49 update dependencies (#72)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-07-05 12:59:44 +02:00
Kbz-8 8c8c96bf30 [BOT] update dependencies 2024-07-02 01:12:05 +00:00
kbz_8 e30a243452 update dependencies (#71)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-07-01 22:07:45 +02:00
Kbz-8 f8e1cd4a66 [BOT] update dependencies 2024-06-29 01:10:23 +00:00
kbz_8 d5512b72fa update dependencies (#70)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-06-17 19:32:26 +02:00
Kbz-8 86f3d545ee [BOT] update dependencies 2024-06-15 01:10:51 +00:00
kbz_8 9149f42b95 update dependencies (#69)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-06-08 05:01:50 +02:00
Kbz-8 7aea6682f2 [BOT] update dependencies 2024-06-08 01:10:19 +00:00
kbz_8 d0ca0e4ab7 update dependencies (#68)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-06-04 14:44:26 +02:00
Kbz-8 f6dfed48dd [BOT] update dependencies 2024-06-01 01:13:48 +00:00
kbz_8 5a69dff9d7 update dependencies (#67)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-05-29 18:23:43 +02:00
Kbz-8 b7e2164f91 [BOT] update dependencies 2024-05-28 01:08:56 +00:00
Kbz-8 37e9410d12 removing GLFW support 2024-05-25 16:47:28 +02:00
kbz_8 273858ec8f update dependencies (#65)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-05-25 14:58:18 +02:00
Kbz-8 8f088eb76d [BOT] update dependencies 2024-05-23 01:08:01 +00:00
kbz_8 a7433a6570 🐛 fix(vsupp): dl and dbus errors suppressed (#66)
ehehheheheh
2024-05-22 18:53:36 +02:00
Arkturius 3ab445e780 🐛 fix(vsupp): dl and dbus errors suppressed 2024-05-22 18:30:59 +02:00
killian dd554cce2a feature(Makefile): change color when compiling in debug 2024-04-24 15:00:22 +02:00
killian a182b53d7f feature(Makefile): remove bc dependency, allow usage of -j with make re 2024-04-24 14:57:20 +02:00
Kbz-8 a5f85a8a4c fixing segmentation fault on mlx_destroy_image 2024-04-24 13:52:34 +02:00
Kbz-8 edb44070a9 still refactor 2024-04-24 13:47:58 +02:00
Kbz-8 be19b71c55 still working on code refactoring 2024-04-23 22:59:33 +02:00
kbz_8 ae6a86800e Cool Makefile I guess (#64)
yada yada yada
2024-04-23 22:52:09 +02:00
xtrm b85e0444cb 🔨 chore: mauvaisfeedback 2024-04-23 22:46:32 +02:00
Kbz-8 f8a856db1c working on code refactor 2024-04-23 20:59:50 +02:00
xtrm fc33d33508 🔨 chore(actions): change usage of DEBUG=true to the debug rule 2024-04-23 20:42:39 +02:00
xtrm 14698594d8 🐛 fix(Makefile): optimize color usage 2024-04-23 20:38:26 +02:00
xtrm 024f3fefc3 🐛 fix(actions): try and fix logging in GitHub Actions CI 2024-04-23 20:37:17 +02:00
xtrm 33872806a1 🔨 chore(render_core.cpp): revert moving the warning to Makefile 2024-04-23 20:33:11 +02:00
xtrm 3b4a1de9f3 feature(Makefile): pretty makefile, added -rdynamic LDFLAG, moved debug warning, added debug Makefile rule 2024-04-23 20:21:53 +02:00
Kbz-8 5af4c82c1b fixing multiple window issue 2024-04-22 17:35:41 +02:00
kbz_8 e26af9ae1b update dependencies (#62)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-04-22 12:57:49 +02:00
Kbz-8 8c41eefadb [BOT] update dependencies 2024-04-22 01:07:14 +00:00
kbz_8 25d86eccee merge indev to master (#61) 2024-04-21 18:20:21 +02:00
kbz_8 2393261cb0 Merge branch 'master' into indev 2024-04-21 18:15:25 +02:00
kbz_8 d9d165f17e update dependencies (#60)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-04-21 18:14:31 +02:00
Kbz-8 f446c82780 fixing bug with window destruction within mlx_loop 2024-04-21 18:14:14 +02:00
Kbz-8 810417a251 working 2024-04-21 18:10:36 +02:00
Kbz-8 cc507ea4cf [BOT] update dependencies 2024-04-20 01:04:56 +00:00
Kbz-8 0e04356ea7 begenning the refactor 2024-03-27 23:03:54 +01:00
Kbz-8 b5983ac24b renaming MLX_Window to Window 2024-03-27 13:19:28 +01:00
Kbz-8 abc213c808 working glfw support 2024-03-26 00:11:38 +01:00
Kbz-8 86671b8919 fixing pch compilation error 2024-03-25 19:27:48 +01:00
Kbz-8 982e3e6827 fixing pch compilation error 2024-03-25 19:24:37 +01:00
Kbz-8 e2ea602372 fixing pre compiled header usage, improved compilation time 2024-03-25 19:21:14 +01:00
Kbz-8 7f80671be8 adding pre compiled header 2024-03-25 18:58:48 +01:00
Kbz-8 42fc7d9a86 working on fps capper 2024-03-25 17:33:42 +01:00
Kbz-8 60d3df7969 fixing new gcc warning in GPU allocator, fixing #55 2024-03-25 16:18:24 +01:00
Kbz-8 be52578d37 fixing some bad memory usage 2024-03-25 13:57:20 +01:00
kbz_8 57c5ae5415 update dependencies (#59)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-03-24 23:04:44 +01:00
Kbz-8 c6d6e409f1 [BOT] update dependencies 2024-03-23 01:01:59 +00:00
kbz_8 c0dfcd9244 update dependencies (#57)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-03-15 15:42:44 +01:00
Kbz-8 689608b3fe [BOT] update dependencies 2024-03-09 01:00:27 +00:00
kbz_8 04330a10ac The bro did it again (#54) 2024-02-25 09:40:47 +01:00
kbz_8 a456ad15ce Merge branch 'master' into indev 2024-02-25 09:35:31 +01:00
Kbz-8 e621bb53d4 removing debug print 2024-02-25 09:30:30 +01:00
kbz_8 420ba21b4d merge to master (#53) 2024-02-25 09:15:29 +01:00
Kbz-8 f3de55d6e9 fixing issue with text destruction 2024-02-25 09:02:57 +01:00
Kbz-8 bc1e0fbba9 adding std namespace to all libstd provided primitive types 2024-02-25 08:04:44 +01:00
Kbz-8 80c0146ecd removing unecessary SDL window creation in Vulkan Instance creation 2024-02-24 04:47:05 +01:00
Kbz-8 dbe3bb3cb3 fixing weird color bug with mlx_get_image_pixel 2024-02-24 03:58:12 +01:00
kbz_8 83ecc6e498 update dependencies (#50)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-02-18 21:42:23 +01:00
Kbz-8 8b2965f6dd [BOT] update dependencies 2024-02-17 01:02:17 +00:00
kbz_8 6c31d3347a sync (#49) 2024-02-10 03:12:08 +01:00
kbz_8 7f8ec481f1 Bump peter-evans/create-pull-request from 5 to 6 (#48)
Bumps
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
from 5 to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v6.0.0</h2>
<h2>Behaviour changes</h2>
<ul>
<li>The default values for <code>author</code> and
<code>committer</code> have changed. See &quot;What's new&quot; below
for details. If you are overriding the default values you will not be
affected by this change.</li>
<li>On completion, the action now removes the temporary git remote
configuration it adds when using <code>push-to-fork</code>. This should
not affect you unless you were using the temporary configuration for
some other purpose after the action completes.</li>
</ul>
<h2>What's new</h2>
<ul>
<li>Updated runtime to Node.js 20
<ul>
<li>The action now requires a minimum version of <a
href="https://github.com/actions/runner/releases/tag/v2.308.0">v2.308.0</a>
for the Actions runner. Update self-hosted runners to v2.308.0 or later
to ensure compatibility.</li>
</ul>
</li>
<li>The default value for <code>author</code> has been changed to
<code>${{ github.actor }} &lt;${{ github.actor_id }}+${{ github.actor
}}@users.noreply.github.com&gt;</code>. The change adds the <code>${{
github.actor_id }}+</code> prefix to the email address to align with
GitHub's standard format for the author email address.</li>
<li>The default value for <code>committer</code> has been changed to
<code>github-actions[bot]
&lt;41898282+github-actions[bot]@users.noreply.github.com&gt;</code>.
This is to align with the default GitHub Actions bot user account.</li>
<li>Adds input <code>git-token</code>, the <a
href="https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token">Personal
Access Token (PAT)</a> that the action will use for git operations. This
input defaults to the value of <code>token</code>. Use this input if you
would like the action to use a different token for git operations than
the one used for the GitHub API.</li>
<li><code>push-to-fork</code> now supports pushing to sibling
repositories in the same network.</li>
<li>Previously, when using <code>push-to-fork</code>, the action did not
remove temporary git remote configuration it adds during execution. This
has been fixed and the configuration is now removed when the action
completes.</li>
<li>If the pull request body is truncated due to exceeding the maximum
length, the action will now suffix the body with the message
&quot;...<em>[Pull request body truncated]</em>&quot; to indicate that
the body has been truncated.</li>
<li>The action now uses <code>--unshallow</code> only when necessary,
rather than as a default argument of <code>git fetch</code>. This should
improve performance, particularly for large git repositories with
extensive commit history.</li>
<li>The action can now be executed on one GitHub server and create pull
requests on a <em>different</em> GitHub server. Server products include
GitHub hosted (github.com), GitHub Enterprise Server (GHES), and GitHub
Enterprise Cloud (GHEC). For example, the action can be executed on
GitHub hosted and create pull requests on a GHES or GHEC instance.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2086">peter-evans/create-pull-request#2086</a></li>
<li>fix crazy-max/ghaction-import-gp parameters by <a
href="https://github.com/fharper"><code>@​fharper</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2177">peter-evans/create-pull-request#2177</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2364">peter-evans/create-pull-request#2364</a></li>
<li>Use checkout v4 by <a
href="https://github.com/okuramasafumi"><code>@​okuramasafumi</code></a>
in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2521">peter-evans/create-pull-request#2521</a></li>
<li>Note about <code>delete-branch</code> by <a
href="https://github.com/dezren39"><code>@​dezren39</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2631">peter-evans/create-pull-request#2631</a></li>
<li>98 dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/fharper"><code>@​fharper</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2177">peter-evans/create-pull-request#2177</a></li>
<li><a
href="https://github.com/okuramasafumi"><code>@​okuramasafumi</code></a>
made their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2521">peter-evans/create-pull-request#2521</a></li>
<li><a href="https://github.com/dezren39"><code>@​dezren39</code></a>
made their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2631">peter-evans/create-pull-request#2631</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v5.0.2...v6.0.0">https://github.com/peter-evans/create-pull-request/compare/v5.0.2...v6.0.0</a></p>
<h2>Create Pull Request v5.0.2</h2>
<p>⚙️ Fixes an issue that occurs when using <code>push-to-fork</code>
and both base and head repositories are in the same org/user
account.</p>
<h2>What's Changed</h2>
<ul>
<li>fix: specify head repo by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/2044">peter-evans/create-pull-request#2044</a></li>
<li>20 dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v5.0.1...v5.0.2">https://github.com/peter-evans/create-pull-request/compare/v5.0.1...v5.0.2</a></p>
<h2>Create Pull Request v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: truncate body if exceeds max length by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/1915">peter-evans/create-pull-request#1915</a></li>
<li>12 dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v5.0.0...v5.0.1">https://github.com/peter-evans/create-pull-request/compare/v5.0.0...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/b1ddad2c994a25fbc81a28b3ec0e368bb2021c50"><code>b1ddad2</code></a>
feat: v6 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2717">#2717</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/bb809027fda03cc267431a7d36a88148eb9f3846"><code>bb80902</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.8 to 18.19.10
(<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2712">#2712</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/e0037d470cdeb1c8133acfba89af08639bb69eb3"><code>e0037d4</code></a>
build(deps): bump peter-evans/create-or-update-comment from 3 to 4 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2702">#2702</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/94b1f99e3a73880074d0e669c3b69d376cc8ceae"><code>94b1f99</code></a>
build(deps): bump peter-evans/find-comment from 2 to 3 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2703">#2703</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/69c27eaf4a14a67b5362a51e681f83d3d5e0f96b"><code>69c27ea</code></a>
build(deps-dev): bump ts-jest from 29.1.1 to 29.1.2 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2685">#2685</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/7ea722a0f6286a45eb3005280d83575a74bc8fef"><code>7ea722a</code></a>
build(deps-dev): bump prettier from 3.2.2 to 3.2.4 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2684">#2684</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/5ee839affd4c87811108724370a2819a40e2e5d3"><code>5ee839a</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.7 to 18.19.8
(<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2683">#2683</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/60fc256c678e6ed78d0d42e09675c9beba09cb94"><code>60fc256</code></a>
build(deps-dev): bump eslint-plugin-prettier from 5.1.2 to 5.1.3 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2660">#2660</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/0c677233614c017442253060c74fd2cb7ff349fc"><code>0c67723</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.5 to 18.19.7
(<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2661">#2661</a>)</li>
<li><a
href="https://github.com/peter-evans/create-pull-request/commit/4e288e851b95bd1362e281a255094fcc47ada675"><code>4e288e8</code></a>
build(deps-dev): bump prettier from 3.1.1 to 3.2.2 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/2659">#2659</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/peter-evans/create-pull-request/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2024-02-05 23:17:30 +01:00
dependabot[bot] 25bb57a973 Bump peter-evans/create-pull-request from 5 to 6
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 22:10:30 +00:00
kbz_8 39365f52a2 update dependencies (#47)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-02-02 15:21:14 +01:00
Kbz-8 fafc94248d [BOT] update dependencies 2024-02-02 01:03:23 +00:00
kbz_8 edeaff793a adding check to texture pointers (#46) 2024-01-26 12:11:47 +01:00
kbz_8 2d5758419f Merge branch 'master' into indev 2024-01-26 12:07:15 +01:00
kbz_8 ba063dae3b update dependencies (#45)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-01-26 12:01:23 +01:00
Kbz-8 e018cad851 adding check to texture pointers 2024-01-26 11:59:57 +01:00
Kbz-8 9ee8041710 [BOT] update dependencies 2024-01-26 01:04:35 +00:00
kbz_8 1b50e123c5 yes (#43) 2024-01-24 17:54:37 +01:00
kbz_8 77563b8449 Merge branch 'master' into indev 2024-01-24 17:49:53 +01:00
kbz_8 d0923320a3 yes 2024-01-24 17:49:38 +01:00
Kbz-8 d8cab7aa47 adding rule to gitignore 2024-01-20 08:54:28 +01:00
kbz_8 fcf4d3d030 improving descriptor sets and pools management (#41) 2024-01-20 08:53:13 +01:00
Kbz-8 05362905f7 improving descriptor sets and pools management 2024-01-20 08:46:50 +01:00
kbz_8 6866f2240e adding fps capper (#40) 2024-01-18 15:31:37 +01:00
kbz_8 1903104247 Merge branch 'master' into indev 2024-01-18 15:28:20 +01:00
Kbz-8 04db0a7441 adding fps capper 2024-01-18 15:25:13 +01:00
kbz_8 91cbb15b66 fixing texts allocation issues (#39) 2024-01-18 14:23:05 +01:00
kbz_8 eeded8c8bc Merge branch 'master' into indev 2024-01-18 13:59:37 +01:00
Kbz-8 58e687c952 fixing allocation issues with texts 2024-01-18 13:57:41 +01:00
Kbz-8 a0b536483a fixing shit 2024-01-17 07:41:15 +01:00
Kbz-8 de1e8ed563 i dont know chat i did i was high as f*ck 2024-01-17 05:30:38 +01:00
Kbz-8 a832c3ca40 fixing issue with swapchain recreation 2024-01-16 07:19:27 +01:00
kbz_8 575ee21c7a oh the misery (#38)
Fixed a bug and modified the example/main.c to test all mlx functions 

![image](https://github.com/seekrs/MacroLibX/assets/105780726/d9946f1f-4e97-453f-87a6-953ffd0ad52d)
2024-01-12 14:56:14 +01:00
Namonay 071bc4596b upgraded example to test all mlx functions 2024-01-12 04:25:12 +01:00
Namonay 178690cff3 Fixed mlx_mouse_move() not updating mouse position
Removed SDL_FlushEvent(SDL_MOUSEMOTION) preventing Input::update() from catching new mouse position after a mlx_mouse_move() call
2024-01-12 04:24:24 +01:00
kbz_8 1d566f74e3 Preventing some segfaults (#37)
![nerd](https://github.com/seekrs/MacroLibX/assets/105780726/74152e81-029a-4f35-afda-11e6411646bf)
2024-01-12 01:51:51 +01:00
Namonay eaa1b9afd0 Merge branch 'seekrs:indev' into indev 2024-01-12 01:28:25 +01:00
Namonay a2d40ce844 Added protections to THE bridge 2024-01-12 01:27:02 +01:00
Kbz-8 4dcdcde7d5 improving vsupp 2024-01-12 00:49:42 +01:00
kbz_8 8805f91bfd Indev (#36) 2024-01-11 15:53:39 +01:00
kbz_8 b5ca757189 Merge branch 'master' into indev 2024-01-11 15:48:15 +01:00
Kbz-8 c2d27c8434 fixing compilation error 2024-01-11 15:47:45 +01:00
Kbz-8 5f55dd9b9a fixing vsupp missing character 2024-01-11 15:46:11 +01:00
kbz_8 f044b9ab45 merge indev to master (#35) 2024-01-11 05:32:13 +01:00
kbz_8 8c6ad92f37 Merge branch 'master' into indev 2024-01-11 05:27:21 +01:00
Kbz-8 34bdb740c2 new text management, texts and textures are on the same level, new texture rendering management, fixing issues 2024-01-11 05:23:16 +01:00
Kbz-8 c485f039fb fixing color management issue with texts 2024-01-10 20:22:53 +01:00
Kbz-8 3c60e76094 adding xmake profiler option 2024-01-10 18:49:54 +01:00
kbz_8 39650b5c96 adding profiler (#34) 2024-01-10 18:48:52 +01:00
Kbz-8 0f16255240 fixing windows compilation issue 2024-01-10 18:37:14 +01:00
Kbz-8 91661fd206 adding profiler 2024-01-10 18:32:40 +01:00
kbz_8 6648bd427f Indev (#33)
Indev
2024-01-09 01:42:36 +01:00
Namonay aa2d0be63f added back not so much 'unnecesary' include 2024-01-09 01:37:01 +01:00
Namonay 2b557d5be7 removed useless includes 🤓 2024-01-09 01:28:50 +01:00
Namonay 36fae5c7d1 update buid.sh 2024-01-09 01:01:31 +01:00
Namonay 68570910e3 Fixed brief typo 2024-01-09 00:31:39 +01:00
Kbz-8 697a5e7147 fixing norme issue in the example 2024-01-09 00:25:23 +01:00
Kbz-8 31073c116c fixing issue with vulkan queues on multiple GPU computers 2024-01-08 23:50:00 +01:00
Kbz-8 c6a024d911 fixing issue with fonts vulkan descriptor destroyed 2024-01-08 22:18:45 +01:00
kbz_8 66a1b44224 Better vk commands management (#31) 2024-01-07 01:49:40 +01:00
Kbz-8 f5c581d89c figin another MacOS compilation error 2024-01-07 01:45:12 +01:00
Kbz-8 765a04d9b5 fixing compilation issues 2024-01-07 01:40:19 +01:00
Kbz-8 ac054830b9 removing gdb garbage file 2024-01-07 01:35:18 +01:00
Kbz-8 ccbd7561f4 fixing better vk command buffers management 2024-01-07 01:34:02 +01:00
kbz_8 2859725257 update dependencies (#30)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2024-01-06 14:09:23 +01:00
Kbz-8 f18cce29b3 [BOT] update dependencies 2024-01-06 01:06:21 +00:00
Kbz-8 d9a7f337ba working on cmd resources management 2024-01-05 23:13:35 +01:00
Kbz-8 f8e619ad94 fixing 32bit vulkan issue 2024-01-04 12:27:31 +01:00
kbz_8 ea6450b308 yes (#29) 2024-01-03 15:49:18 +01:00
kbz_8 6df9c284b8 Merge branch 'better_vk_commands' into indev 2024-01-03 15:47:31 +01:00
Kbz-8 d6b3f5dcc2 fixing gitignore file 2024-01-03 15:45:24 +01:00
kbz_8 826740906f merge Indev to master (#28) 2024-01-03 15:38:38 +01:00
Kbz-8 2c1f5181bf fixing compilation issue 2024-01-03 15:33:46 +01:00
Kbz-8 e728926521 fixing windows compilation issue 2024-01-03 15:30:35 +01:00
kbz_8 04af533469 Merge branch 'master' into indev 2024-01-03 15:17:17 +01:00
Kbz-8 53048bd82a improving vulkan error messages 2024-01-03 15:15:38 +01:00
Kbz-8 d0a19c5312 adding greetings 2024-01-03 00:30:45 +01:00
Kbz-8 6e284fb9bc fixing the workflows 2024-01-03 00:07:38 +01:00
Kbz-8 ea87c32051 updating license year, fixing fetch dependencies script, adding VMA auto update, removing useless dependency in xmake build 2024-01-03 00:01:30 +01:00
kbz_8 d73ade4a85 Update fetch_dependencies.yml (#27) 2024-01-02 12:04:00 +01:00
kbz_8 67bfc73066 Merge branch 'master' into indev 2024-01-02 11:56:57 +01:00
kbz_8 8b44a3aa6e Update fetch_dependencies.yml 2024-01-02 11:56:10 +01:00
kbz_8 36f9fdd53b merge Indev to master (#26) 2024-01-02 11:46:45 +01:00
kbz_8 9c43069e5f debug fetch_dependencies.yml 2024-01-02 11:28:11 +01:00
Kbz-8 0b6e1717d9 adding note to README 2023-12-31 14:34:52 +01:00
Kbz-8 41f7b4ef4c working automated dependencies updates, polishing the CI 2023-12-31 14:17:24 +01:00
kbz_8 418791930c update dependencies (#25)
Automated changes by
[create-pull-request](https://github.com/peter-evans/create-pull-request)
GitHub action
2023-12-31 13:48:27 +01:00
Kbz-8 0690ecacd8 debugging CI 2023-12-31 13:47:56 +01:00
Kbz-8 36f7efb679 update dependencies 2023-12-31 12:47:00 +00:00
Kbz-8 a52e33e697 debugging CI 2023-12-31 13:46:45 +01:00
Kbz-8 086c5402f5 debugging CI 2023-12-31 13:45:25 +01:00
Kbz-8 dd1bd43360 debugging CI 2023-12-31 13:44:37 +01:00
Kbz-8 d515ca5333 debugging CI 2023-12-31 13:41:09 +01:00
Kbz-8 eeb4695d6c debugging CI 2023-12-31 13:34:11 +01:00
Kbz-8 e94d3fd70f debugging CI 2023-12-31 13:31:22 +01:00
Kbz-8 e76f084625 debugging CI 2023-12-31 13:30:32 +01:00
Kbz-8 6e1fcb381a fixing compilation errors with local vulkan headers 2023-12-31 13:21:40 +01:00
Kbz-8 52c309a288 test automated dependencies updates 2023-12-31 13:12:37 +01:00
kbz_8 9ad28d7cf2 Kbz 8 patch 1 (#23) 2023-12-31 11:57:44 +01:00
kbz_8 5f21f0bcf9 Create dependabot.yml 2023-12-31 11:57:19 +01:00
kbz_8 066eec2cf3 merge Indev to master (#22)
yes
2023-12-31 01:41:39 +01:00
kbz_8 03e21227fa Merge branch 'master' into indev 2023-12-31 01:38:11 +01:00
Kbz-8 6f05728906 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH x2 2023-12-31 01:30:17 +01:00
Kbz-8 5edc36393a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH 2023-12-31 01:27:37 +01:00
Kbz-8 af29fc7b39 I hate SDL_main on windows 2023-12-31 01:24:10 +01:00
Kbz-8 9795988e14 fuck SDL_main on windows 2023-12-31 01:14:17 +01:00
Kbz-8 4087fca980 fixing SDL issue on windows 2023-12-31 01:08:41 +01:00
Kbz-8 f3efb72a21 adding transparency support to pixel put 2023-12-28 16:59:36 +01:00
kbz_8 fc97445875 Update xmake.lua 2023-12-28 01:13:40 +01:00
Kbz-8 5babfde870 fixing issue when creating multiple mlx application with leaks in the first one 2023-12-28 01:06:03 +01:00
kbz_8 04ffce60cd adding frame capture feature (#21) 2023-12-25 16:18:42 +01:00
Kbz-8 9aaa26ddf5 fixing frame capture 2023-12-24 16:07:09 +01:00
Kbz-8 df12d08ad3 working on frame capture 2023-12-23 01:53:54 +01:00
Kbz-8 064f660852 adding possible new feature 2023-12-22 23:21:24 +01:00
Kbz-8 bf6389f9a7 adding CONTRIBUTIN.md 2023-12-22 01:24:55 +01:00
Kbz-8 cae3db0ebf fixing issue with static casts 2023-12-22 00:45:06 +01:00
Kbz-8 79b01a5007 adding error messages when using a corrupted window pointer, dropping SDL init responsability when running in sandbox 2023-12-21 00:28:53 +01:00
kbz_8 91927126f2 merge indev to master (#20) 2023-12-20 17:50:38 +01:00
kbz_8 6fb8932ba9 Merge branch 'master' into indev 2023-12-20 17:38:06 +01:00
Kbz-8 536cf4c420 working on better command buffers management 2023-12-20 16:35:52 +01:00
kbz_8 1b49794be6 Change github links to reflect organisation change (#19) 2023-12-20 01:03:42 +01:00
xtrm 25f73a6967 🐛 fix: change github links to reflect organisation change
Signed-off-by: xtrm <oss@xtrm.me>
2023-12-20 00:58:24 +01:00
kbz_8 b7424e7f92 Merge pull request #18 from 420verfl0w/errors-everywhere
Errors everywhere
2023-12-16 20:32:04 +01:00
Kbz-8 0b4b32b5ac removing GCC error 2023-12-16 20:20:51 +01:00
Kbz-8 1922b409dd adding error checks 2023-12-16 20:17:49 +01:00
Kbz-8 80e938c019 new branch for error management 2023-12-16 18:51:51 +01:00
Kbz-8 68d2c63694 fixing compilation error 2023-12-16 02:14:23 +01:00
Kbz-8 1386fe64cb updating readme 2023-12-16 02:11:54 +01:00
kbz_8 7fd0ccff94 Merge pull request #17 from 420verfl0w/indev
merge dev to master
2023-12-15 21:13:53 +01:00
Kbz-8 b28b144edb fixing issue when destroying an image in the loop hook, begenning single time command buffers manager 2023-12-15 21:08:46 +01:00
Kbz-8 8e33b2fa30 updating README 2023-12-15 18:08:22 +01:00
kbz_8 cebadef063 Merge pull request #16 from 420verfl0w/multiple-fonts
merge Multiple fonts in dev
2023-12-14 20:12:44 +01:00
kbz_8 57b27adf1a Merge branch 'indev' into multiple-fonts 2023-12-14 19:21:12 +01:00
Kbz-8 d08a97f55c adding multiple font support 2023-12-14 19:13:41 +01:00
kbz_8 c7ad6650d9 Merge pull request #15 from 420verfl0w/indev
removing buggy texture hash system
2023-12-14 14:44:10 +01:00
Kbz-8 ac91253f51 removing buggy texture hash system 2023-12-14 14:39:00 +01:00
kbz_8 3d939675e4 Merge pull request #14 from 420verfl0w/indev
merge dev to master
2023-12-14 13:56:28 +01:00
Kbz-8 11b1bd147d fixing issues with texture rendering 2023-12-14 13:51:17 +01:00
Kbz-8 c013237219 yes 2023-12-14 00:08:38 +01:00
kbz_8 8039638885 removed garbage file 2023-12-13 16:06:43 +01:00
Kbz-8 d56b224d42 working on font system 2023-12-13 00:33:34 +01:00
kbz_8 6ccf2a10d7 Merge pull request #13 from 420verfl0w/indev
Indev
2023-12-12 18:49:48 +01:00
kbz_8 cfd1aab9e3 Merge pull request #12 from 420verfl0w/macos-debug
Macos debug
2023-12-12 18:21:36 +01:00
Kbz-8 c5752f773e fixing CI 2023-12-12 18:12:41 +01:00
Kbz-8 f398126e08 fixing CI 2023-12-12 18:07:58 +01:00
Kbz-8 6c0d8829a5 macos debug 2023-12-12 18:04:27 +01:00
Kbz-8 cf3f16d832 macos debug 2023-12-12 17:58:49 +01:00
Kbz-8 b60ae54e34 macos debug 2023-12-12 17:47:10 +01:00
Kbz-8 7786b07eb8 adding message when vk res init fails 2023-12-12 15:53:57 +01:00
Kbz-8 90b1dac0f5 adding message when instance init fails 2023-12-12 15:46:47 +01:00
Kbz-8 3c52fd05f3 fixing run file and lib name on macos 2023-12-12 13:27:19 +01:00
Kbz-8 843d7f0fe2 removing unused files 2023-12-12 13:08:34 +01:00
Kbz-8 ea2014819d fxing macos libraries location issue 2023-12-12 13:08:00 +01:00
kbz_8 e458ef6401 Merge pull request #11 from 420verfl0w/indev
merge dev to master
2023-12-11 23:53:56 +01:00
kbz_8 0494ff14da Merge pull request #10 from 420verfl0w/indev
Indev
2023-12-11 20:41:15 +01:00
Kbz-8 c2c2dece61 fixing DLL API import error 2023-12-11 20:36:21 +01:00
Kbz-8 401e6d13f3 moving profile to API scope 2023-12-11 20:28:58 +01:00
kbz_8 2e5346a0ff Merge pull request #8 from 420verfl0w/vsupp-debug
Vsupp debug
2023-12-11 19:36:32 +01:00
kbz_8 ce5157a299 Merge pull request #7 from 420verfl0w/malloc-custom
improving custom malloc, removing unused code in input system
2023-12-11 19:35:38 +01:00
Kbz-8 b5ce2347f6 improving custom malloc, removing unused code in input system 2023-12-11 19:30:37 +01:00
Kbz-8 9e0a0df5ca removing error 2023-12-11 13:53:40 +01:00
Kbz-8 8f6f50c37f fixing vsupp issue, cleaning it 2023-12-11 13:40:05 +01:00
Kbz-8 c36de40f4a fixing warning issue with clang 2023-12-10 23:15:59 +01:00
Kbz-8 52ca0c0d1b suppress warnings 2023-12-10 23:12:22 +01:00
kbz_8 651a05c4bc Merge pull request #6 from 420verfl0w/indev
merge Indev to master
2023-12-09 23:41:55 +01:00
Kbz-8 1cfb8745e2 updating readmes 2023-12-09 23:33:02 +01:00
Kbz-8 b3f3a01ee6 updating readmes 2023-12-09 23:18:28 +01:00
kbz_8 4acd240737 Merge pull request #5 from 420verfl0w/indev
merge Indev to master
2023-12-09 18:13:55 +01:00
Kbz-8 b79b8da031 improving vsupp file 2023-12-09 18:02:30 +01:00
Kbz-8 bc7ef4484f improving vsupp file 2023-12-09 16:23:38 +01:00
Kbz-8 9db5515fb5 adding vsupp file 2023-12-09 15:46:32 +01:00
kbz_8 387a1f5632 Merge pull request #4 from 420verfl0w/windows-support
Merge windows support into dev
2023-12-09 13:40:45 +01:00
Kbz-8 0babc2235f Merge branch 'windows-support' of github.com:420verfl0w/MacroLibX into windows-support 2023-12-09 13:25:30 +01:00
Kbz-8 1a9a6ec6f8 adding build readme for xmake, fixing windows workflow 2023-12-09 13:24:40 +01:00
kbz_8 d59d9f285a removing exe file 2023-12-08 23:34:19 +01:00
kbz_8 d16af1c4a8 fixing windows dll issues 2023-12-08 23:33:26 +01:00
Kbz-8 5dcc2045d6 adding symbols to dll on windows 2023-12-08 19:13:25 +01:00
Kbz-8 19ce912afe adding symbols to dll on windows 2023-12-08 18:56:33 +01:00
Kbz-8 890e301b78 fixing cross compilation issue 2023-12-08 18:09:08 +01:00
Kbz-8 218a97e4ec debugging windows CI 2023-12-08 16:37:42 +01:00
Kbz-8 74e5e35f5a debugging windows CI 2023-12-08 15:57:45 +01:00
Kbz-8 e6298b1dc3 fixing syntax error in windows workflow 2023-12-08 14:48:28 +01:00
Kbz-8 df860a5a64 removing garbage files 2023-12-08 14:12:41 +01:00
Kbz-8 b22064035a adding xmake support and windows workflow 2023-12-08 14:11:48 +01:00
kbz_8 197c71021b Merge pull request #3 from 420verfl0w/indev
Merge from dev to master
2023-12-08 13:00:24 +01:00
Kbz-8 d5fa70d7ab fixing issue in 42 header 2023-12-08 12:56:59 +01:00
Kbz-8 fd8e98f1ce adding mouse wheel support 2023-12-08 12:24:20 +01:00
Kbz-8 0e10e5f8e1 removing garbage files 2023-12-07 23:20:25 +01:00
Kbz-8 689c9b3ed4 fixing memory leaks, begenning xmake support to build on windows 2023-12-07 23:19:56 +01:00
Kbz-8 ecd43dedc5 fixing weird X in logo 2023-11-25 14:26:05 +01:00
kbz_8 dea507ec0e Update README.md 2023-11-25 13:13:57 +01:00
Kbz-8 39501f2940 update logo size 2023-11-25 12:48:16 +01:00
Kbz-8 372f818da4 working on readme 2023-11-25 12:47:07 +01:00
Kbz-8 1651f9ba97 working on readme 2023-11-25 12:31:09 +01:00
Kbz-8 c7e09f1d8c adding logo 2023-11-25 12:23:57 +01:00
Kbz-8 82529d6dc9 update readme 2023-11-25 10:44:51 +01:00
Kbz-8 4e30bd02bf adding screenshot te readme 2023-11-25 10:44:24 +01:00
Kbz-8 f8c2abb20b adding screenshot te readme 2023-11-25 10:44:00 +01:00
Kbz-8 880ac98ca9 adding screenshot te readme 2023-11-25 10:43:05 +01:00
Kbz-8 49c211cebc transparency management added 2023-11-25 10:31:06 +01:00
Kbz-8 38768c85c9 improving font management 2023-11-24 19:34:15 +01:00
Kbz-8 c7433ec419 removing gdb history 2023-11-23 14:37:58 +01:00
Kbz-8 d6b6dd955c new feature, font loading 2023-11-23 14:37:42 +01:00
kbz_8 c125dde951 Update README.md 2023-11-21 07:14:32 +01:00
kbz_8 9934b34bba Update README.md 2023-11-21 07:14:08 +01:00
kbz_8 3e3f20513f moving to MIT license 2023-11-21 07:13:15 +01:00
Kbz-8 c93d7854d0 fixing compilation error 2023-11-20 07:29:36 +01:00
Kbz-8 9fdb514541 fixing spaces in indentaions 2023-11-20 07:28:03 +01:00
kbz_8 35f5f41258 fixed error message for image file loading 2023-11-18 17:57:06 +01:00
Kbz-8 f6201014aa cleaning renderpass, framebuffers and swapchain code, setting all vulkan resources to NULL after destroy 2023-11-18 17:25:30 +01:00
Kbz-8 c583f1abc8 fixing GCC warning 2023-11-16 14:07:02 +01:00
Kbz-8 f7cf64cbb9 removing a trash file 2023-11-16 14:05:16 +01:00
Kbz-8 b882771a18 removing all memory dump strings informations in release mode 2023-11-16 14:04:51 +01:00
Kbz-8 39aa8009a4 fixing memory management issue, VMA uses custom asserts 2023-11-14 12:46:51 +01:00
Kbz-8 5dce6a2c8e updating readme, improving buffer transfer to GPU 2023-11-14 07:46:06 +01:00
Kbz-8 52929e215c fixing macos warning 2023-11-14 07:22:38 +01:00
Kbz-8 ad60a17da9 fixing rendering issues 2023-11-14 07:07:43 +01:00
kbz_8 d29cd56044 removing vim command in code 2023-11-11 03:32:43 +01:00
Kbz-8 d6795f97ef fixing physical device pick issues 2023-11-11 03:30:29 +01:00
Kbz-8 2fa7e2d4a9 fixing GCC CI 2023-11-10 09:21:58 +01:00
Kbz-8 85c43dabf4 fixing compilation issues, adding profile 2023-11-10 09:19:47 +01:00
Kbz-8 e6ed390e84 working on buffers 2023-11-09 22:17:25 +01:00
Kbz-8 6cd3422337 deleting clangd garbage 2023-11-09 09:07:30 +01:00
Kbz-8 c0f539b57f adding debug messages to renderer, working on VMA implementation 2023-11-09 09:07:03 +01:00
kbz_8 497879a0bc Merge pull request #1 from 27network/feature/better-readme
Improve project's README.
2023-10-30 14:13:09 +01:00
kbz_8 5b43b47f90 Update README.md 2023-10-30 14:10:48 +01:00
xtrm ab4ebc34d5 Change the names of the workflows to look better in the README
Signed-off-by: xtrm <oss@xtrm.me>
2023-10-30 01:28:00 +01:00
killian 587e71b940 Rework README.md and add better formatting and form 2023-10-30 01:26:35 +01:00
Kbz-8 11073a2cbc debugging CI 2023-10-20 03:33:31 +02:00
Kbz-8 c1898fb8dd debugging CI 2023-10-19 23:48:00 +02:00
Kbz-8 453ee0850b debugging CI 2023-10-19 23:44:52 +02:00
Kbz-8 3dd055b406 debugging CI 2023-10-19 23:31:36 +02:00
Kbz-8 08cbbfa836 debugging CI 2023-10-19 22:58:07 +02:00
Kbz-8 ce7e3ac88d debugging CI 2023-10-19 21:38:11 +02:00
Kbz-8 cc810368aa debugging CI 2023-10-19 21:37:08 +02:00
Kbz-8 ec757ab292 debugging CI 2023-10-19 21:23:53 +02:00
Kbz-8 fc9fa1a980 debugging CI 2023-10-19 21:21:52 +02:00
Kbz-8 469716e72b debugging CI 2023-10-19 21:21:33 +02:00
Kbz-8 254f80b442 debugging CI 2023-10-19 21:20:18 +02:00
Kbz-8 4d19598ac2 debugging CI 2023-10-19 21:17:31 +02:00
Kbz-8 774f7c41b0 debugging CI 2023-10-19 21:08:10 +02:00
Kbz-8 4f8dbc794c debugging CI 2023-10-19 20:44:40 +02:00
Kbz-8 281bf2dcd2 CI 2023-10-19 20:35:17 +02:00
Kbz-8 a7ac7b2318 adding SDL initialisation and quit, improving inputs code readability 2023-08-28 10:53:22 +02:00
kbz_8 3b0442df7e Update mlx.h 2023-08-10 08:52:46 +02:00
kbz_8 6e92a3c32b Update Makefile 2023-08-10 08:46:31 +02:00
Kbz-8 aadfb7449c adding image optimizations control over make call 2023-08-09 13:51:50 +02:00
Kbz-8 c1f3e49975 adding image optimizations control over make call 2023-08-09 13:50:33 +02:00
kbz_8 e39dc7ee7e fixing get pixel image issue 2023-08-02 12:52:38 +02:00
kbz_8 a6b72fbc6f fixing performance issues 2023-08-02 12:51:04 +02:00
kbz_8 5847172049 fixing performance issues 2023-08-02 12:50:50 +02:00
Kbz-8 e98bd490b2 yes 2023-06-06 16:35:08 +02:00
kbz_8 31e08416e0 reworking texture modifiers 2023-04-25 22:14:01 +02:00
kbz_8 4edd619841 adding multiple mapping support on textures 2023-04-23 22:11:44 +02:00
kbz_8 77f707ca7a removing texture library 2023-04-21 22:17:55 +02:00
kbz_8 5f1298f9ce adding documentation to mlx.h 2023-04-19 12:36:59 +02:00
kbz_8 b71c0eafb8 fixing color bug 2023-04-19 11:51:13 +02:00
Kbz-8 39c7857ccc working on colors issue 2023-04-14 12:29:17 +02:00
Kbz-8 ff6fb56042 working input API 2023-04-12 21:53:14 +02:00
Kbz-8 0c79a0d01c fixing performance issue in text pipeline, working on event system 2023-04-12 15:15:25 +02:00
Kbz-8 34cc9d63da fixing color issues with texts 2023-04-11 23:42:27 +02:00
Kbz-8 3863bd3378 working text pipeline 2023-04-11 19:21:11 +02:00
Kbz-8 026f83ca81 working text pipeline 2023-04-11 13:21:11 +02:00
kbz_8 77d71adc1f almost fixing text rendering 2023-04-08 20:45:06 +02:00
kbz_8 b4b3bbda54 working on text render pipeline 2023-04-08 04:09:25 +02:00
Kbz-8 5f16a98d08 adding texture atlas class 2023-04-07 17:27:23 +02:00
kbz_8 f6c6b5e018 adding stb_truetype 2023-04-07 13:47:22 +02:00
Kbz-8 8ae152e67a working on text put pipeline 2023-04-06 17:26:19 +02:00
Kbz-8 66022c08fb removing xpm support bc frick xpm 2023-04-06 15:30:01 +02:00
kbz_8 0466c40242 working on xpm support 2023-04-06 12:56:36 +02:00
kbz_8 83e6ebb430 working on xpm support 2023-04-05 01:11:49 +02:00
Kbz-8 f4bf7ea6b7 working on xpm implementation 2023-04-04 15:41:45 +02:00
kbz_8 d360c8fb6a working on event system 2023-04-04 12:40:47 +02:00
kbz_8 e444856964 adding manual image manipulation 2023-04-03 00:01:13 +02:00
kbz_8 7a5e280322 adding graphics support class, refactoring the code 2023-04-02 17:37:38 +02:00
kbz_8 534bea942c adding clear window 2023-04-01 17:51:29 +02:00
kbz_8 3a93881392 working textures 2023-04-01 15:48:28 +02:00
kbz_8 e9c3fb8046 working pixel put pipeline 2023-04-01 13:03:21 +02:00
kbz_8 90c1aaad4b adding pixel put pipeline 2023-03-31 22:16:21 +02:00
Kbz-8 0aae9015a9 yes 2023-03-08 02:25:25 +01:00
Kbz-8 b170354e7f adding vulkan images, start using images for put_pixel 2023-01-25 21:46:58 +01:00
Kbz-8 659f6cc14e doing some stuff 2023-01-24 20:06:00 +01:00
Kbz-8 72d6802230 adding uniform buffers and projection matrix management in vertex shader 2023-01-24 17:27:55 +01:00
Kbz-8 4c1043ee17 adding descriptors support to renderer 2023-01-23 19:27:37 +01:00
Kbz-8 54fc452aa2 rendering 2022-12-19 17:16:50 +01:00
Kbz-8 f1e0499564 almost first rendering, fixing renderer issues 2022-12-19 00:59:45 +01:00
Kbz-8 4a67aab716 fixing compatibility, workign on renderer 2022-12-18 04:04:10 +01:00
Kbz-8 f52c4e51c9 working on window manager 2022-10-05 20:37:04 +02:00
Kbz-8 5df9b4d39f adding imputs system 2022-10-05 17:08:36 +02:00
100 changed files with 164531 additions and 266502 deletions
-1
View File
@@ -7,6 +7,5 @@ version: 2
updates: updates:
- package-ecosystem: "github-actions" # See documentation for possible values - package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests directory: "/" # Location of package manifests
target-branch: "indev"
schedule: schedule:
interval: "weekly" interval: "weekly"
+4 -9
View File
@@ -1,7 +1,6 @@
name: Fetch Dependencies name: Fetch Dependencies
on: on:
workflow_dispatch:
schedule: schedule:
- cron: '0 0 * * 0' # Runs weekly - cron: '0 0 * * 0' # Runs weekly
@@ -11,24 +10,20 @@ jobs:
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v6 uses: actions/checkout@v4
- name: Run Fetch Dependencies Script - name: Run Fetch Dependencies Script
run: cd scripts && bash ./fetch_dependencies.sh run: cd scripts && bash ./fetch_dependencies.sh
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v8 uses: peter-evans/create-pull-request@v6
with: with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
delete-branch: true
title: update dependencies title: update dependencies
commit-message: "[BOT] update dependencies" commit-message: "[BOT] update dependencies"
committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> committer: GitHub <noreply@github.com>
author: kbJeff-8 <kbJeff-8@users.noreply.github.com> author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
signoff: false signoff: false
base: indev base: indev
assignees: Kbz-8
reviewers: Kbz-8
branch: auto_deps_updates branch: auto_deps_updates
labels: | labels: |
automated automated
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
issues: write issues: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/first-interaction@v2 - uses: actions/first-interaction@v1
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: | issue-message: |
+1 -3
View File
@@ -1,8 +1,6 @@
name: Linux (clang) name: Linux (clang)
on: on:
repository_dispatch:
types: [create-pull-request]
pull_request: pull_request:
push: push:
paths-ignore: paths-ignore:
@@ -23,7 +21,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v4
- name: Install system dependencies - name: Install system dependencies
run: | run: |
+1 -3
View File
@@ -1,8 +1,6 @@
name: Linux (gcc) name: Linux (gcc)
on: on:
repository_dispatch:
types: [create-pull-request]
pull_request: pull_request:
push: push:
paths-ignore: paths-ignore:
@@ -23,7 +21,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v4
- name: Install system dependencies - name: Install system dependencies
run: | run: |
-43
View File
@@ -1,43 +0,0 @@
name: Linux (meson)
on:
repository_dispatch:
types: [create-pull-request]
pull_request:
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README.md'
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
arch: [x86_64]
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get -y install mesa-common-dev clang libsdl2-2.0-0 libsdl2-dev build-essential libvulkan-dev
- name: Python
uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install Meson with pip
run: sudo pip3 install meson
- name: Build with meson
run: |
meson build --prefix=$PWD/ --bindir='' --libdir=''
ninja install -C build
-42
View File
@@ -1,42 +0,0 @@
name: macOS (meson)
on:
repository_dispatch:
types: [create-pull-request]
pull_request:
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README.md'
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [macOS-latest]
arch: [x86_64, arm]
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install system dependencies
run: |
brew install SDL2
- name: Python
uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Install Meson with pip
run: sudo pip3 install meson
- name: Build with meson
run: |
meson build --prefix=$PWD/ --bindir='' --libdir=''
ninja install -C build
@@ -1,8 +1,6 @@
name: macOS name: macOS
on: on:
repository_dispatch:
types: [create-pull-request]
pull_request: pull_request:
push: push:
paths-ignore: paths-ignore:
@@ -16,14 +14,14 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macOS-latest] os: [macOS-latest]
arch: [x86_64, arm] arch: [x86_64]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')" if: "!contains(github.event.head_commit.message, 'ci skip')"
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v4
# Install system dependencies # Install system dependencies
- name: Install Dependancies - name: Install Dependancies
+3 -5
View File
@@ -1,8 +1,6 @@
name: Unit tests name: Unit tests
on: on:
repository_dispatch:
types: [create-pull-request]
pull_request: pull_request:
push: push:
paths-ignore: paths-ignore:
@@ -23,9 +21,9 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v4
- uses: NcStudios/VulkanCI@v1.2 - uses: NcStudios/VulkanCI@v1.0
- name: Install system dependencies - name: Install system dependencies
run: | run: |
@@ -69,7 +67,7 @@ jobs:
# Save dependencies # Save dependencies
- name: Save cached xmake dependencies - name: Save cached xmake dependencies
if: ${{ !steps.restore-depcache.outputs.cache-hit }} if: ${{ !steps.restore-depcache.outputs.cache-hit }}
uses: actions/cache/save@v5 uses: actions/cache/save@v4
with: with:
path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages
key: ${{ steps.restore-depcache.outputs.cache-primary-key }} key: ${{ steps.restore-depcache.outputs.cache-primary-key }}
+2 -4
View File
@@ -1,8 +1,6 @@
name: Windows (xmake) name: Windows (xmake)
on: on:
repository_dispatch:
types: [create-pull-request]
pull_request: pull_request:
push: push:
paths-ignore: paths-ignore:
@@ -16,7 +14,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [windows-latest] os: [windows-latest]
arch: [x64, x86] arch: [x64]
mode: [release] mode: [release]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -28,7 +26,7 @@ jobs:
run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v4
# Force xmake to a specific folder (for cache) # Force xmake to a specific folder (for cache)
- name: Set xmake env - name: Set xmake env
-109
View File
@@ -1,109 +0,0 @@
name : Windows (Meson)
on:
repository_dispatch:
types: [create-pull-request]
pull_request:
push:
paths-ignore:
- '.gitignore'
- 'LICENSE'
- 'README.md'
jobs:
VisualStudio:
if: "!contains(github.event.head_commit.message, 'ci skip')"
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
platform: ['x64', 'x86']
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
# Install a 32-bit Python so building related stuff work.
- name: Setup x86 Python
if: matrix.platform == 'x86'
uses: actions/setup-python@v6
with:
architecture: 'x86'
python-version: '3.12'
- name: Install Meson & Ninja
run: |
python -m pip install meson ninja
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{matrix.platform}}
- name: Compile mlx
run: |
meson setup builddir
meson compile -C builddir
VisualStudio-clang-cl:
if: "!contains(github.event.head_commit.message, 'ci skip')"
runs-on: windows-latest
strategy:
fail-fast: false
env:
CC: clang-cl
CXX: clang-cl
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install Meson & Ninja
run: |
python -m pip install meson ninja
- uses: ilammy/msvc-dev-cmd@v1
- name: Compile mlx
run: |
meson setup builddir
meson compile -C builddir
MSYS2:
if: "!contains(github.event.head_commit.message, 'ci skip')"
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
platform: ['UCRT64', 'CLANG64']
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.platform}}
install: >-
bison
dos2unix
flex
git
pacboy: >-
cc:p
cmake:p
ninja:p
pkgconf:p
python-certifi:p
python-pip:p
# Make sure Python is updated to >=3.11 (fix https://github.com/msys2/MINGW-packages/issues/17415).
update: true
- name: Install Meson
shell: msys2 {0}
run: |
python -m pip install meson
- name: Compile mlx
shell: msys2 {0}
run: |
meson setup builddir
meson compile -C builddir
+2 -2
View File
@@ -23,5 +23,5 @@
objs/ objs/
build/ build/
example/Test example/Test
subprojects/*/ macrolibpy/__pycache__
subprojects/.wraplock example/__pycache__
+1 -1
View File
@@ -1,5 +1,5 @@
MIT License MIT License
Copyright (c) 2022-2026 kbz_8 Copyright (c) 2022-2024 kbz_8
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+10 -6
View File
@@ -4,6 +4,8 @@ MAKE = make --no-print-directory
OS ?= $(shell uname -s) OS ?= $(shell uname -s)
DEBUG ?= false DEBUG ?= false
TOOLCHAIN ?= clang TOOLCHAIN ?= clang
IMAGES_OPTIMIZED ?= true
FORCE_INTEGRATED_GPU ?= false
GRAPHICS_MEMORY_DUMP ?= false GRAPHICS_MEMORY_DUMP ?= false
PROFILER ?= false PROFILER ?= false
FORCE_WAYLAND ?= false FORCE_WAYLAND ?= false
@@ -36,9 +38,6 @@ GCH = runtime/Includes/PreCompiled.h.gch
CCH = runtime/Includes/PreCompiled.h.pch CCH = runtime/Includes/PreCompiled.h.pch
PCH = PCH =
# Personal path, should be overriden with env var
UNIT_TESTS_PATH = ../UnitTester/build/Bin/linux_x86_64/MacroUnitTest
NZSLC ?= nzslc NZSLC ?= nzslc
ifeq ($(TOOLCHAIN), gcc) ifeq ($(TOOLCHAIN), gcc)
@@ -63,6 +62,14 @@ else
CXXFLAGS += -O3 CXXFLAGS += -O3
endif endif
ifeq ($(FORCE_INTEGRATED_GPU), true)
_ENABLEDFLAGS += FORCE_INTEGRATED_GPU
endif
ifeq ($(IMAGES_OPTIMIZED), true)
_ENABLEDFLAGS += IMAGE_OPTIMIZED
endif
ifeq ($(GRAPHICS_MEMORY_DUMP), true) ifeq ($(GRAPHICS_MEMORY_DUMP), true)
_ENABLEDFLAGS += GRAPHICS_MEMORY_DUMP _ENABLEDFLAGS += GRAPHICS_MEMORY_DUMP
endif endif
@@ -154,9 +161,6 @@ clean-shaders:
shaders: clean-shaders $(SPVS) shaders: clean-shaders $(SPVS)
tests: debug
@$(UNIT_TESTS_PATH) --headless --path="./$(NAME)"
clean: clean:
@$(RM) $(OBJ_DIR) @$(RM) $(OBJ_DIR)
@printf "Cleaned $(_BOLD)$(OBJ_DIR)$(_RESET)\n" @printf "Cleaned $(_BOLD)$(OBJ_DIR)$(_RESET)\n"
+7 -1
View File
@@ -3,7 +3,7 @@
<div align="center"> <div align="center">
<a href="https://github.com/seekrs/MacroLibX/actions/workflows/linux_clang.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/linux_clang.yml/badge.svg"></a> <a href="https://github.com/seekrs/MacroLibX/actions/workflows/linux_clang.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/linux_clang.yml/badge.svg"></a>
<a href="https://github.com/seekrs/MacroLibX/actions/workflows/linux_gcc.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/linux_gcc.yml/badge.svg"></a> <a href="https://github.com/seekrs/MacroLibX/actions/workflows/linux_gcc.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/linux_gcc.yml/badge.svg"></a>
<a href="https://github.com/seekrs/MacroLibX/actions/workflows/macos.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/macos.yml/badge.svg"></a> <a href="https://github.com/seekrs/MacroLibX/actions/workflows/macos_x86.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/macos_x86.yml/badge.svg"></a>
</div> </div>
<div align="center"> <div align="center">
<a href="https://github.com/seekrs/MacroLibX/actions/workflows/windows.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/windows.yml/badge.svg"></a> <a href="https://github.com/seekrs/MacroLibX/actions/workflows/windows.yml"><img src="https://github.com/seekrs/MacroLibX/actions/workflows/windows.yml/badge.svg"></a>
@@ -103,6 +103,12 @@ MacroLibX has a strong safety support, mainly by checking every pointer that you
### 🛠️ Set the toolchain ### 🛠️ Set the toolchain
If you want to use `GCC` to build the mlx you can use `make TOOLCHAIN=gcc` If you want to use `GCC` to build the mlx you can use `make TOOLCHAIN=gcc`
### ⚠️⚠️⚠️ 🖼️ Image optimisations ⚠️⚠️⚠️
If you run into glitches when writing or reading pixels from images you can turn off images optimisations by using `make IMAGES_OPTIMIZED=false`.
### 🖥️ Force the integrated GPU (not recommended)
You can force the mlx to use your integrated GPU by using `make FORCE_INTEGRATED_GPU=true`. Note that there are a lot of chances that your application crashes by using that.
### 💽 Dump the graphics memory ### 💽 Dump the graphics memory
The mlx can dump it's graphics memory use to json files every two seconds by enabling this option `make GRAPHICS_MEMORY_DUMP=true`. The mlx can dump it's graphics memory use to json files every two seconds by enabling this option `make GRAPHICS_MEMORY_DUMP=true`.
+7 -1
View File
@@ -16,11 +16,17 @@ MacroLibX has a strong safety support, mainly by checking every pointer that you
### 🛠️ Set the toolchain ### 🛠️ Set the toolchain
To change the compilation toolchain you can use `xmake config --toolchain=[gcc|clang|...]` To change the compilation toolchain you can use `xmake config --toolchain=[gcc|clang|...]`
### ⚠️⚠️⚠️ 🖼️ Image optimisations ⚠️⚠️⚠️
If you run into glitches when writing or reading pixels from images you can turn off images optimisations by using `xmake config --images_optimized=n`.
### 🖥️ Force the integrated GPU (not recommended)
You can force the mlx to use your integrated GPU using `xmake config --force_integrated_gpu=y`. Note that there are a lot of chances that your application crashes by using that.
### 💽 Dump the graphics memory ### 💽 Dump the graphics memory
The mlx can dump it's graphics memory use to json files every two seconds by enabling this option `xmake config --graphics_memory_dump=y`. The mlx can dump it's graphics memory use to json files every two seconds by enabling this option `xmake config --graphics_memory_dump=y`.
### 🪛 A possible build configuration ### 🪛 A possible build configuration
As a configuration example here's how the command can look like `xmake config --mode=debug --toolchain=clang --graphics_memory_dump=y` As a configuration example here's how the command can look like `xmake config --mode=debug --toolchain=clang --graphics_memory_dump=y --images_optimized=n`
## 🚧 Build the lib ## 🚧 Build the lib
+1
View File
@@ -7,5 +7,6 @@
-DMLX_BUILD -DMLX_BUILD
-DSDL_MAIN_HANDLED -DSDL_MAIN_HANDLED
-DDEBUG -DDEBUG
-DIMAGE_OPTIMIZED
-D_REENTRANT -D_REENTRANT
-isystem/usr/include/SDL2 -isystem/usr/include/SDL2
+2 -7
View File
@@ -44,16 +44,11 @@ void update(void* param)
mlx_set_font(mlx->mlx, "default"); mlx_set_font(mlx->mlx, "default");
mlx_string_put(mlx->mlx, mlx->win, 20, 50, (mlx_color){ .rgba = 0xFFFFFFFF }, "that's a text"); mlx_string_put(mlx->mlx, mlx->win, 20, 50, (mlx_color){ .rgba = 0xFFFFFFFF }, "that's a text");
int win_width;
int win_height;
mlx_get_window_size(mlx->mlx, mlx->win, &win_width, &win_height);
uint32_t color = 0; uint32_t color = 0;
for(int j = 0; j < win_height; j++) for(int j = 0; j < 400; j++)
{ {
mlx_pixel_put(mlx->mlx, mlx->win, j, j, (mlx_color){ .rgba = 0x0000FFFF + (color << 24) }); mlx_pixel_put(mlx->mlx, mlx->win, j, j, (mlx_color){ .rgba = 0x0000FFFF + (color << 24) });
mlx_pixel_put(mlx->mlx, mlx->win, win_width - j, j, (mlx_color){ .rgba = 0x0000FFFF }); mlx_pixel_put(mlx->mlx, mlx->win, 399 - j, j, (mlx_color){ .rgba = 0x0000FFFF });
color += (color < 255); color += (color < 255);
} }
+85
View File
@@ -0,0 +1,85 @@
import macrolibpy as mlpy
import pathlib
import os
import math
current_path = pathlib.Path(__file__).parent.resolve()
mlx = mlpy.Context.create()
win = mlx.new_window(400, 400, "My window")
mlx.set_fps_goal(60)
logo_png = mlx.new_image_from_file(os.path.join(current_path, "42_logo.png"))[0]
logo_bmp = mlx.new_image_from_file(os.path.join(current_path, "42_logo.bmp"))[0]
logo_jpg = mlx.new_image_from_file(os.path.join(current_path, "42_logo.jpg"))[0]
win.pixel_put(200, 10, 0xFF0FFFF)
win.put_image(logo_png, 0, 0)
mlx.set_font_scale(os.path.join(current_path, "font.ttf"), 16.0)
win.string_put(20, 20, 0x0020FFFF, "that text will disappear")
custom_img = mlx.new_image(100, 100)
i, j, k = 0, 0, 0
while i < (100 * 100) * 4:
if j >= 100:
j = 0
k += 1
if i < 10000 or i > 20000:
custom_img.set_pixel(j, k, (k << 24) | (j << 16) | (i << 8) | 0x99)
i += 4
j += 1
def onevent(ev):
if ev == 0:
mlx.loop_end()
THRESHOLD = 200
CIRCLE_RADIUS = 50
CIRCLE_DIAMETER = CIRCLE_RADIUS + CIRCLE_RADIUS
def onupdate():
if onupdate.i > THRESHOLD:
win.clear(0x334D4DFF)
win.put_transformed_image(logo_bmp, 220, 40, 0.5, 0.5, onupdate.i)
if onupdate.i >= THRESHOLD + THRESHOLD / 4:
mlx.set_font_scale("default", 16.0)
else:
mlx.set_font_scale("default", 6.0)
win.string_put(160, 120, 0xFF2066FF, "this text should be behind")
win.put_image(logo_png, 100, 100)
win.put_image(custom_img, 150, 60)
mlx.set_font("default")
win.string_put(20, 50, 0xFFFFFFFF, "that's a text")
color = 0
for j in range(0, 400):
win.pixel_put(j, j, 0x0000FFFF + (color << 24))
win.pixel_put(399 - j, j, 0x0000FFFF)
color += (color < 255)
if onupdate.i < THRESHOLD:
win.put_transformed_image(logo_jpg, 210, 150, 0.5, 2.0, 0.0)
else:
win.put_transformed_image(logo_jpg, 210, 150, abs(math.sin(onupdate.i / 100.0)), abs(math.cos(onupdate.i / 100.0) * 2.0), 0.0)
mlx.set_font_scale("default", 8.0)
win.string_put(210, 175, 0xFFAF2BFF, "hidden")
win.pixel_put_region(200, 170, CIRCLE_DIAMETER, CIRCLE_DIAMETER, onupdate.pixels_circle)
onupdate.i += 1
onupdate.i = 0
onupdate.pixels_circle = [pixel for pixel in range(0, CIRCLE_DIAMETER * CIRCLE_DIAMETER)]
i = 0
for j in range(0, CIRCLE_DIAMETER):
for k in range(0, CIRCLE_DIAMETER):
if((CIRCLE_RADIUS - j) * (CIRCLE_RADIUS - j) + (CIRCLE_RADIUS - k) * (CIRCLE_RADIUS - k) < CIRCLE_RADIUS * CIRCLE_RADIUS):
onupdate.pixels_circle[i] = 0xA10000FF + ((j * k * i) << 8)
i += 1
win.on_event(mlpy.EventType.WINDOW_EVENT, onevent)
mlx.add_loop_hook(onupdate)
mlx.loop()
+20 -2
View File
@@ -6,7 +6,7 @@
/* By: maldavid <contact@kbz8.me> +#+ +:+ +#+ */ /* By: maldavid <contact@kbz8.me> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */ /* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */
/* Updated: 2025/10/22 16:59:21 by maldavid ### ########.fr */ /* Updated: 2025/03/12 22:26:32 by maldavid ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -338,7 +338,7 @@ MLX_API mlx_image mlx_new_image(mlx_context mlx, int width, int height);
* @param mlx Internal MLX application * @param mlx Internal MLX application
* @param filename Path to the png file * @param filename Path to the png file
* @param width Get the width of the image * @param width Get the width of the image
* @param height Get the height of the image * @param heigth Get the height of the image
* *
* @return (mlx_image) An opaque handler to the internal image or MLX_NULL_HANDLE (0x0) in case of error * @return (mlx_image) An opaque handler to the internal image or MLX_NULL_HANDLE (0x0) in case of error
*/ */
@@ -361,6 +361,14 @@ MLX_API void mlx_destroy_image(mlx_context mlx, mlx_image image);
* @param y Y coordinate in the image * @param y Y coordinate in the image
* *
* @return (int) Return the pixel data * @return (int) Return the pixel data
*
* /!\ If you run into glitches when writing or reading pixels from images /!\
* You need to add IMAGES_OPTIMIZED=false to your make mlx command
* ```
* ~ git clone https://github.com/seekrs/MacroLibX.git
* ~ cd MacroLibX
* ~ make IMAGES_OPTIMIZED=false
* ```
*/ */
MLX_API mlx_color mlx_get_image_pixel(mlx_context mlx, mlx_image image, int x, int y); MLX_API mlx_color mlx_get_image_pixel(mlx_context mlx, mlx_image image, int x, int y);
@@ -372,6 +380,14 @@ MLX_API mlx_color mlx_get_image_pixel(mlx_context mlx, mlx_image image, int x, i
* @param x X coordinate in the image * @param x X coordinate in the image
* @param y Y coordinate in the image * @param y Y coordinate in the image
* @param color Color of the pixel to set * @param color Color of the pixel to set
*
* /!\ If you run into glitches when writing or reading pixels from images /!\
* You need to add IMAGES_OPTIMIZED=false to your make mlx command
* ```
* ~ git clone https://github.com/seekrs/MacroLibX.git
* ~ cd MacroLibX
* ~ make IMAGES_OPTIMIZED=false
* ```
*/ */
MLX_API void mlx_set_image_pixel(mlx_context mlx, mlx_image image, int x, int y, mlx_color color); MLX_API void mlx_set_image_pixel(mlx_context mlx, mlx_image image, int x, int y, mlx_color color);
@@ -407,6 +423,7 @@ MLX_API void mlx_string_put(mlx_context mlx, mlx_window win, int x, int y, mlx_c
* @brief Loads a font to be used by `mlx_string_put` * @brief Loads a font to be used by `mlx_string_put`
* *
* @param mlx Internal MLX application * @param mlx Internal MLX application
* @param win Internal window
* @param filepath Filepath to the font or "default" to reset to the embedded font * @param filepath Filepath to the font or "default" to reset to the embedded font
*/ */
MLX_API void mlx_set_font(mlx_context mlx, char* filepath); MLX_API void mlx_set_font(mlx_context mlx, char* filepath);
@@ -415,6 +432,7 @@ MLX_API void mlx_set_font(mlx_context mlx, char* filepath);
* @brief Loads a font to be used by `mlx_string_put` and scales it * @brief Loads a font to be used by `mlx_string_put` and scales it
* *
* @param mlx Internal MLX application * @param mlx Internal MLX application
* @param win Internal window
* @param filepath Filepath to the font or "default" to reset to the embedded font * @param filepath Filepath to the font or "default" to reset to the embedded font
* @param scale Scale to apply to the font * @param scale Scale to apply to the font
*/ */
+17 -1
View File
@@ -6,7 +6,7 @@
/* By: maldavid <contact@kbz8.me> +#+ +:+ +#+ */ /* By: maldavid <contact@kbz8.me> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/12/14 16:17:10 by maldavid #+# #+# */ /* Created: 2024/12/14 16:17:10 by maldavid #+# #+# */
/* Updated: 2025/10/22 16:59:38 by maldavid ### ########.fr */ /* Updated: 2025/03/12 22:03:45 by maldavid ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -122,6 +122,14 @@ MLX_API void mlx_pixel_put_region(mlx_context mlx, mlx_window win, int x, int y,
* *
* Note: it is responsability of the user to make sure the size of `dst` is * Note: it is responsability of the user to make sure the size of `dst` is
* big enough for the given region. * big enough for the given region.
*
* /!\ If you run into glitches when writing or reading pixels from images /!\
* You need to add IMAGES_OPTIMIZED=false to your make mlx command
* ```
* ~ git clone https://github.com/seekrs/MacroLibX.git
* ~ cd MacroLibX
* ~ make IMAGES_OPTIMIZED=false
* ```
*/ */
MLX_API void mlx_get_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* dst); MLX_API void mlx_get_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* dst);
@@ -138,6 +146,14 @@ MLX_API void mlx_get_image_region(mlx_context mlx, mlx_image image, int x, int y
* *
* Note: it is responsability of the user to make sure the size of `pixels` is * Note: it is responsability of the user to make sure the size of `pixels` is
* big enough for the given region. * big enough for the given region.
*
* /!\ If you run into glitches when writing or reading pixels from images /!\
* You need to add IMAGES_OPTIMIZED=false to your make mlx command
* ```
* ~ git clone https://github.com/seekrs/MacroLibX.git
* ~ cd MacroLibX
* ~ make IMAGES_OPTIMIZED=false
* ```
*/ */
MLX_API void mlx_set_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* pixels); MLX_API void mlx_set_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* pixels);
+2 -2
View File
@@ -6,7 +6,7 @@
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */ /* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/11/10 08:49:17 by maldavid #+# #+# */ /* Created: 2023/11/10 08:49:17 by maldavid #+# #+# */
/* Updated: 2025/10/22 13:38:43 by maldavid ### ########.fr */ /* Updated: 2025/03/12 22:01:07 by maldavid ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -206,7 +206,7 @@
typedef void (*mlx_function)(void); typedef void (*mlx_function)(void);
#define MLX_VERSION MLX_MAKE_VERSION(2, 2, 4) #define MLX_VERSION MLX_MAKE_VERSION(2, 0, 0)
#define MLX_TARGET_VULKAN_API_VERSION MLX_MAKE_VERSION(1, 0, 0) #define MLX_TARGET_VULKAN_API_VERSION MLX_MAKE_VERSION(1, 0, 0)
// Checking common assumptions // Checking common assumptions
+368
View File
@@ -0,0 +1,368 @@
"""
macrolibpy — thin, Pythonic bindings over MacroLibX.
"""
from __future__ import annotations
from enum import IntEnum
from typing import Callable, Optional, Any, List
import os, sys
from cffi import FFI
import pathlib
__all__ = ["Context", "Window", "Image", "Event"]
ffi = FFI()
# NOTE: This is a curated declaration set focused on the core API
ffi.cdef(
r"""
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
typedef void (*mlx_function)(void);
typedef struct mlx_context_handler* mlx_context;
typedef struct mlx_window_handler* mlx_window;
typedef struct mlx_image_handler* mlx_image;
typedef struct mlx_color
{
uint32_t rgba;
} mlx_color;
typedef enum mlx_event_type
{
MLX_KEYDOWN = 0,
MLX_KEYUP = 1,
MLX_MOUSEDOWN = 2,
MLX_MOUSEUP = 3,
MLX_MOUSEWHEEL = 4,
MLX_WINDOW_EVENT = 5
} mlx_event_type;
typedef struct mlx_window_create_info
{
mlx_image render_target;
const char* title;
int width;
int height;
_Bool is_fullscreen;
_Bool is_resizable;
} mlx_window_create_info;
mlx_context mlx_init();
void mlx_set_fps_goal(mlx_context mlx, int fps);
void mlx_destroy_context(mlx_context mlx);
mlx_window mlx_new_window(mlx_context mlx, const mlx_window_create_info* info);
void mlx_destroy_window(mlx_context mlx, mlx_window win);
void mlx_set_window_position(mlx_context mlx, mlx_window win, int x, int y);
void mlx_set_window_size(mlx_context mlx, mlx_window win, int width, int height);
void mlx_set_window_title(mlx_context mlx, mlx_window win, const char* title);
void mlx_set_window_fullscreen(mlx_context mlx, mlx_window win, _Bool enable);
void mlx_get_window_position(mlx_context mlx, mlx_window win, int* x, int* y);
void mlx_get_window_size(mlx_context mlx, mlx_window win, int* x, int* y);
void mlx_clear_window(mlx_context mlx, mlx_window win, mlx_color color);
void mlx_get_screen_size(mlx_context mlx, mlx_window win, int* w, int* h);
void mlx_add_loop_hook(mlx_context mlx, void(*f)(void*), void* param);
void mlx_loop(mlx_context mlx);
void mlx_loop_end(mlx_context mlx);
void mlx_mouse_show(mlx_context mlx);
void mlx_mouse_hide(mlx_context mlx);
void mlx_mouse_move(mlx_context mlx, mlx_window win, int x, int y);
void mlx_mouse_get_pos(mlx_context mlx, int* x, int* y);
void mlx_on_event(mlx_context mlx, mlx_window win, mlx_event_type event, void(*f)(int, void*), void* param);
void mlx_pixel_put(mlx_context mlx, mlx_window win, int x, int y, mlx_color color);
mlx_image mlx_new_image(mlx_context mlx, int width, int height);
mlx_image mlx_new_image_from_file(mlx_context mlx, char* filename, int* width, int* height);
void mlx_destroy_image(mlx_context mlx, mlx_image image);
mlx_color mlx_get_image_pixel(mlx_context mlx, mlx_image image, int x, int y);
void mlx_set_image_pixel(mlx_context mlx, mlx_image image, int x, int y, mlx_color color);
void mlx_put_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, int x, int y);
void mlx_string_put(mlx_context mlx, mlx_window win, int x, int y, mlx_color color, char* str);
void mlx_set_font(mlx_context mlx, char* filepath);
void mlx_set_font_scale(mlx_context mlx, char* filepath, float scale);
void mlx_set_window_max_size(mlx_context mlx, mlx_window win, int x, int y);
void mlx_set_window_min_size(mlx_context mlx, mlx_window win, int x, int y);
void mlx_maximise_window(mlx_context mlx, mlx_window win);
void mlx_minimize_window(mlx_context mlx, mlx_window win);
void mlx_restore_window(mlx_context mlx, mlx_window win);
void mlx_pixel_put_array(mlx_context mlx, mlx_window win, int x, int y, mlx_color* pixels, size_t pixels_number);
void mlx_pixel_put_region(mlx_context mlx, mlx_window win, int x, int y, int w, int h, mlx_color* pixels);
void mlx_get_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* dst);
void mlx_set_image_region(mlx_context mlx, mlx_image image, int x, int y, int w, int h, mlx_color* pixels);
void mlx_put_transformed_image_to_window(mlx_context mlx, mlx_window win, mlx_image image, int x, int y, float scale_x, float scale_y, float angle);
"""
)
def _candidateLibNames() -> List[str]:
if sys.platform.startswith("linux"):
return ["libmlx.so"]
if sys.platform == "darwin":
return ["libmlx.dylib"]
if sys.platform.startswith("win"):
# depending on build system, either of these may exist
return ["mlx.dll", "libmlx.dll"]
return []
def _candidateSdl2Names() -> List[str]:
if sys.platform.startswith("linux"):
# Try common SONAMEs (distro dependent)
return ["libSDL2-2.0.so.0", "libSDL2.so.0", "libSDL2.so"]
if sys.platform == "darwin":
return ["libSDL2-2.0.0.dylib", "libSDL2.dylib"]
if sys.platform.startswith("win"):
return ["SDL2.dll"]
return []
def _loadLibrary(candidates: List[str]):
last_err: Optional[BaseException] = None
RTLD_NOW = 2
RTLD_GLOBAL = 0x100
for path in candidates:
try:
return ffi.dlopen(path, RTLD_NOW | RTLD_GLOBAL)
except OSError as e:
last_err = e
raise OSError(
f"Could not load library:\n"
f"\tTried: {candidates}.\n"
f"\tLast error: {last_err}"
)
def _dlopenMlx():
_loadLibrary(_candidateSdl2Names())
candidates: List[str] = []
for name in _candidateLibNames():
candidates.append(os.path.join(pathlib.Path(__file__).parent.parent.resolve(), name))
return _loadLibrary(candidates)
lib = _dlopenMlx()
class EventType(IntEnum):
KEYDOWN = 0
KEYUP = 1
MOUSEDOWN = 2
MOUSEUP = 3
MOUSEWHEEL = 4
WINDOW_EVENT = 5
class MlxError(RuntimeError):
pass
# Keep Python references to cffi callbacks alive
_alive_callbacks: List[Any] = []
def _makeLoopCallback(pyfunc: Callable[[], None]):
@ffi.callback("void(void*)")
def cfunc(userdata):
pyfunc()
_alive_callbacks.append(cfunc)
return cfunc
def _makeEventCallback(pyfunc: Callable[[int], None]):
@ffi.callback("void(int, void*)")
def cfunc(event, userdata):
pyfunc(int(event))
_alive_callbacks.append(cfunc)
return cfunc
def _rgbaToColor(rgba: int):
c = ffi.new("mlx_color*")
c[0].rgba = int(rgba) & 0xFFFFFFFF
return c[0]
class Context:
__slots__ = ("_ctx",)
def __init__(self, _ptr) -> None:
self._ctx = _ptr
@classmethod
def create(cls) -> "Context":
ctx = lib.mlx_init()
if ctx == ffi.NULL:
raise MlxError("mlx_init failed")
return cls(ctx)
def set_fps_goal(self, fps: int) -> None:
lib.mlx_set_fps_goal(self._ctx, int(fps))
def add_loop_hook(self, fn: Callable[[], None]) -> None:
lib.mlx_add_loop_hook(self._ctx, _makeLoopCallback(fn), ffi.NULL)
def new_window(
self,
width: int,
height: int,
title: str,
resizable: bool = True,
fullscreen: bool = False,
) -> "Window":
ffi_title = ffi.new("char[]", title.encode('ascii', 'replace'))
info = ffi.new("mlx_window_create_info*")
info.render_target = ffi.NULL
info.title = ffi_title
info.width = int(width)
info.height = int(height)
info.is_fullscreen = bool(fullscreen)
info.is_resizable = bool(resizable)
win = lib.mlx_new_window(self._ctx, info)
if win == ffi.NULL:
raise MlxError("mlx_new_window failed")
return Window(self, win)
def new_image(self, width: int, height: int) -> "Image":
img = lib.mlx_new_image(self._ctx, int(width), int(height))
if img == ffi.NULL:
raise MlxError("mlx_new_image failed")
return Image(self, img)
def new_image_from_file(self, path: str) -> Tuple["Image", int, int]:
w = ffi.new("int[]", 1);
h = ffi.new("int[]", 1);
ffi_path = ffi.new("char[]", path.encode('ascii'))
img = lib.mlx_new_image_from_file(self._ctx, ffi_path, w, h)
if img == ffi.NULL:
raise MlxError("mlx_new_image failed")
return (Image(self, img), w, h)
def loop(self) -> None:
lib.mlx_loop(self._ctx)
def loop_end(self) -> None:
lib.mlx_loop_end(self._ctx)
def destroy(self) -> None:
if getattr(self, "_ctx", None):
lib.mlx_destroy_context(self._ctx)
self._ctx = ffi.NULL
def mouse_show(self) -> None:
lib.mlx_mouse_show(self._ctx)
def mouse_hide(self) -> None:
lib.mlx_mouse_hide(self._ctx)
def mouse_move(self, x: int, y: int) -> None:
lib.mlx_mouse_move(self._ctx, int(x), int(y))
def get_mouse_position(self) -> Tuple[int, int]:
x = ffi.new("int[]", 1);
y = ffi.new("int[]", 1);
lib.mlx_mouse_get_pos(self._ctx, x, y)
return (x[0], y[0])
def set_font(self, path: str) -> None:
ffi_path = ffi.new("char[]", path.encode('ascii'))
lib.mlx_set_font(self._ctx, ffi_path)
def set_font_scale(self, path: str, scale: float) -> None:
ffi_path = ffi.new("char[]", path.encode('ascii'))
lib.mlx_set_font_scale(self._ctx, ffi_path, float(scale))
def __del__(self):
try:
self.destroy()
except Exception:
pass
class Window:
__slots__ = ("_ctx", "_win")
def __init__(self, ctx: Context, win) -> None:
self._ctx = ctx
self._win = win
def set_title(self, title: str) -> None:
ffi_title = ffi.new("char[]", title.encode('ascii', 'replace'))
lib.mlx_set_window_title(self._ctx._ctx, self._win, ffi_title)
def set_position(self, x: int, y: int) -> None:
lib.mlx_set_window_position(self._ctx._ctx, self._win, int(x), int(y))
def set_size(self, w: int, h: int) -> None:
lib.mlx_set_window_size(self._ctx._ctx, self._win, int(w), int(h))
def set_fullscreen(self, enable: bool) -> None:
lib.mlx_set_window_fullscreen(self._ctx._ctx, self._win, bool(enable))
def get_position(self) -> Tuple[int, int]:
x = ffi.new("int[]", 1);
y = ffi.new("int[]", 1);
lib.mlx_get_window_position(self._ctx._ctx, self._win, x, y)
return (x[0], y[0])
def get_size(self) -> Tuple[int, int]:
w = ffi.new("int[]", 1);
h = ffi.new("int[]", 1);
lib.mlx_get_window_size(self._ctx._ctx, self._win, w, h)
return (w[0], h[0])
def get_screen_size(self) -> Tuple[int, int]:
w = ffi.new("int[]", 1);
h = ffi.new("int[]", 1);
lib.mlx_get_screen_size(self._ctx._ctx, self._win, w, h)
return (w[0], h[0])
def clear(self, rgba: int = 0) -> None:
lib.mlx_clear_window(self._ctx._ctx, self._win, _rgbaToColor(rgba))
def pixel_put(self, x: int, y: int, rgba: int) -> None:
lib.mlx_pixel_put(self._ctx._ctx, self._win, int(x), int(y), _rgbaToColor(rgba))
def pixel_put_array(self, x: int, y: int, rgba: list[int]) -> None:
ffi_pixels = ffi.new("mlx_color[]", [_rgbaToColor(pixel) for pixel in rgba])
lib.mlx_pixel_put_array(self._ctx._ctx, self._win, int(x), int(y), ffi_pixels, int(rgba.len()))
def pixel_put_region(self, x: int, y: int, w: int, h: int, rgba: list[int]) -> None:
ffi_pixels = ffi.new("mlx_color[]", [_rgbaToColor(pixel) for pixel in rgba])
lib.mlx_pixel_put_region(self._ctx._ctx, self._win, int(x), int(y), int(w), int(h), ffi_pixels)
def put_image(self, image: "Image", x: int, y: int) -> None:
lib.mlx_put_image_to_window(self._ctx._ctx, self._win, image._img, int(x), int(y))
def put_transformed_image(self, image: "Image", x: int, y: int, scale_x: float, scale_y: float, angle: float) -> None:
lib.mlx_put_transformed_image_to_window(self._ctx._ctx, self._win, image._img, int(x), int(y), float(scale_x), float(scale_y), float(angle))
def string_put(self, x: int, y: int, rgba: int, text: str) -> None:
ffi_text = ffi.new("char[]", text.encode('ascii', 'replace'))
lib.mlx_string_put(self._ctx._ctx, self._win, int(x), int(y), _rgbaToColor(rgba), ffi_text)
def on_event(self, event_type: EventType | int, fn: Callable[[int], None]) -> None:
lib.mlx_on_event(self._ctx._ctx, self._win, int(event_type), _makeEventCallback(fn), ffi.NULL)
def destroy(self) -> None:
if getattr(self, "_win", None):
lib.mlx_destroy_window(self._ctx._ctx, self._win)
self._win = ffi.NULL
def __del__(self):
try:
self.destroy()
except Exception:
pass
class Image:
__slots__ = ("_ctx", "_img")
def __init__(self, ctx: Context, img) -> None:
self._ctx = ctx
self._img = img
def set_pixel(self, x: int, y: int, rgba: int) -> None:
lib.mlx_set_image_pixel(self._ctx._ctx, self._img, int(x), int(y), _rgbaToColor(rgba))
def get_pixel(self, x: int, y: int) -> int:
return lib.mlx_get_image_pixel(self._ctx._ctx, self._img, int(x), int(y))
def destroy(self) -> None:
if getattr(self, "_img", None):
lib.mlx_destroy_image(self._ctx._ctx, self._img)
self._img = ffi.NULL
def __del__(self):
try:
self.destroy()
except Exception:
pass
-106
View File
@@ -1,106 +0,0 @@
project('MacroLibX',
['c', 'cpp'],
version : '2.3.0',
license : 'MIT',
meson_version : '>= 0.63.0',
default_options : [
'warning_level=2',
'optimization=3',
'cpp_std=c++20',
]
)
add_project_arguments('-DSDL_MAIN_HANDLED', language : 'c')
if get_option('graphics_memory_dump')
add_project_arguments('-DGRAPHICS_MEMORY_DUMP', language : 'c')
endif
if get_option('profiler')
add_project_arguments('-DPROFILER_ENABLED', language : 'c')
endif
if get_option('force_wayland')
add_project_arguments('-DFORCE_WAYLAND', language : 'c')
endif
if get_option('disable_all_safeties')
add_project_arguments('-DDISABLE_ALL_SAFETIES', language : 'c')
endif
includes_directories = include_directories(
'includes',
'runtime/Includes',
'runtime/Sources',
'third_party',
)
sources = files(
'runtime/Sources/Core/Application.cpp',
'runtime/Sources/Core/Bridge.cpp',
'runtime/Sources/Core/EventBus.cpp',
'runtime/Sources/Core/EventListener.cpp',
'runtime/Sources/Core/Fps.cpp',
'runtime/Sources/Core/Graphics.cpp',
'runtime/Sources/Core/Logs.cpp',
'runtime/Sources/Core/Memory.cpp',
'runtime/Sources/Core/Profiler.cpp',
'runtime/Sources/Core/SDLManager.cpp',
'runtime/Sources/Core/UUID.cpp',
'runtime/Sources/Graphics/Font.cpp',
'runtime/Sources/Graphics/Mesh.cpp',
'runtime/Sources/Graphics/PutPixelManager.cpp',
'runtime/Sources/Graphics/Scene.cpp',
'runtime/Sources/Graphics/Sprite.cpp',
'runtime/Sources/Graphics/Text.cpp',
'runtime/Sources/Platform/Inputs.cpp',
'runtime/Sources/Platform/Window.cpp',
'runtime/Sources/Renderer/Pipelines/Graphics.cpp',
'runtime/Sources/Renderer/Pipelines/Shader.cpp',
'runtime/Sources/Renderer/RenderPasses/2DPass.cpp',
'runtime/Sources/Renderer/RenderPasses/FinalPass.cpp',
'runtime/Sources/Renderer/RenderPasses/Passes.cpp',
'runtime/Sources/Renderer/Vulkan/VulkanLoader.cpp',
'runtime/Sources/Renderer/Buffer.cpp',
'runtime/Sources/Renderer/Descriptor.cpp',
'runtime/Sources/Renderer/Image.cpp',
'runtime/Sources/Renderer/Memory.cpp',
'runtime/Sources/Renderer/RenderCore.cpp',
'runtime/Sources/Renderer/Renderer.cpp',
'runtime/Sources/Renderer/SceneRenderer.cpp',
'runtime/Sources/Renderer/Swapchain.cpp',
)
mlx_headers = [
'includes/mlx.h',
'includes/mlx_extended.h',
'includes/mlx_profile.h'
]
install_headers(mlx_headers)
deps = dependency('sdl2')
libmlx = library('mlx',
sources,
include_directories : includes_directories,
dependencies : deps,
install : true)
libmlx_dep = declare_dependency(
include_directories: includes_directories,
dependencies : deps,
link_with : libmlx)
meson.override_dependency('mlx', libmlx_dep)
# PKG CONFIG GENERATION
pkg_mod = import('pkgconfig')
pkg_mod.generate(
libmlx,
name : 'mlx',
description : 'MacroLibX Library',
version : meson.project_version(),
subdirs : ['.'],
)
-23
View File
@@ -1,23 +0,0 @@
option('graphics_memory_dump',
type : 'boolean',
value : false,
description : 'Enable graphics memory dump for debugging purposes.'
)
option('profiler',
type : 'boolean',
value : false,
description : 'Enable profiler for performance analysis.'
)
option('force_wayland',
type : 'boolean',
value : false,
description : 'Force the application to use Wayland display server.'
)
option('disable_all_safeties',
type : 'boolean',
value : false,
description : 'Disable all safety checks in the application.'
)
+1
View File
@@ -47,6 +47,7 @@ namespace mlx
std::unordered_map<std::string, std::pair<std::size_t, ProfileResult>> m_profile_data; std::unordered_map<std::string, std::pair<std::size_t, ProfileResult>> m_profile_data;
std::ofstream m_output_stream; std::ofstream m_output_stream;
std::mutex m_mutex;
bool m_runtime_session_began = false; bool m_runtime_session_began = false;
}; };
+1
View File
@@ -20,6 +20,7 @@ namespace mlx
void SetInputBinding(std::function<void(SDL_Event*)> functor); void SetInputBinding(std::function<void(SDL_Event*)> functor);
VkSurfaceKHR CreateVulkanSurface(Handle window, VkInstance instance) const noexcept; VkSurfaceKHR CreateVulkanSurface(Handle window, VkInstance instance) const noexcept;
std::vector<const char*> GetRequiredVulkanInstanceExtentions(Handle window) const noexcept;
Vec2ui GetVulkanDrawableSize(Handle window) const noexcept; Vec2ui GetVulkanDrawableSize(Handle window) const noexcept;
void MoveMouseOnWindow(Handle window, int x, int y) const noexcept; void MoveMouseOnWindow(Handle window, int x, int y) const noexcept;
void GetScreenSizeWindowIsOn(Handle window, int* x, int* y) const noexcept; void GetScreenSizeWindowIsOn(Handle window, int* x, int* y) const noexcept;
+1 -1
View File
@@ -38,7 +38,7 @@ namespace mlx
inline void UpdateDescriptorSet(std::shared_ptr<DescriptorSet> set) inline void UpdateDescriptorSet(std::shared_ptr<DescriptorSet> set)
{ {
p_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool(set->GetShaderLayout(), set->GetShaderType()).RequestDescriptorSet(set->GetShaderLayout(), set->GetShaderType()); p_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool().RequestDescriptorSet(set->GetShaderLayout(), set->GetShaderType());
} }
virtual void Bind(std::size_t frame_index, VkCommandBuffer cmd) = 0; virtual void Bind(std::size_t frame_index, VkCommandBuffer cmd) = 0;
+1 -2
View File
@@ -8,7 +8,7 @@ namespace mlx
class PutPixelManager class PutPixelManager
{ {
public: public:
PutPixelManager(NonOwningPtr<class Renderer> renderer); PutPixelManager(NonOwningPtr<class Renderer> renderer) : p_renderer(renderer) {}
// Returns a valid pointer when a new texture has been created // Returns a valid pointer when a new texture has been created
NonOwningPtr<Texture> DrawPixel(int x, int y, std::uint64_t draw_layer, mlx_color color); NonOwningPtr<Texture> DrawPixel(int x, int y, std::uint64_t draw_layer, mlx_color color);
@@ -20,7 +20,6 @@ namespace mlx
private: private:
NonOwningPtr<Texture> GetLayer(std::uint64_t draw_layer, bool& is_newlayer); NonOwningPtr<Texture> GetLayer(std::uint64_t draw_layer, bool& is_newlayer);
std::unique_ptr<Texture> NewTexture();
private: private:
std::unordered_map<std::uint64_t, NonOwningPtr<Texture>> m_placements; std::unordered_map<std::uint64_t, NonOwningPtr<Texture>> m_placements;
+1
View File
@@ -35,6 +35,7 @@ namespace mlx
MLX_FORCEINLINE void GetSize(int* x, int* y) { *x = GetWidth(); *y = GetHeight(); } MLX_FORCEINLINE void GetSize(int* x, int* y) { *x = GetWidth(); *y = GetHeight(); }
MLX_FORCEINLINE VkSurfaceKHR CreateVulkanSurface(VkInstance instance) const noexcept { return SDLManager::Get().CreateVulkanSurface(p_window, instance); } MLX_FORCEINLINE VkSurfaceKHR CreateVulkanSurface(VkInstance instance) const noexcept { return SDLManager::Get().CreateVulkanSurface(p_window, instance); }
MLX_FORCEINLINE std::vector<const char*> GetRequiredVulkanInstanceExtentions() const noexcept { return SDLManager::Get().GetRequiredVulkanInstanceExtentions(p_window); }
MLX_FORCEINLINE Vec2ui GetVulkanDrawableSize() const noexcept { return SDLManager::Get().GetVulkanDrawableSize(p_window); } MLX_FORCEINLINE Vec2ui GetVulkanDrawableSize() const noexcept { return SDLManager::Get().GetVulkanDrawableSize(p_window); }
[[nodiscard]] inline Handle GetRawHandle() const noexcept { return p_window; } [[nodiscard]] inline Handle GetRawHandle() const noexcept { return p_window; }
+2 -15
View File
@@ -17,21 +17,8 @@
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
#if __has_include(<SDL2/SDL.h>) #include <SDL2/SDL.h>
#include <SDL2/SDL.h> #include <SDL2/SDL_vulkan.h>
#elif __has_include(<SDL.h>)
#include <SDL.h>
#else
#error Failed to find SDL2 headers
#endif
#if __has_include(<SDL2/SDL_syswm.h>)
#include <SDL2/SDL_syswm.h>
#elif __has_include(<SDL_syswm.h>)
#include <SDL_syswm.h>
#else
#error Failed to find SDL2 SysWMinfo
#endif
#include <functional> #include <functional>
#include <memory> #include <memory>
+4 -3
View File
@@ -26,9 +26,9 @@ namespace mlx
std::shared_ptr<class DescriptorSet> RequestDescriptorSet(const ShaderSetLayout& layout, ShaderType shader_type); std::shared_ptr<class DescriptorSet> RequestDescriptorSet(const ShaderSetLayout& layout, ShaderType shader_type);
void ReturnDescriptorSet(std::shared_ptr<class DescriptorSet> set); void ReturnDescriptorSet(std::shared_ptr<class DescriptorSet> set);
bool CanAllocate(const ShaderSetLayout& layout, ShaderType shader_type) const;
[[nodiscard]] inline VkDescriptorPool Get() const noexcept { return m_pool; } [[nodiscard]] inline VkDescriptorPool Get() const noexcept { return m_pool; }
[[nodiscard]] MLX_FORCEINLINE std::size_t GetNumberOfSetsAllocated() const noexcept { return m_allocation_count; }
~DescriptorPool() = default; ~DescriptorPool() = default;
@@ -36,6 +36,7 @@ namespace mlx
std::vector<std::shared_ptr<class DescriptorSet>> m_free_sets; std::vector<std::shared_ptr<class DescriptorSet>> m_free_sets;
std::vector<std::shared_ptr<class DescriptorSet>> m_used_sets; std::vector<std::shared_ptr<class DescriptorSet>> m_used_sets;
VkDescriptorPool m_pool; VkDescriptorPool m_pool;
std::size_t m_allocation_count = 0;
}; };
class DescriptorPoolManager class DescriptorPoolManager
@@ -43,13 +44,13 @@ namespace mlx
public: public:
DescriptorPoolManager() = default; DescriptorPoolManager() = default;
DescriptorPool& GetAvailablePool(const ShaderSetLayout& layout, ShaderType shader_type); DescriptorPool& GetAvailablePool();
void Destroy(); void Destroy();
~DescriptorPoolManager() = default; ~DescriptorPoolManager() = default;
private: private:
std::vector<std::unique_ptr<DescriptorPool>> m_pools; std::vector<DescriptorPool> m_pools;
}; };
class DescriptorSet : public std::enable_shared_from_this<DescriptorSet> class DescriptorSet : public std::enable_shared_from_this<DescriptorSet>
-6
View File
@@ -89,13 +89,7 @@ namespace mlx
mlx_color GetPixel(int x, int y) noexcept; mlx_color GetPixel(int x, int y) noexcept;
void GetRegion(int x, int y, int w, int h, mlx_color* dst) noexcept; void GetRegion(int x, int y, int w, int h, mlx_color* dst) noexcept;
void Clear(VkCommandBuffer cmd, Vec4f color) override; void Clear(VkCommandBuffer cmd, Vec4f color) override;
void CopyTo(Texture& other);
void Resize(std::uint32_t width, std::uint32_t height);
void Swap(Texture& texture) noexcept;
// If a valid cmd buffer is passed, this function takes ownership and makes it invalid after
void SyncCPUBuffer(VkCommandBuffer cmd = VK_NULL_HANDLE);
void Update(VkCommandBuffer cmd); void Update(VkCommandBuffer cmd);
~Texture() override { Destroy(); } ~Texture() override { Destroy(); }
+1 -1
View File
@@ -38,8 +38,8 @@ namespace mlx
private: private:
Swapchain m_swapchain; Swapchain m_swapchain;
std::vector<VkSemaphore> m_render_finished_semaphores;
std::array<VkSemaphore, MAX_FRAMES_IN_FLIGHT> m_image_available_semaphores; std::array<VkSemaphore, MAX_FRAMES_IN_FLIGHT> m_image_available_semaphores;
std::array<VkSemaphore, MAX_FRAMES_IN_FLIGHT> m_render_finished_semaphores;
std::array<VkCommandBuffer, MAX_FRAMES_IN_FLIGHT> m_cmd_buffers; std::array<VkCommandBuffer, MAX_FRAMES_IN_FLIGHT> m_cmd_buffers;
std::array<VkFence, MAX_FRAMES_IN_FLIGHT> m_cmd_fences; std::array<VkFence, MAX_FRAMES_IN_FLIGHT> m_cmd_fences;
NonOwningPtr<Window> p_window; NonOwningPtr<Window> p_window;
@@ -123,41 +123,5 @@
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR)
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR)
MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR) MLX_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR)
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateAndroidSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateXcbSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateXlibSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateWaylandSurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateWin32SurfaceKHR)
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
MLX_VULKAN_INSTANCE_FUNCTION(vkCreateMetalSurfaceEXT)
#endif
#endif
#endif #endif
#endif #endif
+7 -50
View File
@@ -238,15 +238,6 @@ extern "C"
mlx::Error("Image loader: not a valid file format '%'", filename); mlx::Error("Image loader: not a valid file format '%'", filename);
return nullptr; return nullptr;
} }
{
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("Image loader: failed to open file '%'", filename);
return nullptr;
}
}
return mlx->app->NewStbTexture(filename, width, height); return mlx->app->NewStbTexture(filename, width, height);
} }
@@ -313,29 +304,12 @@ extern "C"
mlx::Error("Font loader: filepath is NULL"); mlx::Error("Font loader: filepath is NULL");
return; return;
} }
std::filesystem::path file(filepath); std::filesystem::path file(filepath);
if (std::strcmp(filepath, "default") != 0 && !std::filesystem::exists(file)) if(std::strcmp(filepath, "default") != 0 && file.extension() != ".ttf" && file.extension() != ".tte")
{ {
mlx::Error("TTF loader: unable to find file '%'", filepath); mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return; return;
} }
if(std::strcmp(filepath, "default") != 0)
{
if(file.extension() != ".ttf" && file.extension() != ".tte")
{
mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return;
}
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("TTF loader: failed to open font file '%'", filepath);
return;
}
}
if(std::strcmp(filepath, "default") == 0) if(std::strcmp(filepath, "default") == 0)
mlx->app->LoadFont(file, 6.f); mlx->app->LoadFont(file, 6.f);
else else
@@ -350,29 +324,12 @@ extern "C"
mlx::Error("Font loader: filepath is NULL"); mlx::Error("Font loader: filepath is NULL");
return; return;
} }
std::filesystem::path file(filepath); std::filesystem::path file(filepath);
if (std::strcmp(filepath, "default") != 0 && !std::filesystem::exists(file)) if(std::strcmp(filepath, "default") != 0 && file.extension() != ".ttf" && file.extension() != ".tte")
{ {
mlx::Error("TTF loader: unable to find file '%'", filepath); mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return; return;
} }
if(std::strcmp(filepath, "default") != 0)
{
if(file.extension() != ".ttf" && file.extension() != ".tte")
{
mlx::Error("TTF loader: not a truetype font file '%'", filepath);
return;
}
std::ifstream stream(file, std::ios::binary);
if(!stream.is_open())
{
mlx::Error("TTF loader: failed to open font file '%'", filepath);
return;
}
}
mlx->app->LoadFont(file, scale); mlx->app->LoadFont(file, scale);
} }
@@ -522,7 +479,7 @@ extern "C"
MLX_CHECK_APPLICATION_POINTER(mlx); MLX_CHECK_APPLICATION_POINTER(mlx);
mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win); mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win);
if(!gs) if(!gs)
return VK_NULL_HANDLE; return nullptr;
return gs->GetRenderer().GetSwapchain().GetSurface(); return gs->GetRenderer().GetSwapchain().GetSurface();
} }
@@ -531,7 +488,7 @@ extern "C"
MLX_CHECK_APPLICATION_POINTER(mlx); MLX_CHECK_APPLICATION_POINTER(mlx);
mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win); mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win);
if(!gs || index > gs->GetRenderer().GetSwapchain().GetImagesCount()) if(!gs || index > gs->GetRenderer().GetSwapchain().GetImagesCount())
return VK_NULL_HANDLE; return nullptr;
return gs->GetRenderer().GetSwapchain().GetSwapchainImages()[index].Get(); return gs->GetRenderer().GetSwapchain().GetSwapchainImages()[index].Get();
} }
@@ -549,7 +506,7 @@ extern "C"
MLX_CHECK_APPLICATION_POINTER(mlx); MLX_CHECK_APPLICATION_POINTER(mlx);
mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win); mlx::NonOwningPtr<mlx::GraphicsSupport> gs = mlx->app->GetGraphicsSupport(win);
if(!gs || index > gs->GetRenderer().GetSwapchain().GetImagesCount()) if(!gs || index > gs->GetRenderer().GetSwapchain().GetImagesCount())
return VK_NULL_HANDLE; return nullptr;
return gs->GetRenderer().GetSwapchain().GetSwapchainImages()[index].GetImageView(); return gs->GetRenderer().GetSwapchain().GetSwapchainImages()[index].GetImageView();
} }
+4 -4
View File
@@ -21,7 +21,7 @@ namespace mlx
void* MemManager::AlignedMalloc(std::size_t alignment, std::size_t size) void* MemManager::AlignedMalloc(std::size_t alignment, std::size_t size)
{ {
#ifdef MLX_PLAT_WINDOWS #ifdef MLX_COMPILER_MSVC
void* ptr = _aligned_malloc(size, alignment); void* ptr = _aligned_malloc(size, alignment);
#else #else
if(alignment < sizeof(void*)) if(alignment < sizeof(void*))
@@ -66,7 +66,7 @@ namespace mlx
{ {
auto it = std::find_if(s_blocks.begin(), s_blocks.end(), [=](const Descriptor& rhs){ return ptr == rhs.ptr; }); auto it = std::find_if(s_blocks.begin(), s_blocks.end(), [=](const Descriptor& rhs){ return ptr == rhs.ptr; });
#ifdef MLX_PLAT_WINDOWS #ifdef MLX_COMPILER_MSVC
void* ptr2 = _aligned_realloc(ptr, size, alignment); void* ptr2 = _aligned_realloc(ptr, size, alignment);
if(it != s_blocks.end()) if(it != s_blocks.end())
s_blocks.erase(it); s_blocks.erase(it);
@@ -90,7 +90,7 @@ namespace mlx
auto it = std::find_if(s_blocks.begin(), s_blocks.end(), [=](const Descriptor& rhs){ return ptr == rhs.ptr; }); auto it = std::find_if(s_blocks.begin(), s_blocks.end(), [=](const Descriptor& rhs){ return ptr == rhs.ptr; });
if(it == s_blocks.end()) if(it == s_blocks.end())
return; return;
#ifdef MLX_PLAT_WINDOWS #ifdef MLX_COMPILER_MSVC
if(it->aligned) if(it->aligned)
_aligned_free(it->ptr); _aligned_free(it->ptr);
else else
@@ -105,7 +105,7 @@ namespace mlx
{ {
for(const Descriptor& desc : s_blocks) for(const Descriptor& desc : s_blocks)
{ {
#ifdef MLX_PLAT_WINDOWS #ifdef MLX_COMPILER_MSVC
if(desc.aligned) if(desc.aligned)
_aligned_free(desc.ptr); _aligned_free(desc.ptr);
else else
+3
View File
@@ -8,6 +8,7 @@ namespace mlx
void Profiler::BeginRuntimeSession() void Profiler::BeginRuntimeSession()
{ {
std::lock_guard lock(m_mutex);
if(m_runtime_session_began) if(m_runtime_session_began)
return; return;
m_output_stream.open("./runtime_profile.mlx.json", std::ofstream::out | std::ofstream::trunc); m_output_stream.open("./runtime_profile.mlx.json", std::ofstream::out | std::ofstream::trunc);
@@ -21,6 +22,7 @@ namespace mlx
void Profiler::AppendProfileData(ProfileResult&& result) void Profiler::AppendProfileData(ProfileResult&& result)
{ {
std::lock_guard lock(m_mutex);
auto it = m_profile_data.find(result.name); auto it = m_profile_data.find(result.name);
if(it != m_profile_data.end()) if(it != m_profile_data.end())
{ {
@@ -47,6 +49,7 @@ namespace mlx
void Profiler::EndRuntimeSession() void Profiler::EndRuntimeSession()
{ {
std::lock_guard lock(m_mutex);
if(!m_runtime_session_began) if(!m_runtime_session_began)
return; return;
for(auto& [_, pair] : m_profile_data) for(auto& [_, pair] : m_profile_data)
+18 -30
View File
@@ -25,7 +25,7 @@ namespace mlx
m_drop_sdl_responsability = SDL_WasInit(SDL_INIT_VIDEO) || std::getenv("MLX_HEADLESS_MODE") != nullptr; m_drop_sdl_responsability = SDL_WasInit(SDL_INIT_VIDEO) || std::getenv("MLX_HEADLESS_MODE") != nullptr;
if(m_drop_sdl_responsability) // is case the mlx is running in a sandbox like MacroUnitTester where SDL is already init if(m_drop_sdl_responsability) // is case the mlx is running in a sandbox like MacroUnitTester where SDL is already init
return; return;
//SDL_SetMemoryFunctions(MemManager::Get().Malloc, MemManager::Get().Calloc, MemManager::Get().Realloc, MemManager::Get().Free); SDL_SetMemoryFunctions(MemManager::Get().Malloc, MemManager::Get().Calloc, MemManager::Get().Realloc, MemManager::Get().Free);
#ifdef FORCE_WAYLAND #ifdef FORCE_WAYLAND
SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11"); SDL_SetHint(SDL_HINT_VIDEODRIVER, "wayland,x11");
@@ -43,7 +43,7 @@ namespace mlx
Internal::WindowInfos* infos = new Internal::WindowInfos; Internal::WindowInfos* infos = new Internal::WindowInfos;
Verify(infos != nullptr, "SDL: window allocation failed"); Verify(infos != nullptr, "SDL: window allocation failed");
std::uint32_t flags = 0; std::uint32_t flags = SDL_WINDOW_VULKAN;
if(hidden) if(hidden)
flags |= SDL_WINDOW_HIDDEN; flags |= SDL_WINDOW_HIDDEN;
else else
@@ -88,38 +88,28 @@ namespace mlx
VkSurfaceKHR SDLManager::CreateVulkanSurface(Handle window, VkInstance instance) const noexcept VkSurfaceKHR SDLManager::CreateVulkanSurface(Handle window, VkInstance instance) const noexcept
{ {
SDL_SysWMinfo info; VkSurfaceKHR surface;
SDL_VERSION(&info.version); if(!SDL_Vulkan_CreateSurface(static_cast<Internal::WindowInfos*>(window)->window, instance, &surface))
if(SDL_GetWindowWMInfo(static_cast<Internal::WindowInfos*>(window)->window, &info) != SDL_TRUE) FatalError("SDL: could not create a Vulkan surface; %", SDL_GetError());
FatalError("SDL Manager: cannot retrieve window informations"); return surface;
}
switch(info.subsystem) std::vector<const char*> SDLManager::GetRequiredVulkanInstanceExtentions(Handle window) const noexcept
{ {
#ifdef SDL_VIDEO_DRIVER_WINDOWS std::uint32_t count;
case SDL_SYSWM_WINDOWS: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_WINDOWS, static_cast<void*>(info.info.win.hinstance), static_cast<void*>(info.info.win.window)); if(!SDL_Vulkan_GetInstanceExtensions(static_cast<Internal::WindowInfos*>(window)->window, &count, nullptr))
#endif FatalError("SDL Manager: could not retrieve Vulkan instance extensions");
#ifdef SDL_VIDEO_DRIVER_X11 std::vector<const char*> extensions(count);
case SDL_SYSWM_X11: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_XLIB, static_cast<void*>(info.info.x11.display), static_cast<void*>(&info.info.x11.window)); if(!SDL_Vulkan_GetInstanceExtensions(static_cast<Internal::WindowInfos*>(window)->window, &count, extensions.data()))
#endif FatalError("SDL Manager: could not retrieve Vulkan instance extensions");
#ifdef SDL_VIDEO_DRIVER_COCOA extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
case SDL_SYSWM_COCOA: FatalError("SDL Manager: Vulkan surfaces over Metal are not supported yet. Please fill an issue here https://github.com/seekrs/MacroLibX/issues/new"); return extensions;
#endif
#ifdef SDL_VIDEO_DRIVER_WAYLAND
case SDL_SYSWM_WAYLAND: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_WAYLAND, static_cast<void*>(info.info.wl.display), static_cast<void*>(info.info.wl.surface));
#endif
#ifdef SDL_VIDEO_DRIVER_ANDROID
case SDL_SYSWM_ANDROID: return kvfCreateSurfaceKHR(instance, KVF_SURFACE_ANDROID, nullptr, static_cast<void*>(info.info.android.window));
#endif
default : FatalError("SDL Manager: unsupported windowing system"); break;
}
return VK_NULL_HANDLE;
} }
Vec2ui SDLManager::GetVulkanDrawableSize(Handle window) const noexcept Vec2ui SDLManager::GetVulkanDrawableSize(Handle window) const noexcept
{ {
Vec2i extent; Vec2i extent;
SDL_GetWindowSize(static_cast<Internal::WindowInfos*>(window)->window, &extent.x, &extent.y); SDL_Vulkan_GetDrawableSize(static_cast<Internal::WindowInfos*>(window)->window, &extent.x, &extent.y);
return Vec2ui{ extent }; return Vec2ui{ extent };
} }
@@ -276,7 +266,6 @@ namespace mlx
case SDL_WINDOWEVENT_LEAVE: functor(MLX_WINDOW_EVENT, id, 6); break; case SDL_WINDOWEVENT_LEAVE: functor(MLX_WINDOW_EVENT, id, 6); break;
case SDL_WINDOWEVENT_FOCUS_LOST: functor(MLX_WINDOW_EVENT, id, 7); break; case SDL_WINDOWEVENT_FOCUS_LOST: functor(MLX_WINDOW_EVENT, id, 7); break;
case SDL_WINDOWEVENT_SIZE_CHANGED: functor(MLX_WINDOW_EVENT, id, 8); break; case SDL_WINDOWEVENT_SIZE_CHANGED: functor(MLX_WINDOW_EVENT, id, 8); break;
case SDL_WINDOWEVENT_RESTORED: functor(MLX_WINDOW_EVENT, id, 11); break;
default : break; default : break;
} }
@@ -295,7 +284,6 @@ namespace mlx
{ {
if(m_drop_sdl_responsability) if(m_drop_sdl_responsability)
return; return;
SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS); SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTS);
SDL_Quit(); SDL_Quit();
s_instance = nullptr; s_instance = nullptr;
+14 -41
View File
@@ -6,29 +6,6 @@
namespace mlx namespace mlx
{ {
PutPixelManager::PutPixelManager(NonOwningPtr<class Renderer> renderer) : p_renderer(renderer)
{
MLX_PROFILE_FUNCTION();
std::function<void(const EventBase&)> functor = [this](const EventBase& event)
{
// Suboptimal for multi-windows applications
if(event.What() == Event::ResizeEventCode)
{
VkExtent2D extent{ .width = 0, .height = 0 };
if(p_renderer->GetWindow())
extent = kvfGetSwapchainImagesSize(p_renderer->GetSwapchain().Get());
else if(p_renderer->GetRenderTarget())
extent = VkExtent2D{ .width = p_renderer->GetRenderTarget()->GetWidth(), .height = p_renderer->GetRenderTarget()->GetHeight() };
else
FatalError("a renderer was created without window nor render target attached (wtf!?)");
for(auto& texture : m_textures)
texture->Resize(extent.width, extent.height);
}
};
EventBus::RegisterListener({ functor, "mlx_put_pixel_manager_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
}
NonOwningPtr<Texture> PutPixelManager::DrawPixel(int x, int y, std::uint64_t draw_layer, mlx_color color) NonOwningPtr<Texture> PutPixelManager::DrawPixel(int x, int y, std::uint64_t draw_layer, mlx_color color)
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
@@ -76,8 +53,21 @@ namespace mlx
is_newlayer = true; is_newlayer = true;
if(m_current_texture_index >= m_textures.size()) if(m_current_texture_index >= m_textures.size())
m_textures.push_back(NewTexture()); {
VkExtent2D extent{ .width = 0, .height = 0 };
if(p_renderer->GetWindow())
extent = kvfGetSwapchainImagesSize(p_renderer->GetSwapchain().Get());
else if(p_renderer->GetRenderTarget())
extent = VkExtent2D{ .width = p_renderer->GetRenderTarget()->GetWidth(), .height = p_renderer->GetRenderTarget()->GetHeight() };
else
FatalError("a renderer was created without window nor render target attached (wtf)");
#ifdef DEBUG
m_textures.push_back(std::make_unique<Texture>(CPUBuffer{}, extent.width, extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, "mlx_put_pixel_layer_" + std::to_string(m_current_texture_index)));
#else
m_textures.push_back(std::make_unique<Texture>(CPUBuffer{}, extent.width, extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, std::string_view{}));
#endif
}
try try
{ {
m_placements[draw_layer] = m_textures.at(m_current_texture_index).get(); m_placements[draw_layer] = m_textures.at(m_current_texture_index).get();
@@ -93,23 +83,6 @@ namespace mlx
} }
} }
std::unique_ptr<Texture> PutPixelManager::NewTexture()
{
VkExtent2D extent{ .width = 0, .height = 0 };
if(p_renderer->GetWindow())
extent = kvfGetSwapchainImagesSize(p_renderer->GetSwapchain().Get());
else if(p_renderer->GetRenderTarget())
extent = VkExtent2D{ .width = p_renderer->GetRenderTarget()->GetWidth(), .height = p_renderer->GetRenderTarget()->GetHeight() };
else
FatalError("a renderer was created without window nor render target attached (wtf!?)");
#ifdef DEBUG
return std::make_unique<Texture>(CPUBuffer{}, extent.width, extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, "mlx_put_pixel_layer_" + std::to_string(m_current_texture_index));
#else
return std::make_unique<Texture>(CPUBuffer{}, extent.width, extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, std::string_view{});
#endif
}
void PutPixelManager::ResetRenderData() void PutPixelManager::ResetRenderData()
{ {
m_placements.clear(); m_placements.clear();
+17 -23
View File
@@ -9,7 +9,7 @@
namespace mlx namespace mlx
{ {
constexpr std::size_t MAX_SETS_PER_POOL = 1024; constexpr std::size_t MAX_SETS_PER_POOL = MAX_FRAMES_IN_FLIGHT * 1024;
void TransitionImageToCorrectLayout(Image& image, VkCommandBuffer cmd) void TransitionImageToCorrectLayout(Image& image, VkCommandBuffer cmd)
{ {
@@ -26,19 +26,19 @@ namespace mlx
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
VkDescriptorPoolSize pool_sizes[] = { VkDescriptorPoolSize pool_sizes[] = {
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, MAX_FRAMES_IN_FLIGHT * MAX_SETS_PER_POOL }, { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, MAX_SETS_PER_POOL },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, MAX_FRAMES_IN_FLIGHT * MAX_SETS_PER_POOL }, { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, MAX_SETS_PER_POOL },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, MAX_FRAMES_IN_FLIGHT * MAX_SETS_PER_POOL } { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, MAX_SETS_PER_POOL }
}; };
VkDescriptorPoolCreateInfo pool_info{}; VkDescriptorPoolCreateInfo pool_info{};
pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
pool_info.poolSizeCount = sizeof(pool_sizes) / sizeof(pool_sizes[0]); pool_info.poolSizeCount = sizeof(pool_sizes) / sizeof(pool_sizes[0]);
pool_info.pPoolSizes = pool_sizes; pool_info.pPoolSizes = pool_sizes;
pool_info.maxSets = MAX_FRAMES_IN_FLIGHT * MAX_SETS_PER_POOL; pool_info.maxSets = MAX_SETS_PER_POOL;
pool_info.flags = 0; pool_info.flags = 0;
kvfCheckVk(RenderCore::Get().vkCreateDescriptorPool(RenderCore::Get().GetDevice(), &pool_info, nullptr, &m_pool)); kvfCheckVk(RenderCore::Get().vkCreateDescriptorPool(RenderCore::Get().GetDevice(), &pool_info, nullptr, &m_pool));
DebugLog("Vulkan: created new descriptor pool"); m_allocation_count = 0;
} }
void DescriptorPool::Destroy() noexcept void DescriptorPool::Destroy() noexcept
@@ -52,6 +52,7 @@ namespace mlx
kvfDestroyDescriptorSetLayout(RenderCore::Get().GetDevice(), set->m_set_layout); kvfDestroyDescriptorSetLayout(RenderCore::Get().GetDevice(), set->m_set_layout);
RenderCore::Get().vkDestroyDescriptorPool(RenderCore::Get().GetDevice(), m_pool, nullptr); RenderCore::Get().vkDestroyDescriptorPool(RenderCore::Get().GetDevice(), m_pool, nullptr);
m_pool = VK_NULL_HANDLE; m_pool = VK_NULL_HANDLE;
m_allocation_count = 0;
m_free_sets.clear(); m_free_sets.clear();
m_used_sets.clear(); m_used_sets.clear();
} }
@@ -102,6 +103,7 @@ namespace mlx
alloc_info.pSetLayouts = &vulkan_layout; alloc_info.pSetLayouts = &vulkan_layout;
VkDescriptorSet vulkan_set; VkDescriptorSet vulkan_set;
kvfCheckVk(RenderCore::Get().vkAllocateDescriptorSets(RenderCore::Get().GetDevice(), &alloc_info, &vulkan_set)); kvfCheckVk(RenderCore::Get().vkAllocateDescriptorSets(RenderCore::Get().GetDevice(), &alloc_info, &vulkan_set));
m_allocation_count++;
vulkan_sets[i] = vulkan_set; vulkan_sets[i] = vulkan_set;
} }
@@ -112,8 +114,11 @@ namespace mlx
void DescriptorPool::ReturnDescriptorSet(std::shared_ptr<DescriptorSet> set) void DescriptorPool::ReturnDescriptorSet(std::shared_ptr<DescriptorSet> set)
{ {
//std::size_t i = 0;
auto it = std::find_if(m_used_sets.begin(), m_used_sets.end(), [&](const std::shared_ptr<DescriptorSet>& rhs_set) auto it = std::find_if(m_used_sets.begin(), m_used_sets.end(), [&](const std::shared_ptr<DescriptorSet>& rhs_set)
{ {
//i++;
//std::cout << m_used_sets.size() << " " << i << std::endl;
return set == rhs_set; return set == rhs_set;
}); });
if(it == m_used_sets.end()) if(it == m_used_sets.end())
@@ -122,34 +127,23 @@ namespace mlx
m_free_sets.push_back(set); m_free_sets.push_back(set);
} }
bool DescriptorPool::CanAllocate(const ShaderSetLayout& layout, ShaderType shader_type) const DescriptorPool& DescriptorPoolManager::GetAvailablePool()
{
auto it = std::find_if(m_free_sets.begin(), m_free_sets.end(), [&](std::shared_ptr<DescriptorSet> set)
{
return shader_type == set->GetShaderType() && layout == set->GetShaderLayout();
});
if(it != m_free_sets.end())
return true;
return m_used_sets.size() + m_free_sets.size() < MAX_SETS_PER_POOL;
}
DescriptorPool& DescriptorPoolManager::GetAvailablePool(const ShaderSetLayout& layout, ShaderType shader_type)
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
for(auto& pool : m_pools) for(auto& pool : m_pools)
{ {
if(pool->CanAllocate(layout, shader_type)) if(pool.GetNumberOfSetsAllocated() < MAX_SETS_PER_POOL)
return *pool; return pool;
} }
m_pools.emplace_back(std::make_unique<DescriptorPool>())->Init(); m_pools.emplace_back().Init();
return *m_pools.back(); return m_pools.back();
} }
void DescriptorPoolManager::Destroy() void DescriptorPoolManager::Destroy()
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
for(auto& pool : m_pools) for(auto& pool : m_pools)
pool->Destroy(); pool.Destroy();
m_pools.clear(); m_pools.clear();
} }
+9 -110
View File
@@ -22,9 +22,15 @@
#include <stb_image.h> #include <stb_image.h>
#endif #endif
#ifdef IMAGE_OPTIMIZED
#define TILING VK_IMAGE_TILING_OPTIMAL
#else
#define TILING VK_IMAGE_TILING_LINEAR
#endif
namespace mlx namespace mlx
{ {
MLX_FORCEINLINE mlx_color ReverseColor(mlx_color color) mlx_color ReverseColor(mlx_color color)
{ {
mlx_color reversed_color; mlx_color reversed_color;
reversed_color.r = color.a; reversed_color.r = color.a;
@@ -180,7 +186,7 @@ namespace mlx
void Texture::Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, [[maybe_unused]] std::string_view debug_name) void Texture::Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, [[maybe_unused]] std::string_view debug_name)
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
Image::Init(ImageType::Color, width, height, format, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, is_multisampled, std::move(debug_name)); Image::Init(ImageType::Color, width, height, format, TILING, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, is_multisampled, std::move(debug_name));
Image::CreateImageView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT); Image::CreateImageView(VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_ASPECT_COLOR_BIT);
Image::CreateSampler(); Image::CreateSampler();
if(pixels) if(pixels)
@@ -362,16 +368,8 @@ namespace mlx
m_staging_buffer->Init(BufferType::Staging, size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, {}, {}); m_staging_buffer->Init(BufferType::Staging, size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, {}, {});
#endif #endif
SyncCPUBuffer();
}
void Texture::SyncCPUBuffer(VkCommandBuffer cmd)
{
if(!m_staging_buffer.has_value())
return;
VkImageLayout old_layout = m_layout; VkImageLayout old_layout = m_layout;
if(cmd == VK_NULL_HANDLE) VkCommandBuffer cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
kvfBeginCommandBuffer(cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); kvfBeginCommandBuffer(cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
TransitionLayout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, cmd); TransitionLayout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, cmd);
kvfCopyImageToBuffer(cmd, m_staging_buffer->Get(), m_image, m_staging_buffer->GetOffset(), VK_IMAGE_ASPECT_COLOR_BIT, { m_width, m_height, 1 }); kvfCopyImageToBuffer(cmd, m_staging_buffer->Get(), m_image, m_staging_buffer->GetOffset(), VK_IMAGE_ASPECT_COLOR_BIT, { m_width, m_height, 1 });
@@ -383,105 +381,6 @@ namespace mlx
kvfDestroyCommandBuffer(RenderCore::Get().GetDevice(), cmd); kvfDestroyCommandBuffer(RenderCore::Get().GetDevice(), cmd);
} }
void Texture::CopyTo(Texture& other)
{
VkImageLayout old_layout = m_layout;
VkImageLayout other_old_layout = other.GetLayout();
VkImageSubresourceLayers subresource{};
subresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
subresource.mipLevel = 0;
subresource.layerCount = 1;
subresource.baseArrayLayer = 0;
VkExtent3D extent{};
extent.width = m_width;
extent.height = m_height;
extent.depth = 1;
VkOffset3D offset{};
offset.x = 0;
offset.y = 0;
offset.z = 0;
VkImageCopy region{};
region.srcSubresource = subresource;
region.dstSubresource = subresource;
region.extent = extent;
region.srcOffset = offset;
region.dstOffset = offset;
VkCommandBuffer cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
kvfBeginCommandBuffer(cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
TransitionLayout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, cmd);
other.TransitionLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, cmd);
kvfCopyImageToImage(cmd, m_image, m_layout, other.Get(), other.GetLayout(), 1, &region);
TransitionLayout(old_layout, cmd);
other.TransitionLayout(other_old_layout, cmd);
kvfEndCommandBuffer(cmd);
SyncCPUBuffer(cmd);
}
void Texture::Resize(std::uint32_t width, std::uint32_t height)
{
#ifdef DEBUG
Texture new_texture = Texture(CPUBuffer{}, width, height, m_format, m_is_multisampled, m_debug_name);
#else
Texture new_texture = Texture(CPUBuffer{}, width, height, m_format, m_is_multisampled, std::string_view{});
#endif
if(m_staging_buffer.has_value())
{
new_texture.OpenCPUBuffer();
new_texture.m_staging_buffer->CopyFrom(*m_staging_buffer);
}
// Suboptimal operations, should bake all of them in a single command buffer
new_texture.Clear(VK_NULL_HANDLE, Vec4f{ 0.f });
CopyTo(new_texture);
Swap(new_texture);
#ifdef DEBUG
DebugLog("Texture: resized '%'", m_debug_name);
#endif
}
void Texture::Swap(Texture& texture) noexcept
{
MLX_PROFILE_FUNCTION();
#ifdef DEBUG
std::swap(m_debug_name, texture.m_debug_name);
#endif
std::swap(m_allocation, texture.m_allocation);
std::swap(m_image, texture.m_image);
std::swap(m_image_view, texture.m_image_view);
std::swap(m_sampler, texture.m_sampler);
std::swap(m_format, texture.m_format);
std::swap(m_tiling, texture.m_tiling);
std::swap(m_layout, texture.m_layout);
std::swap(m_type, texture.m_type);
std::swap(m_width, texture.m_width);
std::swap(m_height, texture.m_height);
std::swap(m_is_multisampled, texture.m_is_multisampled);
if(m_staging_buffer.has_value() && texture.m_staging_buffer.has_value())
m_staging_buffer->Swap(*texture.m_staging_buffer);
else if(m_staging_buffer.has_value())
m_staging_buffer.reset();
else if(texture.m_staging_buffer.has_value())
texture.m_staging_buffer.reset();
m_has_been_modified = true;
texture.m_has_been_modified = true;
}
Texture* StbTextureLoad(const std::filesystem::path& file, int* w, int* h) Texture* StbTextureLoad(const std::filesystem::path& file, int* w, int* h)
{ {
using namespace std::literals; using namespace std::literals;
@@ -127,9 +127,6 @@ namespace mlx
void GraphicPipeline::Destroy() noexcept void GraphicPipeline::Destroy() noexcept
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
if(m_pipeline == VK_NULL_HANDLE)
return;
p_vertex_shader.reset(); p_vertex_shader.reset();
p_fragment_shader.reset(); p_fragment_shader.reset();
for(auto fb : m_framebuffers) for(auto fb : m_framebuffers)
+5 -57
View File
@@ -55,17 +55,17 @@ namespace mlx
std::cout << std::endl; std::cout << std::endl;
} }
void* VKAPI_PTR VulkanAllocationFunction(void*, std::size_t size, std::size_t alignment, VkSystemAllocationScope) void* VulkanAllocationFunction(void*, std::size_t size, std::size_t alignment, VkSystemAllocationScope)
{ {
return MemManager::AlignedMalloc(alignment, size); return MemManager::AlignedMalloc(alignment, size);
} }
void* VKAPI_PTR VulkanReallocationFunction(void*, void* ptr, std::size_t size, std::size_t alignment, VkSystemAllocationScope) void* VulkanReallocationFunction(void*, void* ptr, std::size_t size, std::size_t alignment, VkSystemAllocationScope)
{ {
return MemManager::AlignedRealloc(ptr, alignment, size); return MemManager::AlignedRealloc(ptr, alignment, size);
} }
void VKAPI_PTR VulkanFreeFunction(void*, void* ptr) void VulkanFreeFunction(void*, void* ptr)
{ {
MemManager::Free(ptr); MemManager::Free(ptr);
} }
@@ -100,25 +100,8 @@ namespace mlx
info.width = 1; info.width = 1;
info.height = 1; info.height = 1;
window = std::make_unique<Window>(&info, true); window = std::make_unique<Window>(&info, true);
instance_extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME); instance_extensions = window->GetRequiredVulkanInstanceExtentions();
#ifdef VK_USE_PLATFORM_XCB_KHR #ifdef MLX_PLAT_MACOS
instance_extensions.push_back(VK_KHR_XCB_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
instance_extensions.push_back(VK_KHR_XLIB_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
instance_extensions.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
instance_extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
instance_extensions.push_back(VK_EXT_METAL_SURFACE_EXTENSION_NAME);
instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
#endif #endif
} }
@@ -202,41 +185,6 @@ namespace mlx
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR);
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR);
MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR); MLX_LOAD_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR);
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
MLX_LOAD_FUNCTION(vkCreateAndroidSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
MLX_LOAD_FUNCTION(vkCreateXcbSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
MLX_LOAD_FUNCTION(vkCreateXlibSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
MLX_LOAD_FUNCTION(vkCreateWaylandSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
MLX_LOAD_FUNCTION(vkCreateWin32SurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
MLX_LOAD_FUNCTION(vkCreateMetalSurfaceEXT);
#endif
#endif
kvfPassInstanceVulkanFunctionPointers(&pfns); kvfPassInstanceVulkanFunctionPointers(&pfns);
} }
@@ -52,8 +52,8 @@ namespace mlx
}; };
EventBus::RegisterListener({ functor, "mlx_2d_render_pass_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) }); EventBus::RegisterListener({ functor, "mlx_2d_render_pass_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
p_viewer_data_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool(p_vertex_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Vertex).RequestDescriptorSet(p_vertex_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Vertex); p_viewer_data_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool().RequestDescriptorSet(p_vertex_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Vertex);
p_texture_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment).RequestDescriptorSet(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment); p_texture_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool().RequestDescriptorSet(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment);
p_viewer_data_buffer = std::make_shared<UniformBuffer>(); p_viewer_data_buffer = std::make_shared<UniformBuffer>();
p_viewer_data_buffer->Init(sizeof(ViewerData), "mlx_2d_pass_viewer_data"); p_viewer_data_buffer->Init(sizeof(ViewerData), "mlx_2d_pass_viewer_data");
@@ -38,7 +38,7 @@ namespace mlx
}; };
EventBus::RegisterListener({ functor, "mlx_final_pass_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) }); EventBus::RegisterListener({ functor, "mlx_final_pass_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
p_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment).RequestDescriptorSet(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment); p_set = RenderCore::Get().GetDescriptorPoolManager().GetAvailablePool().RequestDescriptorSet(p_fragment_shader->GetShaderLayout().set_layouts[0].second, ShaderType::Fragment);
} }
void FinalPass::Pass([[maybe_unused]] Scene& scene, Renderer& renderer, Texture& render_target, NonOwningPtr<class Texture> final_target) void FinalPass::Pass([[maybe_unused]] Scene& scene, Renderer& renderer, Texture& render_target, NonOwningPtr<class Texture> final_target)
+18 -36
View File
@@ -20,42 +20,29 @@ namespace mlx
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
p_window = window; p_window = window;
m_swapchain.Init(p_window); m_swapchain.Init(p_window);
Init(NonOwningPtr<Texture>{ nullptr }); for(std::size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
m_image_available_semaphores[i] = kvfCreateSemaphore(RenderCore::Get().GetDevice());
DebugLog("Vulkan: image available semaphore created");
m_render_finished_semaphores[i] = kvfCreateSemaphore(RenderCore::Get().GetDevice());
DebugLog("Vulkan: render finished semaphore created");
m_cmd_buffers[i] = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
DebugLog("Vulkan: command buffer created");
m_cmd_fences[i] = kvfCreateFence(RenderCore::Get().GetDevice());
DebugLog("Vulkan: fence created");
}
} }
void Renderer::Init(NonOwningPtr<Texture> render_target) void Renderer::Init(NonOwningPtr<Texture> render_target)
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
std::function<void(const EventBase&)> functor = [this](const EventBase& event) p_render_target = render_target;
{
if(event.What() == Event::ResizeEventCode)
{
for(std::size_t i = 0; i < m_render_finished_semaphores.size(); i++)
{
kvfDestroySemaphore(RenderCore::Get().GetDevice(), m_render_finished_semaphores[i]);
DebugLog("Vulkan: render finished semaphore destroyed");
}
m_render_finished_semaphores.clear();
for(std::size_t i = 0; i < (p_window ? m_swapchain.GetImagesCount() : 1); i++)
{
m_render_finished_semaphores.push_back(kvfCreateSemaphore(RenderCore::Get().GetDevice()));
DebugLog("Vulkan: render finished semaphore created");
}
}
};
EventBus::RegisterListener({ functor, "mlx_renderer_" + std::to_string(reinterpret_cast<std::uintptr_t>(this)) });
if(render_target)
p_render_target = render_target;
for(std::size_t i = 0; i < (p_window ? m_swapchain.GetImagesCount() : 1); i++)
{
m_render_finished_semaphores.push_back(kvfCreateSemaphore(RenderCore::Get().GetDevice()));
DebugLog("Vulkan: render finished semaphore created");
}
for(std::size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++) for(std::size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{ {
m_image_available_semaphores[i] = kvfCreateSemaphore(RenderCore::Get().GetDevice()); m_image_available_semaphores[i] = kvfCreateSemaphore(RenderCore::Get().GetDevice());
DebugLog("Vulkan: image available semaphore created"); DebugLog("Vulkan: image available semaphore created");
m_render_finished_semaphores[i] = kvfCreateSemaphore(RenderCore::Get().GetDevice());
DebugLog("Vulkan: render finished semaphore created");
m_cmd_buffers[i] = kvfCreateCommandBuffer(RenderCore::Get().GetDevice()); m_cmd_buffers[i] = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
DebugLog("Vulkan: command buffer created"); DebugLog("Vulkan: command buffer created");
m_cmd_fences[i] = kvfCreateFence(RenderCore::Get().GetDevice()); m_cmd_fences[i] = kvfCreateFence(RenderCore::Get().GetDevice());
@@ -79,15 +66,14 @@ namespace mlx
void Renderer::EndFrame() void Renderer::EndFrame()
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
std::size_t render_finished_index = (p_window ? m_swapchain.GetImageIndex() : 0);
VkPipelineStageFlags wait_stages[] = { VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT }; VkPipelineStageFlags wait_stages[] = { VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT };
kvfEndCommandBuffer(m_cmd_buffers[m_current_frame_index]); kvfEndCommandBuffer(m_cmd_buffers[m_current_frame_index]);
if(p_window) if(p_window)
kvfSubmitCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[m_current_frame_index], KVF_GRAPHICS_QUEUE, m_render_finished_semaphores[render_finished_index], m_image_available_semaphores[m_current_frame_index], m_cmd_fences[m_current_frame_index], wait_stages); kvfSubmitCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[m_current_frame_index], KVF_GRAPHICS_QUEUE, m_render_finished_semaphores[m_current_frame_index], m_image_available_semaphores[m_current_frame_index], m_cmd_fences[m_current_frame_index], wait_stages);
else else
kvfSubmitCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[m_current_frame_index], KVF_GRAPHICS_QUEUE, VK_NULL_HANDLE, VK_NULL_HANDLE, m_cmd_fences[m_current_frame_index], wait_stages); kvfSubmitCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[m_current_frame_index], KVF_GRAPHICS_QUEUE, VK_NULL_HANDLE, VK_NULL_HANDLE, m_cmd_fences[m_current_frame_index], wait_stages);
if(p_window) if(p_window)
m_swapchain.Present(m_render_finished_semaphores[render_finished_index]); m_swapchain.Present(m_render_finished_semaphores[m_current_frame_index]);
m_current_frame_index = (m_current_frame_index + 1) % MAX_FRAMES_IN_FLIGHT; m_current_frame_index = (m_current_frame_index + 1) % MAX_FRAMES_IN_FLIGHT;
} }
@@ -95,16 +81,12 @@ namespace mlx
{ {
MLX_PROFILE_FUNCTION(); MLX_PROFILE_FUNCTION();
RenderCore::Get().WaitDeviceIdle(); RenderCore::Get().WaitDeviceIdle();
for(std::size_t i = 0; i < m_render_finished_semaphores.size(); i++)
{
kvfDestroySemaphore(RenderCore::Get().GetDevice(), m_render_finished_semaphores[i]);
DebugLog("Vulkan: render finished semaphore destroyed");
}
m_render_finished_semaphores.clear();
for(std::size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++) for(std::size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{ {
kvfDestroySemaphore(RenderCore::Get().GetDevice(), m_image_available_semaphores[i]); kvfDestroySemaphore(RenderCore::Get().GetDevice(), m_image_available_semaphores[i]);
DebugLog("Vulkan: image available semaphore destroyed"); DebugLog("Vulkan: image available semaphore destroyed");
kvfDestroySemaphore(RenderCore::Get().GetDevice(), m_render_finished_semaphores[i]);
DebugLog("Vulkan: render finished semaphore destroyed");
kvfDestroyCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[i]); kvfDestroyCommandBuffer(RenderCore::Get().GetDevice(), m_cmd_buffers[i]);
DebugLog("Vulkan: command buffer destroyed"); DebugLog("Vulkan: command buffer destroyed");
kvfDestroyFence(RenderCore::Get().GetDevice(), m_cmd_fences[i]); kvfDestroyFence(RenderCore::Get().GetDevice(), m_cmd_fences[i]);
+1 -1
View File
@@ -21,6 +21,6 @@ rm vulkan-headers.zip
# Update KVF # Update KVF
rm -f ../third_party/kvf.h rm -f ../third_party/kvf.h
git clone https://git.kbz8.me/kbz_8/KVF.git ../third_party/KVF/ git clone https://github.com/Kbz-8/KVF.git ../third_party/KVF/
mv ../third_party/KVF/kvf.h ../third_party/kvf.h mv ../third_party/KVF/kvf.h ../third_party/kvf.h
rm -rf ../third_party/KVF rm -rf ../third_party/KVF
-15
View File
@@ -1,15 +0,0 @@
[wrap-file]
directory = SDL2-2.32.8
source_url = https://github.com/libsdl-org/SDL/releases/download/release-2.32.8/SDL2-2.32.8.tar.gz
source_filename = SDL2-2.32.8.tar.gz
source_hash = 0ca83e9c9b31e18288c7ec811108e58bac1f1bb5ec6577ad386830eac51c787e
patch_filename = sdl2_2.32.8-1_patch.zip
patch_url = https://wrapdb.mesonbuild.com/v2/sdl2_2.32.8-1/get_patch
patch_hash = 5df17ea39ca418826db20e96bd821fa52b5718dac64b6225119fb6588c2744f0
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/sdl2_2.32.8-1/SDL2-2.32.8.tar.gz
wrapdb_version = 2.32.8-1
[provide]
sdl2 = sdl2_dep
sdl2main = sdl2main_dep
sdl2_test = sdl2_test_dep
+4 -247
View File
@@ -1,7 +1,7 @@
/*** /***
* MIT License * MIT License
* *
* Copyright (c) 2023-2025 kbz_8 * Copyright (c) 2023-2024 kbz_8
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@@ -55,46 +55,6 @@
#define VK_NO_PROTOTYPES #define VK_NO_PROTOTYPES
#endif #endif
#ifndef KVF_NO_KHR
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#include <vulkan/vulkan_android.h>
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#include <vulkan/vulkan_wayland.h>
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
typedef struct HINSTANCE__* HINSTANCE;
typedef struct HWND__* HWND;
typedef struct HMONITOR__* HMONITOR;
typedef void* HANDLE;
typedef /*_Null_terminated_*/ const wchar_t* LPCWSTR;
typedef unsigned long DWORD;
typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;
#include <vulkan/vulkan_win32.h>
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
struct xcb_connection_t;
typedef uint32_t xcb_window_t;
typedef uint32_t xcb_visualid_t;
#include <vulkan/vulkan_xcb.h>
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#include <vulkan/vulkan_metal.h>
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
typedef struct _XDisplay Display;
typedef unsigned long XID;
typedef XID Window;
typedef unsigned long VisualID;
#include <vulkan/vulkan_xlib.h>
#endif
#endif
#include <vulkan/vulkan_core.h> #include <vulkan/vulkan_core.h>
#include <stdint.h> #include <stdint.h>
@@ -122,18 +82,6 @@ typedef enum
KVF_IMAGE_OTHER = 4, KVF_IMAGE_OTHER = 4,
} KvfImageType; } KvfImageType;
#ifndef KVF_NO_KHR
typedef enum
{
KVF_SURFACE_ANDROID = 0,
KVF_SURFACE_XLIB = 1,
KVF_SURFACE_XCB = 2,
KVF_SURFACE_WAYLAND = 3,
KVF_SURFACE_WINDOWS = 4,
KVF_SURFACE_METAL = 5,
} KvfSurfaceType;
#endif
typedef void (*KvfErrorCallback)(const char* message); typedef void (*KvfErrorCallback)(const char* message);
#ifdef KVF_IMPL_VK_NO_PROTOTYPES #ifdef KVF_IMPL_VK_NO_PROTOTYPES
@@ -156,7 +104,6 @@ void kvfSetValidationWarningCallback(KvfErrorCallback callback);
void kvfAddLayer(const char* layer); void kvfAddLayer(const char* layer);
VkInstance kvfCreateInstance(const char** extensions_enabled, uint32_t extensions_count); VkInstance kvfCreateInstance(const char** extensions_enabled, uint32_t extensions_count);
VkInstance kvfCreateInstanceNext(const char** extensions_enabled, uint32_t extensions_count, void* p_next);
void kvfDestroyInstance(VkInstance instance); void kvfDestroyInstance(VkInstance instance);
// If surfaces given to theses functions are VK_NULL_HANDLE no present queues will be searched and thus kvfQueuePresentKHR will not work // If surfaces given to theses functions are VK_NULL_HANDLE no present queues will be searched and thus kvfQueuePresentKHR will not work
@@ -200,39 +147,10 @@ void kvfDestroySemaphore(VkDevice device, VkSemaphore semaphore);
uint32_t kvfGetSwapchainMinImagesCount(VkSwapchainKHR swapchain); uint32_t kvfGetSwapchainMinImagesCount(VkSwapchainKHR swapchain);
VkExtent2D kvfGetSwapchainImagesSize(VkSwapchainKHR swapchain); VkExtent2D kvfGetSwapchainImagesSize(VkSwapchainKHR swapchain);
void kvfDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain); void kvfDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain);
/**
* For Windows:
* - instance_handle -> HINSTANCE
* - window_handle -> HWND window handle
*
* For Wayland:
* - instance_handle -> wl_display
* - window_handle -> wl_surface
*
* For XLIB:
* - instance_handle -> Display
* - window_handle -> Window
*
* For XCB:
* - instance_handle -> xcb_connection_t
* - window_handle -> xcb_window_t
*
* For Metal:
* - instance_handle -> ignored
* - window_handle -> CAMetalLayer
*
* For Android:
* - instance_handle -> ignored
* - window_handle -> ANativeWindow
*/
VkSurfaceKHR kvfCreateSurfaceKHR(VkInstance instance, KvfSurfaceType type, void* instance_handle, void* window_handle);
#endif #endif
VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type); VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type);
void kvfCopyImageToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkImage src, size_t buffer_offset, VkImageAspectFlagBits aspect, VkExtent3D extent); void kvfCopyImageToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkImage src, size_t buffer_offset, VkImageAspectFlagBits aspect, VkExtent3D extent);
void kvfCopyImageToImage(VkCommandBuffer cmd, VkImage src, VkImageLayout src_layout, VkImage dst, VkImageLayout dst_layout, uint32_t count, const VkImageCopy* regions);
void kvfDestroyImage(VkDevice device, VkImage image); void kvfDestroyImage(VkDevice device, VkImage image);
VkImageView kvfCreateImageView(VkDevice device, VkImage image, VkFormat format, VkImageViewType type, VkImageAspectFlags aspect, int layer_count); VkImageView kvfCreateImageView(VkDevice device, VkImage image, VkFormat format, VkImageViewType type, VkImageAspectFlags aspect, int layer_count);
void kvfDestroyImageView(VkDevice device, VkImageView image_view); void kvfDestroyImageView(VkDevice device, VkImageView image_view);
@@ -317,7 +235,6 @@ VkPipeline kvfCreateGraphicsPipeline(VkDevice device, VkPipelineCache cache, VkP
void kvfDestroyPipeline(VkDevice device, VkPipeline pipeline); void kvfDestroyPipeline(VkDevice device, VkPipeline pipeline);
void kvfCheckVk(VkResult result); void kvfCheckVk(VkResult result);
int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter, VkMemoryPropertyFlags properties);
#ifdef KVF_IMPL_VK_NO_PROTOTYPES #ifdef KVF_IMPL_VK_NO_PROTOTYPES
#ifdef KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE #ifdef KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE
@@ -351,42 +268,6 @@ int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceFormatsKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceFormatsKHR);
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfacePresentModesKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfacePresentModesKHR);
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceSupportKHR); KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkGetPhysicalDeviceSurfaceSupportKHR);
#ifdef VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_KHR_android_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateAndroidSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
#ifdef VK_KHR_xcb_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateXcbSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_KHR_xlib_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateXlibSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_KHR_wayland_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateWaylandSurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
#ifdef VK_KHR_win32_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateWin32SurfaceKHR);
#endif
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
#ifdef VK_EXT_metal_surface
KVF_DEFINE_VULKAN_FUNCTION_PROTOTYPE(vkCreateMetalSurfaceEXT);
#endif
#endif
#endif #endif
}; };
@@ -638,19 +519,6 @@ void kvfCheckVk(VkResult result)
__kvfCheckVk(result); __kvfCheckVk(result);
} }
int32_t kvfFindMemoryType(VkPhysicalDevice physical_device, uint32_t type_filter, VkMemoryPropertyFlags properties)
{
VkPhysicalDeviceMemoryProperties mem_properties;
KVF_GET_INSTANCE_FUNCTION(vkGetPhysicalDeviceMemoryProperties)(physical_device, &mem_properties);
for(int32_t i = 0; i < (int32_t)mem_properties.memoryTypeCount; i++)
{
if((type_filter & (1 << i)) && (mem_properties.memoryTypes[i].propertyFlags & properties) == properties)
return i;
}
return -1;
}
void __kvfAddDeviceToArray(VkPhysicalDevice device, int32_t graphics_queue, int32_t present_queue, int32_t compute_queue) void __kvfAddDeviceToArray(VkPhysicalDevice device, int32_t graphics_queue, int32_t present_queue, int32_t compute_queue)
{ {
KVF_ASSERT(device != VK_NULL_HANDLE); KVF_ASSERT(device != VK_NULL_HANDLE);
@@ -1283,7 +1151,7 @@ const char* kvfVerbaliseVkResult(VkResult result)
case VK_ERROR_OUT_OF_DATE_KHR: return "A surface has changed in such a way that it is no longer compatible with the swapchain"; case VK_ERROR_OUT_OF_DATE_KHR: return "A surface has changed in such a way that it is no longer compatible with the swapchain";
case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: return "The display used by a swapchain does not use the same presentable image layout"; case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: return "The display used by a swapchain does not use the same presentable image layout";
case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: return "The requested window is already connected to a VkSurfaceKHR, or to some other non-Vulkan API"; case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: return "The requested window is already connected to a VkSurfaceKHR, or to some other non-Vulkan API";
case VK_ERROR_VALIDATION_FAILED_EXT: return "A command failed because invalid usage was detected by the implementation or a validation layer."; case VK_ERROR_VALIDATION_FAILED_EXT: return "A validation layer found an error";
default: return "Unknown Vulkan error"; default: return "Unknown Vulkan error";
} }
@@ -1427,11 +1295,6 @@ void kvfAddLayer(const char* layer)
} }
VkInstance kvfCreateInstance(const char** extensions_enabled, uint32_t extensions_count) VkInstance kvfCreateInstance(const char** extensions_enabled, uint32_t extensions_count)
{
return kvfCreateInstanceNext(extensions_enabled, extensions_count, NULL);
}
VkInstance kvfCreateInstanceNext(const char** extensions_enabled, uint32_t extensions_count, void* p_next)
{ {
VkInstance instance = VK_NULL_HANDLE; VkInstance instance = VK_NULL_HANDLE;
@@ -1442,7 +1305,7 @@ VkInstance kvfCreateInstanceNext(const char** extensions_enabled, uint32_t exten
create_info.ppEnabledExtensionNames = extensions_enabled; create_info.ppEnabledExtensionNames = extensions_enabled;
create_info.enabledLayerCount = 0; create_info.enabledLayerCount = 0;
create_info.ppEnabledLayerNames = NULL; create_info.ppEnabledLayerNames = NULL;
create_info.pNext = p_next; create_info.pNext = NULL;
#if defined(VK_USE_PLATFORM_MACOS_MVK) || defined(VK_USE_PLATFORM_METAL_EXT) #if defined(VK_USE_PLATFORM_MACOS_MVK) || defined(VK_USE_PLATFORM_METAL_EXT)
create_info.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; create_info.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
#else #else
@@ -1461,8 +1324,6 @@ VkInstance kvfCreateInstanceNext(const char** extensions_enabled, uint32_t exten
memcpy(new_extension_set, extensions_enabled, sizeof(char*) * extensions_count); memcpy(new_extension_set, extensions_enabled, sizeof(char*) * extensions_count);
new_extension_set[extensions_count] = VK_EXT_DEBUG_UTILS_EXTENSION_NAME; new_extension_set[extensions_count] = VK_EXT_DEBUG_UTILS_EXTENSION_NAME;
debug_create_info.pNext = p_next;
create_info.enabledExtensionCount = extensions_count + 1; create_info.enabledExtensionCount = extensions_count + 1;
create_info.ppEnabledExtensionNames = new_extension_set; create_info.ppEnabledExtensionNames = new_extension_set;
create_info.enabledLayerCount = __kvf_extra_layers_count; create_info.enabledLayerCount = __kvf_extra_layers_count;
@@ -2208,98 +2069,6 @@ void kvfDestroySemaphore(VkDevice device, VkSemaphore semaphore)
KVF_ASSERT(device != VK_NULL_HANDLE); KVF_ASSERT(device != VK_NULL_HANDLE);
__kvfDestroySwapchain(device, swapchain); __kvfDestroySwapchain(device, swapchain);
} }
VkSurfaceKHR kvfCreateSurfaceKHR(VkInstance instance, KvfSurfaceType type, void* instance_handle, void* window_handle)
{
VkSurfaceKHR surface = VK_NULL_HANDLE;
switch(type)
{
#ifdef VK_USE_PLATFORM_ANDROID_KHR
case KVF_SURFACE_ANDROID:
{
VkAndroidSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.window = (ANativeWindow*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateAndroidSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_XLIB_KHR
case KVF_SURFACE_XLIB:
{
VkXlibSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.dpy = (Display*)instance_handle;
create_info.window = *(Window*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateXlibSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_XCB_KHR
case KVF_SURFACE_XCB:
{
VkXcbSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.connection = (xcb_connection_t*)instance_handle;
create_info.window = (*xcb_window_t*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateXcbSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
case KVF_SURFACE_WAYLAND:
{
VkWaylandSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.display = (wl_display*)instance_handle;
create_info.surface = (wl_surface*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateWaylandSurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_WIN32_KHR
case KVF_SURFACE_WINDOWS:
{
VkWin32SurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.hinstance = (HINSTANCE)instance_handle;
create_info.hwnd = (HWND)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateWin32SurfaceKHR)(instance, &create_info, NULL, &surface));
break;
}
#endif
#ifdef VK_USE_PLATFORM_METAL_EXT
case KVF_SURFACE_METAL:
{
VkMetalSurfaceCreateInfoEXT create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
create_info.pNext = nullptr;
create_info.flags = 0;
create_info.pLayer = (CAMetalLayer*)window_handle;
kvfCheckVk(KVF_GET_INSTANCE_FUNCTION(vkCreateMetalSurfaceEXT)(instance, &create_info, NULL, &surface));
break;
}
#endif
default: break;
}
return surface;
}
#endif #endif
VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type) VkImage kvfCreateImage(VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, KvfImageType type)
@@ -2356,18 +2125,6 @@ void kvfCopyImageToBuffer(VkCommandBuffer cmd, VkBuffer dst, VkImage src, size_t
KVF_GET_DEVICE_FUNCTION(vkCmdCopyImageToBuffer)(cmd, src, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, dst, 1, &region); KVF_GET_DEVICE_FUNCTION(vkCmdCopyImageToBuffer)(cmd, src, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, dst, 1, &region);
} }
void kvfCopyImageToImage(VkCommandBuffer cmd, VkImage src, VkImageLayout src_layout, VkImage dst, VkImageLayout dst_layout, uint32_t count, const VkImageCopy* regions)
{
KVF_ASSERT(cmd != VK_NULL_HANDLE);
KVF_ASSERT(dst != VK_NULL_HANDLE);
KVF_ASSERT(src != VK_NULL_HANDLE);
#ifdef KVF_IMPL_VK_NO_PROTOTYPES
__KvfDevice* kvf_device = __kvfGetKvfDeviceFromVkCommandBuffer(cmd);
KVF_ASSERT(kvf_device != NULL && "could not find VkDevice in registered devices");
#endif
KVF_GET_DEVICE_FUNCTION(vkCmdCopyImage)(cmd, src, src_layout, dst, dst_layout, count, regions);
}
void kvfDestroyImage(VkDevice device, VkImage image) void kvfDestroyImage(VkDevice device, VkImage image)
{ {
if(image == VK_NULL_HANDLE) if(image == VK_NULL_HANDLE)
@@ -2559,7 +2316,7 @@ void kvfCopyBufferToImage(VkCommandBuffer cmd, VkImage dst, VkBuffer src, size_t
void kvfDestroyBuffer(VkDevice device, VkBuffer buffer) void kvfDestroyBuffer(VkDevice device, VkBuffer buffer)
{ {
if(buffer == VK_NULL_HANDLE) if(buffer != VK_NULL_HANDLE)
return; return;
KVF_ASSERT(device != VK_NULL_HANDLE); KVF_ASSERT(device != VK_NULL_HANDLE);
__KvfDevice* kvf_device = __kvfGetKvfDeviceFromVkDevice(device); __KvfDevice* kvf_device = __kvfGetKvfDeviceFromVkDevice(device);
+23 -23
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 #define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -22,27 +22,27 @@ extern "C" {
// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls. // vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_av1std 1 #define vulkan_video_codec_av1std 1
#include "vulkan_video_codecs_common.h" #include "vulkan_video_codecs_common.h"
#define STD_VIDEO_AV1_NUM_REF_FRAMES 8U #define STD_VIDEO_AV1_NUM_REF_FRAMES 8
#define STD_VIDEO_AV1_REFS_PER_FRAME 7U #define STD_VIDEO_AV1_REFS_PER_FRAME 7
#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8U #define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8
#define STD_VIDEO_AV1_MAX_TILE_COLS 64U #define STD_VIDEO_AV1_MAX_TILE_COLS 64
#define STD_VIDEO_AV1_MAX_TILE_ROWS 64U #define STD_VIDEO_AV1_MAX_TILE_ROWS 64
#define STD_VIDEO_AV1_MAX_SEGMENTS 8U #define STD_VIDEO_AV1_MAX_SEGMENTS 8
#define STD_VIDEO_AV1_SEG_LVL_MAX 8U #define STD_VIDEO_AV1_SEG_LVL_MAX 8
#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7U #define STD_VIDEO_AV1_PRIMARY_REF_NONE 7
#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2U #define STD_VIDEO_AV1_SELECT_INTEGER_MV 2
#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2U #define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2
#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2U #define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2
#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4U #define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4
#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2U #define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2
#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8U #define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8
#define STD_VIDEO_AV1_MAX_NUM_PLANES 3U #define STD_VIDEO_AV1_MAX_NUM_PLANES 3
#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6U #define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6
#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14U #define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14
#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10U #define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10
#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10U #define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10
#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24U #define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24
#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25U #define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25
typedef enum StdVideoAV1Profile { typedef enum StdVideoAV1Profile {
STD_VIDEO_AV1_PROFILE_MAIN = 0, STD_VIDEO_AV1_PROFILE_MAIN = 0,
@@ -144,7 +144,7 @@ typedef enum StdVideoAV1ColorPrimaries {
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
// STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a legacy alias // STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a deprecated alias
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED, STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
} StdVideoAV1ColorPrimaries; } StdVideoAV1ColorPrimaries;
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1 #define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ 1 #define VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+9 -9
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1 #define VULKAN_VIDEO_CODEC_H264STD_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -22,14 +22,14 @@ extern "C" {
// vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls. // vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_h264std 1 #define vulkan_video_codec_h264std 1
#include "vulkan_video_codecs_common.h" #include "vulkan_video_codecs_common.h"
#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32U #define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6U #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16U #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6U #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64U #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32U #define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2U #define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFFU #define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF
typedef enum StdVideoH264ChromaFormatIdc { typedef enum StdVideoH264ChromaFormatIdc {
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0, STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
+2 -2
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1 #define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -27,7 +27,7 @@ extern "C" {
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode" #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2U #define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
typedef enum StdVideoDecodeH264FieldOrderCount { typedef enum StdVideoDecodeH264FieldOrderCount {
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1 #define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+24 -24
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1 #define VULKAN_VIDEO_CODEC_H265STD_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -22,29 +22,29 @@ extern "C" {
// vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls. // vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_h265std 1 #define vulkan_video_codec_h265std 1
#include "vulkan_video_codecs_common.h" #include "vulkan_video_codecs_common.h"
#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32U #define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7U #define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6U #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16U #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6U #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64U #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6U #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64U #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2U #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64U #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6U #define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19U #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21U #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3U #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128U #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15U #define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2U #define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64U #define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
#define STD_VIDEO_H265_MAX_DPB_SIZE 16U #define STD_VIDEO_H265_MAX_DPB_SIZE 16
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32U #define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16U #define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
#define STD_VIDEO_H265_MAX_DELTA_POC 48U #define STD_VIDEO_H265_MAX_DELTA_POC 48
#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFFU #define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF
typedef enum StdVideoH265ChromaFormatIdc { typedef enum StdVideoH265ChromaFormatIdc {
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
+2 -2
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1 #define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -27,7 +27,7 @@ extern "C" {
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode" #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8U #define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
typedef struct StdVideoDecodeH265PictureInfoFlags { typedef struct StdVideoDecodeH265PictureInfoFlags {
uint32_t IrapPicFlag : 1; uint32_t IrapPicFlag : 1;
uint32_t IdrPicFlag : 1; uint32_t IdrPicFlag : 1;
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1 #define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+9 -9
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_VP9STD_H_ 1 #define VULKAN_VIDEO_CODEC_VP9STD_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -22,14 +22,14 @@ extern "C" {
// vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls. // vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls.
#define vulkan_video_codec_vp9std 1 #define vulkan_video_codec_vp9std 1
#include "vulkan_video_codecs_common.h" #include "vulkan_video_codecs_common.h"
#define STD_VIDEO_VP9_NUM_REF_FRAMES 8U #define STD_VIDEO_VP9_NUM_REF_FRAMES 8
#define STD_VIDEO_VP9_REFS_PER_FRAME 3U #define STD_VIDEO_VP9_REFS_PER_FRAME 3
#define STD_VIDEO_VP9_MAX_REF_FRAMES 4U #define STD_VIDEO_VP9_MAX_REF_FRAMES 4
#define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2U #define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2
#define STD_VIDEO_VP9_MAX_SEGMENTS 8U #define STD_VIDEO_VP9_MAX_SEGMENTS 8
#define STD_VIDEO_VP9_SEG_LVL_MAX 4U #define STD_VIDEO_VP9_SEG_LVL_MAX 4
#define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7U #define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7
#define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3U #define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3
typedef enum StdVideoVP9Profile { typedef enum StdVideoVP9Profile {
STD_VIDEO_VP9_PROFILE_0 = 0, STD_VIDEO_VP9_PROFILE_0 = 0,
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ 1 #define VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VIDEO_CODECS_COMMON_H_ 1 #define VULKAN_VIDEO_CODECS_COMMON_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -2
View File
@@ -44,9 +44,8 @@
typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this // This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this
// file directly, it won't be found. // file directly, it won't be found.
#ifndef IS_DEFINED_PFN_GetPhysicalDeviceProcAddr #ifndef PFN_GetPhysicalDeviceProcAddr
typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName); typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName);
#define IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
#endif #endif
// Typedefs for loader/ICD interface // Typedefs for loader/ICD interface
-3
View File
@@ -27,10 +27,7 @@
#define VK_CURRENT_CHAIN_VERSION 1 #define VK_CURRENT_CHAIN_VERSION 1
// Typedef for use in the interfaces below // Typedef for use in the interfaces below
#ifndef IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName);
#define IS_DEFINED_PFN_GetPhysicalDeviceProcAddr
#endif
// Version negotiation values // Version negotiation values
typedef enum VkNegotiateLayerStructType { typedef enum VkNegotiateLayerStructType {
+1 -1
View File
@@ -2,7 +2,7 @@
// File: vk_platform.h // File: vk_platform.h
// //
/* /*
** Copyright 2014-2026 The Khronos Group Inc. ** Copyright 2014-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+8450 -918
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_H_ 1 #define VULKAN_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+10839 -23907
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_ANDROID_H_ 1 #define VULKAN_ANDROID_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -32
View File
@@ -2,7 +2,7 @@
#define VULKAN_BETA_H_ 1 #define VULKAN_BETA_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -337,37 +337,6 @@ typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV {
} VkAccelerationStructureTrianglesDisplacementMicromapNV; } VkAccelerationStructureTrianglesDisplacementMicromapNV;
// VK_AMDX_dense_geometry_format is a preprocessor guard. Do not pass it to API calls.
#define VK_AMDX_dense_geometry_format 1
#define VK_AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION 1
#define VK_AMDX_DENSE_GEOMETRY_FORMAT_EXTENSION_NAME "VK_AMDX_dense_geometry_format"
#define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_ALIGNMENT_AMDX 128U
#define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_STRIDE_AMDX 128U
typedef enum VkCompressedTriangleFormatAMDX {
VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX = 0,
VK_COMPRESSED_TRIANGLE_FORMAT_MAX_ENUM_AMDX = 0x7FFFFFFF
} VkCompressedTriangleFormatAMDX;
typedef struct VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX {
VkStructureType sType;
void* pNext;
VkBool32 denseGeometryFormat;
} VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX;
typedef struct VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
VkStructureType sType;
const void* pNext;
VkDeviceOrHostAddressConstKHR compressedData;
VkDeviceSize dataSize;
uint32_t numTriangles;
uint32_t numVertices;
uint32_t maxPrimitiveIndex;
uint32_t maxGeometryIndex;
VkCompressedTriangleFormatAMDX format;
} VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
+2526 -5353
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_DIRECTFB_H_ 1 #define VULKAN_DIRECTFB_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+7587 -8165
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6359 -7874
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_FUCHSIA_H_ 1 #define VULKAN_FUCHSIA_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+16111 -22865
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_GGP_H_ 1 #define VULKAN_GGP_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+8163 -14692
View File
File diff suppressed because it is too large Load Diff
+10819 -15127
View File
File diff suppressed because it is too large Load Diff
+48 -77
View File
@@ -1,10 +1,11 @@
// Copyright 2015-2026 The Khronos Group Inc. // Copyright 2015-2025 The Khronos Group Inc.
// //
// SPDX-License-Identifier: Apache-2.0 OR MIT // SPDX-License-Identifier: Apache-2.0 OR MIT
// //
// This header is generated from the Khronos Vulkan XML API Registry. // This header is generated from the Khronos Vulkan XML API Registry.
#ifndef VULKAN_HPP_MACROS_HPP #ifndef VULKAN_HPP_MACROS_HPP
#define VULKAN_HPP_MACROS_HPP #define VULKAN_HPP_MACROS_HPP
@@ -35,18 +36,6 @@
# include <ciso646> # include <ciso646>
#endif #endif
#define VULKAN_HPP_STRINGIFY2( text ) #text
#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text )
#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
#if defined( __clang__ ) || defined( __GNUC__ ) || defined( __GNUG__ )
# define VULKAN_HPP_COMPILE_WARNING( text ) _Pragma( VULKAN_HPP_STRINGIFY( GCC warning text ) )
#elif defined( _MSC_VER )
# define VULKAN_HPP_COMPILE_WARNING( text ) _Pragma( VULKAN_HPP_STRINGIFY( message( __FILE__ "(" VULKAN_HPP_STRINGIFY( __LINE__ ) "): warning: " text ) ) )
#else
# define VULKAN_HPP_COMPILE_WARNING( text )
#endif
#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) #if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) # if !defined( VULKAN_HPP_NO_SMART_HANDLE )
# define VULKAN_HPP_NO_SMART_HANDLE # define VULKAN_HPP_NO_SMART_HANDLE
@@ -87,23 +76,6 @@
# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
#endif #endif
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
# if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) && !defined( VULKAN_HPP_CXX_MODULE )
# include <dlfcn.h>
# elif defined( _WIN32 ) && !defined( VULKAN_HPP_NO_WIN32_PROTOTYPES )
using HINSTANCE = struct HINSTANCE__ *;
# if defined( _WIN64 )
# include <cstdint>
using FARPROC = int64_t( __stdcall * )();
# else
using FARPROC = int( __stdcall * )();
# endif
extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, char const * lpProcName );
# endif
#endif
#if !defined( __has_include ) #if !defined( __has_include )
# define __has_include( x ) false # define __has_include( x ) false
#endif #endif
@@ -116,23 +88,16 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# define VULKAN_HPP_SUPPORT_SPAN # define VULKAN_HPP_SUPPORT_SPAN
#endif #endif
#if defined( VULKAN_HPP_CXX_MODULE ) #if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_STD_MODULE ) && defined( VULKAN_HPP_ENABLE_STD_MODULE )
# define VULKAN_HPP_EXPORT export # define VULKAN_HPP_STD_MODULE std.compat
#else
# define VULKAN_HPP_EXPORT
#endif
#if defined( VULKAN_HPP_CXX_MODULE ) && !( defined( __cpp_modules ) && defined( __cpp_lib_modules ) )
VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ named modules and the standard library module." )
#endif #endif
#ifndef VK_USE_64_BIT_PTR_DEFINES #ifndef VK_USE_64_BIT_PTR_DEFINES
# if defined( __LP64__ ) || defined( _WIN64 ) || ( defined( __x86_64__ ) && !defined( __ILP32__ ) ) || defined( _M_X64 ) || defined( __ia64 ) || \ #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
defined( _M_IA64 ) || defined( __aarch64__ ) || defined( __powerpc64__ ) || ( defined( __riscv ) && __riscv_xlen == 64 ) #define VK_USE_64_BIT_PTR_DEFINES 1
# define VK_USE_64_BIT_PTR_DEFINES 1 #else
# else #define VK_USE_64_BIT_PTR_DEFINES 0
# define VK_USE_64_BIT_PTR_DEFINES 0 #endif
# endif
#endif #endif
// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default. // 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
@@ -193,12 +158,7 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# else # else
# define VULKAN_HPP_CONSTEXPR_14 # define VULKAN_HPP_CONSTEXPR_14
# endif # endif
# if 201603 <= __cpp_constexpr # if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) )
# define VULKAN_HPP_CONSTEXPR_17 constexpr
# else
# define VULKAN_HPP_CONSTEXPR_17
# endif
# if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 120000 <= GCC_VERSION ) )
# define VULKAN_HPP_CONSTEXPR_20 constexpr # define VULKAN_HPP_CONSTEXPR_20 constexpr
# else # else
# define VULKAN_HPP_CONSTEXPR_20 # define VULKAN_HPP_CONSTEXPR_20
@@ -256,18 +216,14 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
#endif #endif
#if 17 <= VULKAN_HPP_CPP_VERSION
# define VULKAN_HPP_MAYBE_UNUSED [[maybe_unused]]
# define VULKAN_HPP_UNUSED( var )
#else
# define VULKAN_HPP_MAYBE_UNUSED
# define VULKAN_HPP_UNUSED( var ) ( (void)( var ) )
#endif
#if !defined( VULKAN_HPP_NAMESPACE ) #if !defined( VULKAN_HPP_NAMESPACE )
# define VULKAN_HPP_NAMESPACE vk # define VULKAN_HPP_NAMESPACE vk
#endif #endif
#define VULKAN_HPP_STRINGIFY2( text ) #text
#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text )
#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC ) #if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
# if defined( VK_NO_PROTOTYPES ) # if defined( VK_NO_PROTOTYPES )
# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 # define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
@@ -299,20 +255,19 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# endif # endif
#endif #endif
#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE ) namespace VULKAN_HPP_NAMESPACE
# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic {
#endif namespace detail
#if !defined( VULKAN_HPP_DISPATCH_LOADER_STATIC_TYPE ) {
# define VULKAN_HPP_DISPATCH_LOADER_STATIC_TYPE VULKAN_HPP_NAMESPACE::detail::DispatchLoaderStatic class DispatchLoaderDynamic;
#endif
#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ) #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC_TYPE extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
# else
# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE VULKAN_HPP_DISPATCH_LOADER_STATIC_TYPE
# endif # endif
#endif #endif
} // namespace detail
} // namespace VULKAN_HPP_NAMESPACE
#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER ) #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
@@ -329,18 +284,27 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::detail::getDispatchLoaderStatic() # define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::detail::getDispatchLoaderStatic()
# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE # define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
# endif # endif
#else #endif
# define VULKAN_HPP_DEFAULT_DISPATCHER_HANDLED
#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::detail::DispatchLoaderDynamic
# else
# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::detail::DispatchLoaderStatic
# endif
#endif #endif
#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
# define VULKAN_HPP_DEFAULT_ASSIGNMENT( assignment ) # define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
#else #else
# define VULKAN_HPP_DEFAULT_ASSIGNMENT( assignment ) = assignment # define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
#endif #endif
#define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT VULKAN_HPP_DEFAULT_ASSIGNMENT( VULKAN_HPP_DEFAULT_DISPATCHER )
#if !defined( VULKAN_HPP_EXPECTED ) && ( 23 <= VULKAN_HPP_CPP_VERSION ) && defined( __cpp_lib_expected ) && defined( VULKAN_HPP_USE_STD_EXPECTED ) #if !defined( VULKAN_HPP_EXPECTED ) && ( 23 <= VULKAN_HPP_CPP_VERSION ) && defined( __cpp_lib_expected )
# if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) ) # if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
# include <expected> # include <expected>
# endif # endif
@@ -349,8 +313,15 @@ VULKAN_HPP_COMPILE_WARNING( "This is a non-conforming implementation of C++ name
#endif #endif
#if !defined( VULKAN_HPP_RAII_NAMESPACE ) #if !defined( VULKAN_HPP_RAII_NAMESPACE )
# define VULKAN_HPP_RAII_NAMESPACE raii # define VULKAN_HPP_RAII_NAMESPACE raii
# define VULKAN_HPP_RAII_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE )
#endif #endif
#if defined( VULKAN_HPP_NO_EXCEPTIONS ) && defined( VULKAN_HPP_EXPECTED )
# define VULKAN_HPP_RAII_NO_EXCEPTIONS
# define VULKAN_HPP_RAII_CREATE_NOEXCEPT noexcept
#else
# define VULKAN_HPP_RAII_CREATE_NOEXCEPT
#endif #endif
#endif
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_IOS_H_ 1 #define VULKAN_IOS_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_MACOS_H_ 1 #define VULKAN_MACOS_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_METAL_H_ 1 #define VULKAN_METAL_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+5 -72
View File
@@ -2,7 +2,7 @@
#define VULKAN_OHOS_H_ 1 #define VULKAN_OHOS_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@@ -19,87 +19,20 @@ extern "C" {
// VK_OHOS_external_memory is a preprocessor guard. Do not pass it to API calls.
#define VK_OHOS_external_memory 1
struct OH_NativeBuffer;
#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1
#define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory"
typedef struct VkNativeBufferUsageOHOS {
VkStructureType sType;
void* pNext;
uint64_t OHOSNativeBufferUsage;
} VkNativeBufferUsageOHOS;
typedef struct VkNativeBufferPropertiesOHOS {
VkStructureType sType;
void* pNext;
VkDeviceSize allocationSize;
uint32_t memoryTypeBits;
} VkNativeBufferPropertiesOHOS;
typedef struct VkNativeBufferFormatPropertiesOHOS {
VkStructureType sType;
void* pNext;
VkFormat format;
uint64_t externalFormat;
VkFormatFeatureFlags formatFeatures;
VkComponentMapping samplerYcbcrConversionComponents;
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
VkSamplerYcbcrRange suggestedYcbcrRange;
VkChromaLocation suggestedXChromaOffset;
VkChromaLocation suggestedYChromaOffset;
} VkNativeBufferFormatPropertiesOHOS;
typedef struct VkImportNativeBufferInfoOHOS {
VkStructureType sType;
const void* pNext;
struct OH_NativeBuffer* buffer;
} VkImportNativeBufferInfoOHOS;
typedef struct VkMemoryGetNativeBufferInfoOHOS {
VkStructureType sType;
const void* pNext;
VkDeviceMemory memory;
} VkMemoryGetNativeBufferInfoOHOS;
typedef struct VkExternalFormatOHOS {
VkStructureType sType;
void* pNext;
uint64_t externalFormat;
} VkExternalFormatOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkGetNativeBufferPropertiesOHOS)(VkDevice device, const struct OH_NativeBuffer* buffer, VkNativeBufferPropertiesOHOS* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryNativeBufferOHOS)(VkDevice device, const VkMemoryGetNativeBufferInfoOHOS* pInfo, struct OH_NativeBuffer** pBuffer);
#ifndef VK_NO_PROTOTYPES
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
VkDevice device,
const struct OH_NativeBuffer* buffer,
VkNativeBufferPropertiesOHOS* pProperties);
#endif
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
VkDevice device,
const VkMemoryGetNativeBufferInfoOHOS* pInfo,
struct OH_NativeBuffer** pBuffer);
#endif
#endif
// VK_OHOS_surface is a preprocessor guard. Do not pass it to API calls. // VK_OHOS_surface is a preprocessor guard. Do not pass it to API calls.
#define VK_OHOS_surface 1 #define VK_OHOS_surface 1
typedef struct NativeWindow OHNativeWindow; typedef struct NativeWindow OHNativeWindow;
#define VK_OHOS_SURFACE_SPEC_VERSION 1 #define VK_OHOS_SURFACE_SPEC_VERSION 1
#define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface" #define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface"
typedef VkFlags VkSurfaceCreateFlagsOHOS; typedef VkFlags VkSurfaceCreateFlagsOHOS;
typedef struct VkSurfaceCreateInfoOHOS { typedef struct VkOHSurfaceCreateInfoOHOS {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkSurfaceCreateFlagsOHOS flags; VkSurfaceCreateFlagsOHOS flags;
OHNativeWindow* window; OHNativeWindow* window;
} VkSurfaceCreateInfoOHOS; } VkOHSurfaceCreateInfoOHOS;
typedef VkOHSurfaceCreateInfoOHOS VkSurfaceCreateInfoOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkCreateSurfaceOHOS)(VkInstance instance, const VkSurfaceCreateInfoOHOS* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkResult (VKAPI_PTR *PFN_vkCreateSurfaceOHOS)(VkInstance instance, const VkSurfaceCreateInfoOHOS* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+23427 -28554
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_SCREEN_H_ 1 #define VULKAN_SCREEN_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+628 -730
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+56966 -116573
View File
File diff suppressed because one or more lines are too long
+6065 -7687
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_VI_H_ 1 #define VULKAN_VI_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+158 -59
View File
@@ -1,72 +1,171 @@
// Copyright 2021-2026 The Khronos Group Inc. // Copyright 2021-2025 The Khronos Group Inc.
// SPDX-License-Identifier: Apache-2.0 OR MIT // SPDX-License-Identifier: Apache-2.0 OR MIT
// //
// This header is generated from the Khronos Vulkan XML API Registry. // This header is generated from the Khronos Vulkan XML API Registry.
// Note: This module is still in an experimental state.
// Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues.
module; module;
#define VULKAN_HPP_CXX_MODULE 1
#if __has_include( <vk_video/vulkan_video_codecs_common.h> )
# include <vk_video/vulkan_video_codecs_common.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std.h> )
# include <vk_video/vulkan_video_codec_h264std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std_decode.h> )
# include <vk_video/vulkan_video_codec_h264std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h264std_encode.h> )
# include <vk_video/vulkan_video_codec_h264std_encode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std.h> )
# include <vk_video/vulkan_video_codec_h265std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std_decode.h> )
# include <vk_video/vulkan_video_codec_h265std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_h265std_encode.h> )
# include <vk_video/vulkan_video_codec_h265std_encode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_vp9std.h> )
# include <vk_video/vulkan_video_codec_vp9std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_vp9std_decode.h> )
# include <vk_video/vulkan_video_codec_vp9std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std.h> )
# include <vk_video/vulkan_video_codec_av1std.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std_decode.h> )
# include <vk_video/vulkan_video_codec_av1std_decode.h>
#endif
#if __has_include( <vk_video/vulkan_video_codec_av1std_encode.h> )
# include <vk_video/vulkan_video_codec_av1std_encode.h>
#endif
// clang-format off
#include <vulkan/vulkan_hpp_macros.hpp> #include <vulkan/vulkan_hpp_macros.hpp>
// clang-format on
export module vulkan_video; #if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_ENABLE_STD_MODULE )
# define VULKAN_HPP_ENABLE_STD_MODULE
import vulkan;
#if defined( _MSC_VER )
# pragma warning( push )
# pragma warning( disable : 5244 )
#elif defined( __clang__ )
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Winclude-angled-in-module-purview"
#elif defined( __GNUC__ )
#endif #endif
#include <vulkan/vulkan_video.hpp> #include <vulkan/vulkan_video.hpp>
#if defined( _MSC_VER ) export module vulkan_video_hpp;
# pragma warning( pop )
#elif defined( __clang__ ) export namespace VULKAN_HPP_NAMESPACE
# pragma clang diagnostic pop {
#elif defined( __GNUC__ ) namespace VULKAN_HPP_VIDEO_NAMESPACE
#endif {
//=============
//=== ENUMs ===
//=============
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264LevelIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MemMgmtControlOp;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ModificationOfPicNumsIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264NonVclNaluType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PocType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorSpace;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9FrameType;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9InterpolationFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Level;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Profile;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ReferenceName;
//===============
//=== STRUCTS ===
//===============
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefPicMarkingEntry;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LongTermRefPicsSps;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevelFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSetVui;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSetFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SpsVuiFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VideoParameterSet;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VpsFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfigFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation;
using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags;
} // namespace VULKAN_HPP_VIDEO_NAMESPACE
} // namespace VULKAN_HPP_NAMESPACE
+290 -407
View File
@@ -1,4 +1,4 @@
// Copyright 2021-2026 The Khronos Group Inc. // Copyright 2021-2025 The Khronos Group Inc.
// SPDX-License-Identifier: Apache-2.0 OR MIT // SPDX-License-Identifier: Apache-2.0 OR MIT
// //
@@ -7,150 +7,31 @@
#ifndef VULKAN_VIDEO_HPP #ifndef VULKAN_VIDEO_HPP
#define VULKAN_VIDEO_HPP #define VULKAN_VIDEO_HPP
// here, we consider include files to be available when __has_include is not defined // clang-format off
#if !defined( __has_include ) #include <vulkan/vulkan.hpp>
# define __has_include( x ) true // clang-format on
# define has_include_was_not_defined
#endif
#if !defined( VULKAN_HPP_CXX_MODULE ) #include <vk_video/vulkan_video_codec_av1std.h>
# include <vulkan/vulkan.hpp> #include <vk_video/vulkan_video_codec_av1std_decode.h>
# if __has_include( <vk_video/vulkan_video_codecs_common.h> ) #include <vk_video/vulkan_video_codec_av1std_encode.h>
# include <vk_video/vulkan_video_codecs_common.h> #include <vk_video/vulkan_video_codec_h264std.h>
# endif #include <vk_video/vulkan_video_codec_h264std_decode.h>
# if __has_include( <vk_video/vulkan_video_codec_h264std.h> ) #include <vk_video/vulkan_video_codec_h264std_encode.h>
# include <vk_video/vulkan_video_codec_h264std.h> #include <vk_video/vulkan_video_codec_h265std.h>
# endif #include <vk_video/vulkan_video_codec_h265std_decode.h>
# if __has_include( <vk_video/vulkan_video_codec_h264std_decode.h> ) #include <vk_video/vulkan_video_codec_h265std_encode.h>
# include <vk_video/vulkan_video_codec_h264std_decode.h> #include <vk_video/vulkan_video_codec_vp9std.h>
# endif #include <vk_video/vulkan_video_codec_vp9std_decode.h>
# if __has_include( <vk_video/vulkan_video_codec_h264std_encode.h> ) #include <vk_video/vulkan_video_codecs_common.h>
# include <vk_video/vulkan_video_codec_h264std_encode.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_h265std.h> )
# include <vk_video/vulkan_video_codec_h265std.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_h265std_decode.h> )
# include <vk_video/vulkan_video_codec_h265std_decode.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_h265std_encode.h> )
# include <vk_video/vulkan_video_codec_h265std_encode.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_vp9std.h> )
# include <vk_video/vulkan_video_codec_vp9std.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_vp9std_decode.h> )
# include <vk_video/vulkan_video_codec_vp9std_decode.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_av1std.h> )
# include <vk_video/vulkan_video_codec_av1std.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_av1std_decode.h> )
# include <vk_video/vulkan_video_codec_av1std_decode.h>
# endif
# if __has_include( <vk_video/vulkan_video_codec_av1std_encode.h> )
# include <vk_video/vulkan_video_codec_av1std_encode.h>
# endif
#endif
#if !defined( VULKAN_HPP_VIDEO_NAMESPACE ) #if !defined( VULKAN_HPP_VIDEO_NAMESPACE )
# define VULKAN_HPP_VIDEO_NAMESPACE video # define VULKAN_HPP_VIDEO_NAMESPACE video
#endif #endif
VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_NAMESPACE
{ {
namespace VULKAN_HPP_VIDEO_NAMESPACE namespace VULKAN_HPP_VIDEO_NAMESPACE
{ {
//=================
//=== CONSTANTs ===
//=================
#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ )
//=== vulkan_video_codec_h264std ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264CpbCntListSize = 32;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxChromaPlanes = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxNumListRef = 32;
VULKAN_HPP_CONSTEXPR_INLINE uint8_t H264NoReferencePicture = 0xFF;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumElements = 16;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumLists = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumElements = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumLists = 6;
#endif
#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ )
//=== vulkan_video_codec_h264std_decode ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH264FieldOrderCountListSize = 2;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ )
//=== vulkan_video_codec_h265std ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetListSize = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileColsListSize = 19;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileRowsListSize = 21;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265CpbCntListSize = 32;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxChromaPlanes = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDeltaPoc = 48;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDpbSize = 16;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermPics = 16;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermRefPicsSps = 32;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxNumListRef = 15;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxShortTermRefPicSets = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint8_t H265NoReferencePicture = 0xFF;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteComponentsListSize = 3;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteCompEntriesListSize = 128;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumElements = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumLists = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumElements = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumLists = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumElements = 16;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumLists = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumElements = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumLists = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265SublayersListSize = 7;
#endif
#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ )
//=== vulkan_video_codec_h265std_decode ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH265RefPicSetListSize = 8;
#endif
#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ )
//=== vulkan_video_codec_vp9std ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9LoopFilterAdjustments = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxRefFrames = 4;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationPredProb = 3;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationTreeProbs = 7;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegments = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9NumRefFrames = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9RefsPerFrame = 3;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9SegLvlMax = 4;
#endif
#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ )
//=== vulkan_video_codec_av1std ===
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1GlobalMotionParams = 6;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1LoopFilterAdjustments = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxCdefFilterStrengths = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxLoopFilterStrengths = 4;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCbPoints = 10;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCrPoints = 10;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPlanes = 3;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosChroma = 25;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosLuma = 24;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumYPoints = 14;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxSegments = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileCols = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileRows = 64;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1NumRefFrames = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1PrimaryRefNone = 7;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1RefsPerFrame = 7;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SegLvlMax = 8;
VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1SelectIntegerMv = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SelectScreenContentTools = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SkipModeFrames = 2;
VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1TotalRefsPerFrame = 8;
#endif
//============= //=============
//=== ENUMs === //=== ENUMs ===
@@ -734,17 +615,17 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
uint8_t cpb_cnt_minus1 = {}; uint8_t cpb_cnt_minus1 = {};
uint8_t bit_rate_scale = {}; uint8_t bit_rate_scale = {};
uint8_t cpb_size_scale = {}; uint8_t cpb_size_scale = {};
uint8_t reserved1 = {}; uint8_t reserved1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> bit_rate_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> bit_rate_value_minus1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> cpb_size_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> cpb_size_value_minus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> cbr_flag = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_CPB_CNT_LIST_SIZE> cbr_flag = {};
uint32_t initial_cpb_removal_delay_length_minus1 = {}; uint32_t initial_cpb_removal_delay_length_minus1 = {};
uint32_t cpb_removal_delay_length_minus1 = {}; uint32_t cpb_removal_delay_length_minus1 = {};
uint32_t dpb_output_delay_length_minus1 = {}; uint32_t dpb_output_delay_length_minus1 = {};
uint32_t time_offset_length = {}; uint32_t time_offset_length = {};
}; };
struct H264SequenceParameterSetVui struct H264SequenceParameterSetVui
@@ -804,7 +685,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t chroma_sample_loc_type_top_field = {}; uint8_t chroma_sample_loc_type_top_field = {};
uint8_t chroma_sample_loc_type_bottom_field = {}; uint8_t chroma_sample_loc_type_bottom_field = {};
uint32_t reserved1 = {}; uint32_t reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters const * pHrdParameters = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters * pHrdParameters = {};
}; };
struct H264SpsFlags struct H264SpsFlags
@@ -904,10 +785,12 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
uint16_t scaling_list_present_mask = {}; uint16_t scaling_list_present_mask = {};
uint16_t use_default_scaling_matrix_mask = {}; uint16_t use_default_scaling_matrix_mask = {};
ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS> ScalingList4x4 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS>
ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS> ScalingList8x8 = {}; ScalingList4x4 = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS>
ScalingList8x8 = {};
}; };
struct H264SequenceParameterSet struct H264SequenceParameterSet
@@ -981,9 +864,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint32_t frame_crop_top_offset = {}; uint32_t frame_crop_top_offset = {};
uint32_t frame_crop_bottom_offset = {}; uint32_t frame_crop_bottom_offset = {};
uint32_t reserved2 = {}; uint32_t reserved2 = {};
int32_t const * pOffsetForRefFrame = {}; const int32_t * pOffsetForRefFrame = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists const * pScalingLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists * pScalingLists = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui const * pSequenceParameterSetVui = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui * pSequenceParameterSetVui = {};
}; };
struct H264PpsFlags struct H264PpsFlags
@@ -1086,7 +969,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
int8_t pic_init_qs_minus26 = {}; int8_t pic_init_qs_minus26 = {};
int8_t chroma_qp_index_offset = {}; int8_t chroma_qp_index_offset = {};
int8_t second_chroma_qp_index_offset = {}; int8_t second_chroma_qp_index_offset = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists const * pScalingLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists * pScalingLists = {};
}; };
#endif #endif
@@ -1175,14 +1058,14 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags flags = {};
uint8_t seq_parameter_set_id = {}; uint8_t seq_parameter_set_id = {};
uint8_t pic_parameter_set_id = {}; uint8_t pic_parameter_set_id = {};
uint8_t reserved1 = {}; uint8_t reserved1 = {};
uint8_t reserved2 = {}; uint8_t reserved2 = {};
uint16_t frame_num = {}; uint16_t frame_num = {};
uint16_t idr_pic_id = {}; uint16_t idr_pic_id = {};
ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt = {};
}; };
struct DecodeH264ReferenceInfoFlags struct DecodeH264ReferenceInfoFlags
@@ -1262,10 +1145,10 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags flags = {};
uint16_t FrameNum = {}; uint16_t FrameNum = {};
uint16_t reserved = {}; uint16_t reserved = {};
ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int32_t, STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE> PicOrderCnt = {};
}; };
#endif #endif
@@ -1353,17 +1236,17 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags flags = {};
uint8_t luma_log2_weight_denom = {}; uint8_t luma_log2_weight_denom = {};
uint8_t chroma_log2_weight_denom = {}; uint8_t chroma_log2_weight_denom = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_weight_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_weight_l0 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_offset_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_offset_l0 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l0 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l0 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_weight_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_weight_l1 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_offset_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> luma_offset_l1 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_weight_l1 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF, STD_VIDEO_H264_MAX_CHROMA_PLANES> chroma_offset_l1 = {};
}; };
struct EncodeH264SliceHeaderFlags struct EncodeH264SliceHeaderFlags
@@ -1662,15 +1545,15 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfoFlags flags = {};
uint8_t num_ref_idx_l0_active_minus1 = {}; uint8_t num_ref_idx_l0_active_minus1 = {};
uint8_t num_ref_idx_l1_active_minus1 = {}; uint8_t num_ref_idx_l1_active_minus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> RefPicList0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> RefPicList0 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> RefPicList1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H264_MAX_NUM_LIST_REF> RefPicList1 = {};
uint8_t refList0ModOpCount = {}; uint8_t refList0ModOpCount = {};
uint8_t refList1ModOpCount = {}; uint8_t refList1ModOpCount = {};
uint8_t refPicMarkingOpCount = {}; uint8_t refPicMarkingOpCount = {};
ArrayWrapper1D<uint8_t, 7> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 7> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry const * pRefList0ModOperations = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry * pRefList0ModOperations = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry const * pRefList1ModOperations = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefListModEntry * pRefList1ModOperations = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefPicMarkingEntry const * pRefPicMarkingOperations = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264RefPicMarkingEntry * pRefPicMarkingOperations = {};
}; };
struct EncodeH264PictureInfo struct EncodeH264PictureInfo
@@ -1719,8 +1602,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint32_t frame_num = {}; uint32_t frame_num = {};
int32_t PicOrderCnt = {}; int32_t PicOrderCnt = {};
uint8_t temporal_id = {}; uint8_t temporal_id = {};
ArrayWrapper1D<uint8_t, 3> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 3> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfo const * pRefLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceListsInfo * pRefLists = {};
}; };
struct EncodeH264ReferenceInfo struct EncodeH264ReferenceInfo
@@ -1818,7 +1701,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc::e0; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc::e0;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc disable_deblocking_filter_idc = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc disable_deblocking_filter_idc =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc::eDisabled; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264DisableDeblockingFilterIdc::eDisabled;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable const * pWeightTable = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable * pWeightTable = {};
}; };
#endif #endif
@@ -1861,9 +1744,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_latency_increase_plus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_latency_increase_plus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_dec_pic_buffering_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_dec_pic_buffering_minus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_num_reorder_pics = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> max_num_reorder_pics = {};
}; };
struct H265SubLayerHrdParameters struct H265SubLayerHrdParameters
@@ -1903,11 +1786,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_value_minus1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_value_minus1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_du_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> cpb_size_du_value_minus1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_du_value_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_CPB_CNT_LIST_SIZE> bit_rate_du_value_minus1 = {};
uint32_t cbr_flag = {}; uint32_t cbr_flag = {};
}; };
struct H265HrdFlags struct H265HrdFlags
@@ -2012,11 +1895,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t initial_cpb_removal_delay_length_minus1 = {}; uint8_t initial_cpb_removal_delay_length_minus1 = {};
uint8_t au_cpb_removal_delay_length_minus1 = {}; uint8_t au_cpb_removal_delay_length_minus1 = {};
uint8_t dpb_output_delay_length_minus1 = {}; uint8_t dpb_output_delay_length_minus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> cpb_cnt_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> cpb_cnt_minus1 = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> elemental_duration_in_tc_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_SUBLAYERS_LIST_SIZE> elemental_duration_in_tc_minus1 = {};
ArrayWrapper1D<uint16_t, 3> reserved = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, 3> reserved = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters const * pSubLayerHrdParametersNal = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters * pSubLayerHrdParametersNal = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters const * pSubLayerHrdParametersVcl = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters * pSubLayerHrdParametersVcl = {};
}; };
struct H265VpsFlags struct H265VpsFlags
@@ -2197,9 +2080,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint32_t vps_time_scale = {}; uint32_t vps_time_scale = {};
uint32_t vps_num_ticks_poc_diff_one_minus1 = {}; uint32_t vps_num_ticks_poc_diff_one_minus1 = {};
uint32_t reserved3 = {}; uint32_t reserved3 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr const * pDecPicBufMgr = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr * pDecPicBufMgr = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters const * pHrdParameters = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters * pHrdParameters = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel const * pProfileTierLevel = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel * pProfileTierLevel = {};
}; };
struct H265ScalingLists struct H265ScalingLists
@@ -2239,12 +2122,16 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS> ScalingList4x4 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS>
ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS> ScalingList8x8 = {}; ScalingList4x4 = {};
ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS> ScalingList16x16 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS>
ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS> ScalingList32x32 = {}; ScalingList8x8 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS> ScalingListDCCoef16x16 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS>
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS> ScalingListDCCoef32x32 = {}; ScalingList16x16 = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper2D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS>
ScalingList32x32 = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS> ScalingListDCCoef16x16 = {};
VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS> ScalingListDCCoef32x32 = {};
}; };
struct H265SpsVuiFlags struct H265SpsVuiFlags
@@ -2386,7 +2273,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t max_bits_per_min_cu_denom = {}; uint8_t max_bits_per_min_cu_denom = {};
uint8_t log2_max_mv_length_horizontal = {}; uint8_t log2_max_mv_length_horizontal = {};
uint8_t log2_max_mv_length_vertical = {}; uint8_t log2_max_mv_length_vertical = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters const * pHrdParameters = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters * pHrdParameters = {};
}; };
struct H265PredictorPaletteEntries struct H265PredictorPaletteEntries
@@ -2424,8 +2311,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper2D<uint16_t, STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE, STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE> VULKAN_HPP_NAMESPACE::
PredictorPaletteEntries = {}; ArrayWrapper2D<uint16_t, STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE, STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE>
PredictorPaletteEntries = {};
}; };
struct H265SpsFlags struct H265SpsFlags
@@ -2608,8 +2496,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t reserved3 = {}; uint8_t reserved3 = {};
uint8_t num_negative_pics = {}; uint8_t num_negative_pics = {};
uint8_t num_positive_pics = {}; uint8_t num_positive_pics = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE> delta_poc_s0_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE> delta_poc_s0_minus1 = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE> delta_poc_s1_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_MAX_DPB_SIZE> delta_poc_s1_minus1 = {};
}; };
struct H265LongTermRefPicsSps struct H265LongTermRefPicsSps
@@ -2647,8 +2535,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
uint32_t used_by_curr_pic_lt_sps_flag = {}; uint32_t used_by_curr_pic_lt_sps_flag = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_ref_pic_poc_lsb_sps = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_ref_pic_poc_lsb_sps = {};
}; };
struct H265SequenceParameterSet struct H265SequenceParameterSet
@@ -2743,13 +2631,13 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint32_t conf_win_right_offset = {}; uint32_t conf_win_right_offset = {};
uint32_t conf_win_top_offset = {}; uint32_t conf_win_top_offset = {};
uint32_t conf_win_bottom_offset = {}; uint32_t conf_win_bottom_offset = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel const * pProfileTierLevel = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileTierLevel * pProfileTierLevel = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr const * pDecPicBufMgr = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr * pDecPicBufMgr = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists const * pScalingLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists * pScalingLists = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet const * pShortTermRefPicSet = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet * pShortTermRefPicSet = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LongTermRefPicsSps const * pLongTermRefPicsSps = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LongTermRefPicsSps * pLongTermRefPicsSps = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSetVui const * pSequenceParameterSetVui = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SequenceParameterSetVui * pSequenceParameterSetVui = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries const * pPredictorPaletteEntries = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries * pPredictorPaletteEntries = {};
}; };
struct H265PpsFlags struct H265PpsFlags
@@ -2897,42 +2785,42 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PpsFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PpsFlags flags = {};
uint8_t pps_pic_parameter_set_id = {}; uint8_t pps_pic_parameter_set_id = {};
uint8_t pps_seq_parameter_set_id = {}; uint8_t pps_seq_parameter_set_id = {};
uint8_t sps_video_parameter_set_id = {}; uint8_t sps_video_parameter_set_id = {};
uint8_t num_extra_slice_header_bits = {}; uint8_t num_extra_slice_header_bits = {};
uint8_t num_ref_idx_l0_default_active_minus1 = {}; uint8_t num_ref_idx_l0_default_active_minus1 = {};
uint8_t num_ref_idx_l1_default_active_minus1 = {}; uint8_t num_ref_idx_l1_default_active_minus1 = {};
int8_t init_qp_minus26 = {}; int8_t init_qp_minus26 = {};
uint8_t diff_cu_qp_delta_depth = {}; uint8_t diff_cu_qp_delta_depth = {};
int8_t pps_cb_qp_offset = {}; int8_t pps_cb_qp_offset = {};
int8_t pps_cr_qp_offset = {}; int8_t pps_cr_qp_offset = {};
int8_t pps_beta_offset_div2 = {}; int8_t pps_beta_offset_div2 = {};
int8_t pps_tc_offset_div2 = {}; int8_t pps_tc_offset_div2 = {};
uint8_t log2_parallel_merge_level_minus2 = {}; uint8_t log2_parallel_merge_level_minus2 = {};
uint8_t log2_max_transform_skip_block_size_minus2 = {}; uint8_t log2_max_transform_skip_block_size_minus2 = {};
uint8_t diff_cu_chroma_qp_offset_depth = {}; uint8_t diff_cu_chroma_qp_offset_depth = {};
uint8_t chroma_qp_offset_list_len_minus1 = {}; uint8_t chroma_qp_offset_list_len_minus1 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE> cb_qp_offset_list = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE> cb_qp_offset_list = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE> cr_qp_offset_list = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE> cr_qp_offset_list = {};
uint8_t log2_sao_offset_scale_luma = {}; uint8_t log2_sao_offset_scale_luma = {};
uint8_t log2_sao_offset_scale_chroma = {}; uint8_t log2_sao_offset_scale_chroma = {};
int8_t pps_act_y_qp_offset_plus5 = {}; int8_t pps_act_y_qp_offset_plus5 = {};
int8_t pps_act_cb_qp_offset_plus5 = {}; int8_t pps_act_cb_qp_offset_plus5 = {};
int8_t pps_act_cr_qp_offset_plus3 = {}; int8_t pps_act_cr_qp_offset_plus3 = {};
uint8_t pps_num_palette_predictor_initializers = {}; uint8_t pps_num_palette_predictor_initializers = {};
uint8_t luma_bit_depth_entry_minus8 = {}; uint8_t luma_bit_depth_entry_minus8 = {};
uint8_t chroma_bit_depth_entry_minus8 = {}; uint8_t chroma_bit_depth_entry_minus8 = {};
uint8_t num_tile_columns_minus1 = {}; uint8_t num_tile_columns_minus1 = {};
uint8_t num_tile_rows_minus1 = {}; uint8_t num_tile_rows_minus1 = {};
uint8_t reserved1 = {}; uint8_t reserved1 = {};
uint8_t reserved2 = {}; uint8_t reserved2 = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE> column_width_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE> column_width_minus1 = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE> row_height_minus1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE> row_height_minus1 = {};
uint32_t reserved3 = {}; uint32_t reserved3 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists const * pScalingLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingLists * pScalingLists = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries const * pPredictorPaletteEntries = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteEntries * pPredictorPaletteEntries = {};
}; };
#endif #endif
@@ -3021,17 +2909,17 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags flags = {};
uint8_t sps_video_parameter_set_id = {}; uint8_t sps_video_parameter_set_id = {};
uint8_t pps_seq_parameter_set_id = {}; uint8_t pps_seq_parameter_set_id = {};
uint8_t pps_pic_parameter_set_id = {}; uint8_t pps_pic_parameter_set_id = {};
uint8_t NumDeltaPocsOfRefRpsIdx = {}; uint8_t NumDeltaPocsOfRefRpsIdx = {};
int32_t PicOrderCntVal = {}; int32_t PicOrderCntVal = {};
uint16_t NumBitsForSTRefPicSetInSlice = {}; uint16_t NumBitsForSTRefPicSetInSlice = {};
uint16_t reserved = {}; uint16_t reserved = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrBefore = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrBefore = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrAfter = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetStCurrAfter = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetLtCurr = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE> RefPicSetLtCurr = {};
}; };
struct DecodeH265ReferenceInfoFlags struct DecodeH265ReferenceInfoFlags
@@ -3198,17 +3086,17 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags flags = {};
uint8_t luma_log2_weight_denom = {}; uint8_t luma_log2_weight_denom = {};
int8_t delta_chroma_log2_weight_denom = {}; int8_t delta_chroma_log2_weight_denom = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> delta_luma_weight_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> delta_luma_weight_l0 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> luma_offset_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> luma_offset_l0 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l0 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l0 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> delta_luma_weight_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> delta_luma_weight_l1 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> luma_offset_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> luma_offset_l1 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_weight_l1 = {};
ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF, STD_VIDEO_H265_MAX_CHROMA_PLANES> delta_chroma_offset_l1 = {};
}; };
struct EncodeH265SliceSegmentHeaderFlags struct EncodeH265SliceSegmentHeaderFlags
@@ -3324,7 +3212,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
int8_t slice_act_cr_qp_offset = {}; int8_t slice_act_cr_qp_offset = {};
int8_t slice_qp_delta = {}; int8_t slice_qp_delta = {};
uint16_t reserved1 = {}; uint16_t reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable const * pWeightTable = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable * pWeightTable = {};
}; };
struct EncodeH265ReferenceListsInfoFlags struct EncodeH265ReferenceListsInfoFlags
@@ -3408,10 +3296,10 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags flags = {};
uint8_t num_ref_idx_l0_active_minus1 = {}; uint8_t num_ref_idx_l0_active_minus1 = {};
uint8_t num_ref_idx_l1_active_minus1 = {}; uint8_t num_ref_idx_l1_active_minus1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> RefPicList0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> RefPicList0 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> RefPicList1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> RefPicList1 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> list_entry_l0 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> list_entry_l0 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> list_entry_l1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_NUM_LIST_REF> list_entry_l1 = {};
}; };
struct EncodeH265PictureInfoFlags struct EncodeH265PictureInfoFlags
@@ -3503,13 +3391,13 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
uint8_t num_long_term_sps = {}; uint8_t num_long_term_sps = {};
uint8_t num_long_term_pics = {}; uint8_t num_long_term_pics = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_idx_sps = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS> lt_idx_sps = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_PICS> poc_lsb_lt = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_LONG_TERM_PICS> poc_lsb_lt = {};
uint16_t used_by_curr_pic_lt_flag = {}; uint16_t used_by_curr_pic_lt_flag = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC> delta_poc_msb_present_flag = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC> delta_poc_msb_present_flag = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC> delta_poc_msb_cycle_lt = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_H265_MAX_DELTA_POC> delta_poc_msb_cycle_lt = {};
}; };
struct EncodeH265PictureInfo struct EncodeH265PictureInfo
@@ -3559,10 +3447,10 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t short_term_ref_pic_set_idx = {}; uint8_t short_term_ref_pic_set_idx = {};
int32_t PicOrderCntVal = {}; int32_t PicOrderCntVal = {};
uint8_t TemporalId = {}; uint8_t TemporalId = {};
ArrayWrapper1D<uint8_t, 7> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 7> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo const * pRefLists = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo * pRefLists = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet const * pShortTermRefPicSet = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ShortTermRefPicSet * pShortTermRefPicSet = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics const * pLongTermRefPics = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics * pLongTermRefPics = {};
}; };
struct EncodeH265ReferenceInfoFlags struct EncodeH265ReferenceInfoFlags
@@ -3812,13 +3700,13 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags flags = {};
uint8_t loop_filter_level = {}; uint8_t loop_filter_level = {};
uint8_t loop_filter_sharpness = {}; uint8_t loop_filter_sharpness = {};
uint8_t update_ref_delta = {}; uint8_t update_ref_delta = {};
ArrayWrapper1D<int8_t, STD_VIDEO_VP9_MAX_REF_FRAMES> loop_filter_ref_deltas = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_VP9_MAX_REF_FRAMES> loop_filter_ref_deltas = {};
uint8_t update_mode_delta = {}; uint8_t update_mode_delta = {};
ArrayWrapper1D<int8_t, STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS> loop_filter_mode_deltas = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS> loop_filter_mode_deltas = {};
}; };
struct VP9SegmentationFlags struct VP9SegmentationFlags
@@ -3901,11 +3789,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags flags = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS> segmentation_tree_probs = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS> segmentation_tree_probs = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB> segmentation_pred_prob = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB> segmentation_pred_prob = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTS> FeatureEnabled = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_VP9_MAX_SEGMENTS> FeatureEnabled = {};
ArrayWrapper2D<int16_t, STD_VIDEO_VP9_MAX_SEGMENTS, STD_VIDEO_VP9_SEG_LVL_MAX> FeatureData = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int16_t, STD_VIDEO_VP9_MAX_SEGMENTS, STD_VIDEO_VP9_SEG_LVL_MAX> FeatureData = {};
}; };
#endif #endif
@@ -4017,10 +3905,10 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
int8_t delta_q_uv_ac = {}; int8_t delta_q_uv_ac = {};
uint8_t tile_cols_log2 = {}; uint8_t tile_cols_log2 = {};
uint8_t tile_rows_log2 = {}; uint8_t tile_rows_log2 = {};
ArrayWrapper1D<uint16_t, 3> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, 3> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig const * pColorConfig = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig * pColorConfig = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter const * pLoopFilter = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter * pLoopFilter = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation const * pSegmentation = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation * pSegmentation = {};
}; };
#endif #endif
@@ -4281,13 +4169,13 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags flags = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS> loop_filter_level = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS> loop_filter_level = {};
uint8_t loop_filter_sharpness = {}; uint8_t loop_filter_sharpness = {};
uint8_t update_ref_delta = {}; uint8_t update_ref_delta = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME> loop_filter_ref_deltas = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME> loop_filter_ref_deltas = {};
uint8_t update_mode_delta = {}; uint8_t update_mode_delta = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS> loop_filter_mode_deltas = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS> loop_filter_mode_deltas = {};
}; };
struct AV1QuantizationFlags struct AV1QuantizationFlags
@@ -4414,8 +4302,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_SEGMENTS> FeatureEnabled = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_SEGMENTS> FeatureEnabled = {};
ArrayWrapper2D<int16_t, STD_VIDEO_AV1_MAX_SEGMENTS, STD_VIDEO_AV1_SEG_LVL_MAX> FeatureData = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int16_t, STD_VIDEO_AV1_MAX_SEGMENTS, STD_VIDEO_AV1_SEG_LVL_MAX> FeatureData = {};
}; };
struct AV1TileInfoFlags struct AV1TileInfoFlags
@@ -4500,11 +4388,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t TileRows = {}; uint8_t TileRows = {};
uint16_t context_update_tile_id = {}; uint16_t context_update_tile_id = {};
uint8_t tile_size_bytes_minus_1 = {}; uint8_t tile_size_bytes_minus_1 = {};
ArrayWrapper1D<uint8_t, 7> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 7> reserved1 = {};
uint16_t const * pMiColStarts = {}; const uint16_t * pMiColStarts = {};
uint16_t const * pMiRowStarts = {}; const uint16_t * pMiRowStarts = {};
uint16_t const * pWidthInSbsMinus1 = {}; const uint16_t * pWidthInSbsMinus1 = {};
uint16_t const * pHeightInSbsMinus1 = {}; const uint16_t * pHeightInSbsMinus1 = {};
}; };
struct AV1CDEF struct AV1CDEF
@@ -4544,12 +4432,12 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
uint8_t cdef_damping_minus_3 = {}; uint8_t cdef_damping_minus_3 = {};
uint8_t cdef_bits = {}; uint8_t cdef_bits = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_y_pri_strength = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_y_pri_strength = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_y_sec_strength = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_y_sec_strength = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_uv_pri_strength = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_uv_pri_strength = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_uv_sec_strength = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS> cdef_uv_sec_strength = {};
}; };
struct AV1LoopRestoration struct AV1LoopRestoration
@@ -4587,8 +4475,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper1D<StdVideoAV1FrameRestorationType, STD_VIDEO_AV1_MAX_NUM_PLANES> FrameRestorationType = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<StdVideoAV1FrameRestorationType, STD_VIDEO_AV1_MAX_NUM_PLANES> FrameRestorationType = {};
ArrayWrapper1D<uint16_t, STD_VIDEO_AV1_MAX_NUM_PLANES> LoopRestorationSize = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint16_t, STD_VIDEO_AV1_MAX_NUM_PLANES> LoopRestorationSize = {};
}; };
struct AV1GlobalMotion struct AV1GlobalMotion
@@ -4626,8 +4514,8 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> GmType = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> GmType = {};
ArrayWrapper2D<int32_t, STD_VIDEO_AV1_NUM_REF_FRAMES, STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS> gm_params = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper2D<int32_t, STD_VIDEO_AV1_NUM_REF_FRAMES, STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS> gm_params = {};
}; };
struct AV1FilmGrainFlags struct AV1FilmGrainFlags
@@ -4716,31 +4604,31 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
} }
public: public:
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags flags = {}; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags flags = {};
uint8_t grain_scaling_minus_8 = {}; uint8_t grain_scaling_minus_8 = {};
uint8_t ar_coeff_lag = {}; uint8_t ar_coeff_lag = {};
uint8_t ar_coeff_shift_minus_6 = {}; uint8_t ar_coeff_shift_minus_6 = {};
uint8_t grain_scale_shift = {}; uint8_t grain_scale_shift = {};
uint16_t grain_seed = {}; uint16_t grain_seed = {};
uint8_t film_grain_params_ref_idx = {}; uint8_t film_grain_params_ref_idx = {};
uint8_t num_y_points = {}; uint8_t num_y_points = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_Y_POINTS> point_y_value = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_Y_POINTS> point_y_value = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_Y_POINTS> point_y_scaling = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_Y_POINTS> point_y_scaling = {};
uint8_t num_cb_points = {}; uint8_t num_cb_points = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CB_POINTS> point_cb_value = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CB_POINTS> point_cb_value = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CB_POINTS> point_cb_scaling = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CB_POINTS> point_cb_scaling = {};
uint8_t num_cr_points = {}; uint8_t num_cr_points = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CR_POINTS> point_cr_value = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CR_POINTS> point_cr_value = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CR_POINTS> point_cr_scaling = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_MAX_NUM_CR_POINTS> point_cr_scaling = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_LUMA> ar_coeffs_y_plus_128 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_LUMA> ar_coeffs_y_plus_128 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_CHROMA> ar_coeffs_cb_plus_128 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_CHROMA> ar_coeffs_cb_plus_128 = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_CHROMA> ar_coeffs_cr_plus_128 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_MAX_NUM_POS_CHROMA> ar_coeffs_cr_plus_128 = {};
uint8_t cb_mult = {}; uint8_t cb_mult = {};
uint8_t cb_luma_mult = {}; uint8_t cb_luma_mult = {};
uint16_t cb_offset = {}; uint16_t cb_offset = {};
uint8_t cr_mult = {}; uint8_t cr_mult = {};
uint8_t cr_luma_mult = {}; uint8_t cr_luma_mult = {};
uint16_t cr_offset = {}; uint16_t cr_offset = {};
}; };
struct AV1SequenceHeaderFlags struct AV1SequenceHeaderFlags
@@ -4860,9 +4748,9 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t order_hint_bits_minus_1 = {}; uint8_t order_hint_bits_minus_1 = {};
uint8_t seq_force_integer_mv = {}; uint8_t seq_force_integer_mv = {};
uint8_t seq_force_screen_content_tools = {}; uint8_t seq_force_screen_content_tools = {};
ArrayWrapper1D<uint8_t, 5> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 5> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig const * pColorConfig = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig * pColorConfig = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo const * pTimingInfo = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo * pTimingInfo = {};
}; };
#endif #endif
@@ -4999,22 +4887,22 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t reserved1 = {}; uint8_t reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter interpolation_filter = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter interpolation_filter =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter::eEighttap; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter::eEighttap;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode TxMode = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode::eOnly4X4; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode TxMode = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode::eOnly4X4;
uint8_t delta_q_res = {}; uint8_t delta_q_res = {};
uint8_t delta_lf_res = {}; uint8_t delta_lf_res = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_SKIP_MODE_FRAMES> SkipModeFrame = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_SKIP_MODE_FRAMES> SkipModeFrame = {};
uint8_t coded_denom = {}; uint8_t coded_denom = {};
ArrayWrapper1D<uint8_t, 3> reserved2 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 3> reserved2 = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> OrderHints = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> OrderHints = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_AV1_NUM_REF_FRAMES> expectedFrameId = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_AV1_NUM_REF_FRAMES> expectedFrameId = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo const * pTileInfo = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo * pTileInfo = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization const * pQuantization = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization * pQuantization = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation const * pSegmentation = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation * pSegmentation = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter const * pLoopFilter = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter * pLoopFilter = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF const * pCDEF = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF * pCDEF = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration const * pLoopRestoration = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration * pLoopRestoration = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion const * pGlobalMotion = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion * pGlobalMotion = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain const * pFilmGrain = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain * pFilmGrain = {};
}; };
struct DecodeAV1ReferenceInfoFlags struct DecodeAV1ReferenceInfoFlags
@@ -5098,7 +4986,7 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint8_t frame_type = {}; uint8_t frame_type = {};
uint8_t RefFrameSignBias = {}; uint8_t RefFrameSignBias = {};
uint8_t OrderHint = {}; uint8_t OrderHint = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> SavedOrderHints = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> SavedOrderHints = {};
}; };
#endif #endif
@@ -5413,22 +5301,22 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint16_t render_height_minus_1 = {}; uint16_t render_height_minus_1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter interpolation_filter = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter interpolation_filter =
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter::eEighttap; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter::eEighttap;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode TxMode = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode::eOnly4X4; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode TxMode = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode::eOnly4X4;
uint8_t delta_q_res = {}; uint8_t delta_q_res = {};
uint8_t delta_lf_res = {}; uint8_t delta_lf_res = {};
ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> ref_order_hint = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, STD_VIDEO_AV1_NUM_REF_FRAMES> ref_order_hint = {};
ArrayWrapper1D<int8_t, STD_VIDEO_AV1_REFS_PER_FRAME> ref_frame_idx = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<int8_t, STD_VIDEO_AV1_REFS_PER_FRAME> ref_frame_idx = {};
ArrayWrapper1D<uint8_t, 3> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 3> reserved1 = {};
ArrayWrapper1D<uint32_t, STD_VIDEO_AV1_REFS_PER_FRAME> delta_frame_id_minus_1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint32_t, STD_VIDEO_AV1_REFS_PER_FRAME> delta_frame_id_minus_1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo const * pTileInfo = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo * pTileInfo = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization const * pQuantization = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization * pQuantization = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation const * pSegmentation = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation * pSegmentation = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter const * pLoopFilter = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter * pLoopFilter = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF const * pCDEF = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF * pCDEF = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration const * pLoopRestoration = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration * pLoopRestoration = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion const * pGlobalMotion = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion * pGlobalMotion = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader const * pExtensionHeader = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader * pExtensionHeader = {};
uint32_t const * pBufferRemovalTimes = {}; const uint32_t * pBufferRemovalTimes = {};
}; };
struct EncodeAV1ReferenceInfoFlags struct EncodeAV1ReferenceInfoFlags
@@ -5512,16 +5400,11 @@ VULKAN_HPP_EXPORT namespace VULKAN_HPP_NAMESPACE
uint32_t RefFrameId = {}; uint32_t RefFrameId = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType frame_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType::eKey; VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType frame_type = VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType::eKey;
uint8_t OrderHint = {}; uint8_t OrderHint = {};
ArrayWrapper1D<uint8_t, 3> reserved1 = {}; VULKAN_HPP_NAMESPACE::ArrayWrapper1D<uint8_t, 3> reserved1 = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader const * pExtensionHeader = {}; const VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader * pExtensionHeader = {};
}; };
#endif #endif
} // namespace VULKAN_HPP_VIDEO_NAMESPACE } // namespace VULKAN_HPP_VIDEO_NAMESPACE
} // namespace VULKAN_HPP_NAMESPACE } // namespace VULKAN_HPP_NAMESPACE
#if defined( has_include_was_not_defined )
# undef has_include_was_not_defined
# undef __has_include
#endif
#endif #endif
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_WAYLAND_H_ 1 #define VULKAN_WAYLAND_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_WIN32_H_ 1 #define VULKAN_WIN32_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_XCB_H_ 1 #define VULKAN_XCB_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_XLIB_H_ 1 #define VULKAN_XLIB_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
#define VULKAN_XLIB_XRANDR_H_ 1 #define VULKAN_XLIB_XRANDR_H_ 1
/* /*
** Copyright 2015-2026 The Khronos Group Inc. ** Copyright 2015-2025 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
+13
View File
@@ -11,6 +11,17 @@ set_targetdir("./")
set_optimize("fastest") set_optimize("fastest")
-- Options -- Options
option("images_optimized")
set_default(true)
add_defines("IMAGE_OPTIMIZED")
option_end()
option("force_integrated_gpu")
set_default(false)
add_defines("FORCE_INTEGRATED_GPU")
option_end()
option("graphics_memory_dump") option("graphics_memory_dump")
set_default(false) set_default(false)
add_defines("GRAPHICS_MEMORY_DUMP") add_defines("GRAPHICS_MEMORY_DUMP")
@@ -37,6 +48,8 @@ target("mlx")
set_default(true) set_default(true)
set_license("MIT") set_license("MIT")
set_kind("shared") set_kind("shared")
add_options("images_optimized")
add_options("force_integrated_gpu")
add_options("graphics_memory_dump") add_options("graphics_memory_dump")
add_options("profiler") add_options("profiler")
add_options("force_wayland") add_options("force_wayland")