From 8bbef6b1f8fe61ae8b0f24693af28b7fa6e68237 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Thu, 21 Aug 2025 21:45:38 -0400 Subject: pke: embed shaders in executable --- embed/embedded-file.h | 4 +++- embed/embedded-fonts.c | 4 ++-- embed/embedded-shaders.c | 24 ++++++++++++++++++++++++ embed/embedded-shaders.h | 19 +++++++++++++++++++ 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 embed/embedded-shaders.c create mode 100644 embed/embedded-shaders.h (limited to 'embed') diff --git a/embed/embedded-file.h b/embed/embedded-file.h index 85f2a34..504225c 100644 --- a/embed/embedded-file.h +++ b/embed/embedded-file.h @@ -1,10 +1,12 @@ #ifndef PKE_EMBED_EMBEDDED_FILE_H #define PKE_EMBED_EMBEDDED_FILE_H +#include "../src/asset-types.h" + #include struct embedded_file { - const char *name; + AssetKey name; const unsigned char *data; const size_t size; }; diff --git a/embed/embedded-fonts.c b/embed/embedded-fonts.c index ca85d91..187072f 100644 --- a/embed/embedded-fonts.c +++ b/embed/embedded-fonts.c @@ -4,6 +4,6 @@ #include "../assets/fonts/font_mannequin_glyph.h" const struct embedded_file embedded_fonts[] = { - { "fnt_mquin_img\0\0", assets_fonts_font_mannequin_png, assets_fonts_font_mannequin_png_len }, - { "fnt_mquin_gly\0\0", assets_fonts_font_mannequin_glyph, assets_fonts_font_mannequin_glyph_len }, + { "fnt_mquin_img\0", assets_fonts_font_mannequin_png, assets_fonts_font_mannequin_png_len }, + { "fnt_mquin_gly\0", assets_fonts_font_mannequin_glyph, assets_fonts_font_mannequin_glyph_len }, }; diff --git a/embed/embedded-shaders.c b/embed/embedded-shaders.c new file mode 100644 index 0000000..5e0a71a --- /dev/null +++ b/embed/embedded-shaders.c @@ -0,0 +1,24 @@ + +#include "embedded-shaders.h" + +#include "../../obj/shaders/3d_frag_spv.h" +#include "../../obj/shaders/3d_vert_spv.h" +#include "../../obj/shaders/glyph_frag_spv.h" +#include "../../obj/shaders/glyph_vert_spv.h" +#include "../../obj/shaders/present_frag_spv.h" +#include "../../obj/shaders/present_vert_spv.h" +#include "../../obj/shaders/ui_base_frag_spv.h" +#include "../../obj/shaders/ui_base_vert_spv.h" +#include "../../obj/shaders/ui_txtr_frag_spv.h" + +const struct embedded_file embedded_shaders[] = { + { "shdr-3d-frag\0\0\0\0", obj_shaders_3d_frag_spv, obj_shaders_3d_frag_spv_len, }, + { "shdr-3d-vert\0\0\0\0", obj_shaders_3d_vert_spv, obj_shaders_3d_vert_spv_len, }, + { "shdr-glyph-frag\0", obj_shaders_glyph_frag_spv, obj_shaders_glyph_frag_spv_len, }, + { "shdr-glyph-vert\0", obj_shaders_glyph_vert_spv, obj_shaders_glyph_vert_spv_len, }, + { "shdr-prsnt-frag\0", obj_shaders_present_frag_spv, obj_shaders_present_frag_spv_len, }, + { "shdr-prsnt-vert\0", obj_shaders_present_vert_spv, obj_shaders_present_vert_spv_len, }, + { "shdr-ui-bs-frag\0", obj_shaders_ui_base_frag_spv, obj_shaders_ui_base_frag_spv_len, }, + { "shdr-ui-bs-vert\0", obj_shaders_ui_base_vert_spv, obj_shaders_ui_base_vert_spv_len, }, + { "shdr-ui-tx-frag\0", obj_shaders_ui_txtr_frag_spv, obj_shaders_ui_txtr_frag_spv_len, }, +}; diff --git a/embed/embedded-shaders.h b/embed/embedded-shaders.h new file mode 100644 index 0000000..94869e2 --- /dev/null +++ b/embed/embedded-shaders.h @@ -0,0 +1,19 @@ +#ifndef PKE_EMBED_EMBEDDED_SHADERS_H +#define PKE_EMBED_EMBEDDED_SHADERS_H + +#include "embedded-file.h" + +#define embedded_shader_index_3d_frag 0 +#define embedded_shader_index_3d_vert 1 +#define embedded_shader_index_glyph_frag 2 +#define embedded_shader_index_glyph_vert 3 +#define embedded_shader_index_present_frag 4 +#define embedded_shader_index_present_vert 5 +#define embedded_shader_index_ui_base_frag 6 +#define embedded_shader_index_ui_base_vert 7 +#define embedded_shader_index_ui_texture_frag 8 +#define embedded_shader_index_count 9 + +extern const struct embedded_file embedded_shaders[]; + +#endif /* PKE_EMBED_EMBEDDED_SHADERS_H */ -- cgit v1.2.3