On Mon, 30 Nov 2020 at 20:34, Zebediah Figura (she/her) zfigura@codeweavers.com wrote:
On 11/30/20 7:05 AM, Henri Verbeet wrote:
On Fri, 27 Nov 2020 at 20:01, Zebediah Figura (she/her) zfigura@codeweavers.com wrote:
[Perhaps we should also add something like vkd3d_shader_get_supported_preprocessor_types()?]
Possibly, although at least initially we could probably get away with simply returning a copy of the input for source formats that do not have an inherent associated preprocessor.
That's a good idea, actually; I hadn't thought of that. That does mean that for backwards compatibility's sake there's not a lot of point in later adding vkd3d_shader_get_supported_preprocessor_types().
Not as long as we stick to the standard preprocessor for each source format, no. But if we did want to add e.g. a m4 preprocessor, we could do something like the following:
enum vkd3d_shader_preprocessor { VKD3D_SHADER_PREPROCESSOR_NONE, /* Or VKD3D_SHADER_PREPROCESSOR_IDENTITY, if you prefer. */ VKD3D_SHADER_PREPROCESSOR_HLSL, VKD3D_SHADER_PREPROCESSOR_M4, ... };
struct vkd3d_shader_preprocess2_info { enum vkd3d_shader_preprocessor preprocessor; ... };
const enum vkd3d_shader_preprocessor *vkd3d_shader_get_supported_preprocessors( enum vkd3d_shader_source_type source_type, unsigned int *count);
I wouldn't necessarily expect a lot of demand for that feature though.