quakeforge/libs/video/renderer/vulkan/vkgen
Bill Currie 6d5e8922a5 [qfcc] Add a handle type for engine resources
I never liked the various hacks I had come up with for representing
resource handles in Ruamoko. Structs with an int were awkward to test,
pointers and ints could be modified, etc etc. The new @handle keyword (@
used to keep handle free for use) works just like struct, union and
enum in syntax, but creates an opaque type suitable for a 32-bit handle.
The backing type is a function so v6 progs can use it without (all the
necessary opcodes exist) and no modifications were needed for
type-checking in binary expressions, but only assignment and comparisons
are supported, and (of course) nil. Tested using cbuf_t and QFile: seems
to work as desired.

I had considered 64-bit handles, but really, if more than 4G resource
objects are needed, I'm not sure QF can handle the game. However, that
limit is per resource manager, not total.
2023-05-25 10:41:28 +09:00
..
Makemodule.am [vulkan] Respect the VULKAN_SDK environment variable 2023-03-25 21:21:13 +09:00
stddef.h [vulkan] Add a tool for making vulkan enum tables 2020-06-28 19:08:18 +09:00
stdint.h [vkgen] Add header guards to stdint.h 2023-03-06 12:49:02 +09:00
vkalias.h [vulkan] Rework vkgen alias handling 2020-07-05 16:53:35 +09:00
vkalias.r [vkgen] Support vec4f_t fields 2023-02-14 15:10:46 +09:00
vkenum.h [vkgen] Clean up most of the generated header 2023-02-14 15:15:14 +09:00
vkenum.r [vkgen] Clean up most of the generated header 2023-02-14 15:15:14 +09:00
vkfieldarray.h [vulkan] Make array and single parsing smarter 2021-01-04 15:30:27 +09:00
vkfieldarray.r [vkgen] Plug a pile of ruamoko memory leaks 2023-03-13 11:26:13 +09:00
vkfieldauto.h [vulkan] Refactor vkgen struct generation 2020-12-23 22:13:50 +09:00
vkfieldauto.r [vkgen] Support renaming of auto fields 2023-02-27 18:44:21 +09:00
vkfieldcustom.h [vulkan] Add support for custom parsers 2020-12-24 01:36:17 +09:00
vkfieldcustom.r [vkgen] Make labeled arrays independent of struct order 2023-02-26 20:43:52 +09:00
vkfielddata.h [vulkan] Refactor vkgen struct generation 2020-12-23 22:13:50 +09:00
vkfielddata.r [vulkan] Refactor vkgen struct generation 2020-12-23 22:13:50 +09:00
vkfielddef.h [vkgen] Don't queue types for fields with custom parsers 2021-12-24 06:45:12 +09:00
vkfielddef.r [vkgen] Add support for labeled array elements 2023-02-14 15:22:09 +09:00
vkfieldignore.h [vkgen] Support ignored fields 2023-02-14 15:15:35 +09:00
vkfieldignore.r [vkgen] Fix ignored field init and dealloc 2023-03-21 17:53:55 +09:00
vkfieldlabeledarray.h [vkgen] Add support for labeled array elements 2023-02-14 15:22:09 +09:00
vkfieldlabeledarray.r [vkgen] Add support for labeled array elements 2023-02-14 15:22:09 +09:00
vkfieldlabeledsingle.h [vkgen] Add support for labeled array elements 2023-02-14 15:22:09 +09:00
vkfieldlabeledsingle.r [vkgen] Add support for labeled array elements 2023-02-14 15:22:09 +09:00
vkfieldreadonly.h [vkgen] Add support for read-only values 2022-11-26 22:15:15 +09:00
vkfieldreadonly.r [vkgen] Plug a pile of ruamoko memory leaks 2023-03-13 11:26:13 +09:00
vkfieldsingle.h [vulkan] Make array and single parsing smarter 2021-01-04 15:30:27 +09:00
vkfieldsingle.r [vkgen] Plug a pile of ruamoko memory leaks 2023-03-13 11:26:13 +09:00
vkfieldstring.h [vkgen] Recognize char * as a string 2023-02-14 15:10:09 +09:00
vkfieldstring.r [vkgen] Recognize char * as a string 2023-02-14 15:10:09 +09:00
vkfieldtype.h [vkgen] Add support for array element data 2023-02-14 15:19:58 +09:00
vkfieldtype.r [vkgen] Add support for array element data 2023-02-14 15:19:58 +09:00
vkfixedarray.h [vkgen] Clean up most of the generated header 2023-02-14 15:15:14 +09:00
vkfixedarray.r [vkgen] Use designated init for fixed array data 2023-03-09 15:32:52 +09:00
vkgen.h [vkgen] Recognize char * as a string 2023-02-14 15:10:09 +09:00
vkgen.r [qfcc] Add a handle type for engine resources 2023-05-25 10:41:28 +09:00
vkstring.h [vkgen] Recognize char * as a string 2023-02-14 15:10:09 +09:00
vkstring.r [vkgen] Recognize char * as a string 2023-02-14 15:10:09 +09:00
vkstruct.h [vkgen] Make labeled arrays independent of struct order 2023-02-26 20:43:52 +09:00
vkstruct.r [vkgen] Make labeled arrays independent of struct order 2023-02-26 20:43:52 +09:00
vktype.h [vkgen] Make labeled arrays independent of struct order 2023-02-26 20:43:52 +09:00
vktype.r [qfcc] Add a handle type for engine resources 2023-05-25 10:41:28 +09:00
vulkan.r [vulkan] move qfv_output_t to render.h 2023-02-19 12:31:40 +09:00