mirror of
https://github.com/Nexoniarz/Fry3DX.git
synced 2026-11-03 12:34:27 +00:00
Fry3DX 0.4: an easy 3D modeller
Shapes with live settings, shape editing, knife and hole tools, drawing shapes onto other objects, combining objects (add / subtract / overlap), copies, thickness, painting with stickers and layers, a Layout tab, a Print tab with checks, packed .fry files with autosave, export to GLB, glTF, FBX, OBJ, 3MF, STL and PLY, folders in Layers, its own crash screen, and a website for GitHub Pages in docs/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NMSrd5oe1GpUD7E6d825KP
This commit is contained in:
commit
f3e8eca87b
135 changed files with 23423 additions and 0 deletions
29
cmake/Shaders.cmake
Normal file
29
cmake/Shaders.cmake
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# keel_add_shaders(target file...) compiles GLSL to SPIR-V with glslc (KEEL_VULKAN defined) and
|
||||
# embeds it: `static const uint32_t kSpv[] =\n#include "name.vert.spv.inc"\n;`
|
||||
# It also embeds every shader's source text (and the shared headers) for the OpenGL backend,
|
||||
# which compiles them at runtime with KEEL_GL defined: shaders/gl_sources.inc, a list of
|
||||
# { "name", "source" } entries.
|
||||
find_program(GLSLC glslc HINTS $ENV{VULKAN_SDK}/bin REQUIRED)
|
||||
|
||||
function(keel_add_shaders target)
|
||||
set(out_dir ${CMAKE_CURRENT_BINARY_DIR}/shaders)
|
||||
file(GLOB headers ${CMAKE_CURRENT_SOURCE_DIR}/shaders/*.glsl)
|
||||
foreach(src ${ARGN})
|
||||
get_filename_component(name ${src} NAME)
|
||||
set(out ${out_dir}/${name}.spv.inc)
|
||||
add_custom_command(OUTPUT ${out}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${out_dir}
|
||||
COMMAND ${GLSLC} --target-env=vulkan1.3 -DKEEL_VULKAN -O -mfmt=c -I ${CMAKE_CURRENT_SOURCE_DIR}/shaders -o ${out} ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
DEPENDS ${src} ${headers} VERBATIM)
|
||||
list(APPEND outs ${out})
|
||||
list(APPEND sources ${CMAKE_CURRENT_SOURCE_DIR}/${src})
|
||||
endforeach()
|
||||
set(gl_out ${out_dir}/gl_sources.inc)
|
||||
string(REPLACE ";" "|" embed_list "${sources};${headers}") # a list can't pass through COMMAND as one argument
|
||||
add_custom_command(OUTPUT ${gl_out}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${out_dir}
|
||||
COMMAND ${CMAKE_COMMAND} -DOUT=${gl_out} -DFILES=${embed_list} -P ${PROJECT_SOURCE_DIR}/cmake/EmbedText.cmake
|
||||
DEPENDS ${sources} ${headers} ${PROJECT_SOURCE_DIR}/cmake/EmbedText.cmake VERBATIM)
|
||||
target_sources(${target} PRIVATE ${outs} ${gl_out})
|
||||
target_include_directories(${target} PRIVATE ${out_dir})
|
||||
endfunction()
|
||||
Loading…
Reference in a new issue