| /* | |
| * Copyright 2023 Rive | |
| */ | |
| #pragma once | |
| #include <vulkan/vulkan.h> | |
| #include "rive/span.hpp" | |
| namespace rive::gpu::spirv | |
| { | |
| // Draw setup shaders. | |
| extern rive::Span<const uint32_t> color_ramp_vert; | |
| extern rive::Span<const uint32_t> color_ramp_frag; | |
| extern rive::Span<const uint32_t> tessellate_vert; | |
| extern rive::Span<const uint32_t> tessellate_frag; | |
| extern rive::Span<const uint32_t> render_atlas_vert; | |
| extern rive::Span<const uint32_t> render_atlas_fill_frag; | |
| extern rive::Span<const uint32_t> render_atlas_stroke_frag; | |
| // InterlockMode::rasterOrdering shaders. | |
| extern rive::Span<const uint32_t> draw_path_vert; | |
| extern rive::Span<const uint32_t> draw_path_frag; | |
| extern rive::Span<const uint32_t> draw_interior_triangles_vert; | |
| extern rive::Span<const uint32_t> draw_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> draw_atlas_blit_vert; | |
| extern rive::Span<const uint32_t> draw_atlas_blit_frag; | |
| extern rive::Span<const uint32_t> draw_image_mesh_vert; | |
| extern rive::Span<const uint32_t> draw_image_mesh_frag; | |
| // InterlockMode::atomics shaders. | |
| extern rive::Span<const uint32_t> atomic_draw_path_vert; | |
| extern rive::Span<const uint32_t> atomic_draw_path_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_path_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_interior_triangles_vert; | |
| extern rive::Span<const uint32_t> atomic_draw_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> | |
| atomic_draw_interior_triangles_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_atlas_blit_vert; | |
| extern rive::Span<const uint32_t> atomic_draw_atlas_blit_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_atlas_blit_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_image_rect_vert; | |
| extern rive::Span<const uint32_t> atomic_draw_image_rect_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_image_rect_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_image_mesh_vert; | |
| extern rive::Span<const uint32_t> atomic_draw_image_mesh_frag; | |
| extern rive::Span<const uint32_t> atomic_draw_image_mesh_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_resolve_vert; | |
| extern rive::Span<const uint32_t> atomic_resolve_frag; | |
| extern rive::Span<const uint32_t> atomic_resolve_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> atomic_resolve_coalesced_vert; | |
| extern rive::Span<const uint32_t> atomic_resolve_coalesced_frag; | |
| #ifndef RIVE_ANDROID | |
| // InterlockMode::clockwise shaders. | |
| extern rive::Span<const uint32_t> draw_clockwise_path_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_path_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_path_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_clip_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_clip_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_interior_triangles_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_interior_triangles_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_clip_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_clip_interior_triangles_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atlas_blit_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_atlas_blit_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atlas_blit_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_image_mesh_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_image_mesh_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_image_mesh_fixedcolor_frag; | |
| #endif | |
| // InterlockMode::clockwiseAtomic shaders. | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_path_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_path_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_path_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_clip_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_clip_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_borrowed_coverage_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_interior_triangles_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_interior_triangles_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_clip_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_clip_interior_triangles_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_borrowed_coverage_interior_triangles_frag; | |
| extern rive::Span<const uint32_t> clear_clockwise_atomic_clip_vert; | |
| extern rive::Span<const uint32_t> clear_clockwise_atomic_clip_frag; | |
| extern rive::Span<const uint32_t> clear_clockwise_atomic_clip_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_atlas_blit_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_atlas_blit_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_atlas_blit_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_image_mesh_vert; | |
| extern rive::Span<const uint32_t> draw_clockwise_atomic_image_mesh_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_clockwise_atomic_image_mesh_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> init_clockwise_atomic_workaround_vert; | |
| extern rive::Span<const uint32_t> init_clockwise_atomic_workaround_frag; | |
| extern rive::Span<const uint32_t> | |
| init_clockwise_atomic_workaround_fixedcolor_frag; | |
| // InterlockMode::depthStencil shaders. | |
| extern rive::Span<const uint32_t> draw_depthstencil_path_vert; | |
| extern rive::Span<const uint32_t> draw_depthstencil_path_noclipdistance_vert; | |
| extern rive::Span<const uint32_t> draw_depthstencil_path_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_path_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_triangles_nocolor_vert; | |
| extern rive::Span<const uint32_t> draw_depthstencil_triangles_nocolor_frag; | |
| extern rive::Span<const uint32_t> | |
| draw_depthstencil_triangles_nocolor_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_atlas_blit_vert; | |
| extern rive::Span<const uint32_t> | |
| draw_depthstencil_atlas_blit_noclipdistance_vert; | |
| extern rive::Span<const uint32_t> draw_depthstencil_atlas_blit_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_atlas_blit_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_image_mesh_vert; | |
| extern rive::Span<const uint32_t> | |
| draw_depthstencil_image_mesh_noclipdistance_vert; | |
| extern rive::Span<const uint32_t> draw_depthstencil_image_mesh_frag; | |
| extern rive::Span<const uint32_t> draw_depthstencil_image_mesh_fixedcolor_frag; | |
| extern rive::Span<const uint32_t> draw_fullscreen_quad_vert; | |
| extern rive::Span<const uint32_t> draw_input_attachment_frag; | |
| extern rive::Span<const uint32_t> draw_msaa_color_seed_attachment_frag; | |
| extern rive::Span<const uint32_t> draw_msaa_resolve_frag; | |
| // Reload global SPIRV buffers from runtime data. | |
| void hotload_shaders(rive::Span<const uint32_t> spirvData); | |
| } // namespace rive::gpu::spirv |