Skip to content

Commit 92820fb

Browse files
committed
save work - create 64 gizmo example with a cube which vertices get created on fly on app init. TODO: I get holla validation errors on runtime with invalid descriptor set count, need to inspect
1 parent d478a92 commit 92820fb

File tree

7 files changed

+728
-1
lines changed

7 files changed

+728
-1
lines changed

64_Gizmo/CMakeLists.txt

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
nbl_create_executable_project("" "" "" "" "${NBL_EXECUTABLE_PROJECT_CREATION_PCH_TARGET}")
2+
3+
# shaders IO directories
4+
set(NBL_THIS_EXAMPLE_INPUT_SHADERS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/shaders")
5+
get_filename_component(_THIS_EXAMPLE_SPIRV_BR_BUNDLE_SEARCH_DIRECTORY_ "${CMAKE_CURRENT_BINARY_DIR}/shaders/include" ABSOLUTE)
6+
get_filename_component(_THIS_EXAMPLE_SPIRV_BR_OUTPUT_DIRECTORY_HEADER_ "${CMAKE_CURRENT_BINARY_DIR}/builtin/include" ABSOLUTE)
7+
get_filename_component(_THIS_EXAMPLE_SPIRV_BR_OUTPUT_DIRECTORY_SOURCE_ "${CMAKE_CURRENT_BINARY_DIR}/builtin/src" ABSOLUTE)
8+
set(NBL_THIS_EXAMPLE_OUTPUT_SPIRV_DIRECTORY "${_THIS_EXAMPLE_SPIRV_BR_BUNDLE_SEARCH_DIRECTORY_}/nbl/gizmo/spirv")
9+
10+
# list of input source shaders
11+
set(NBL_THIS_EXAMPLE_INPUT_SHADERS
12+
"${NBL_THIS_EXAMPLE_INPUT_SHADERS_DIRECTORY}/vertex.hlsl"
13+
"${NBL_THIS_EXAMPLE_INPUT_SHADERS_DIRECTORY}/fragment.hlsl"
14+
)
15+
16+
set(NBL_THIS_EXAMPLE_INPUT_COMMONS
17+
"${NBL_THIS_EXAMPLE_INPUT_SHADERS_DIRECTORY}/common.hlsl"
18+
)
19+
20+
include("${NBL_ROOT_PATH}/src/nbl/builtin/utils.cmake")
21+
22+
foreach(NBL_INPUT_SHADER IN LISTS NBL_THIS_EXAMPLE_INPUT_SHADERS)
23+
cmake_path(GET NBL_INPUT_SHADER STEM NBL_SHADER_STEM)
24+
set(NBL_OUTPUT_SPIRV_FILENAME "${NBL_SHADER_STEM}.spv")
25+
set(NBL_OUTPUT_SPIRV_PATH "${NBL_THIS_EXAMPLE_OUTPUT_SPIRV_DIRECTORY}/${NBL_OUTPUT_SPIRV_FILENAME}")
26+
27+
if(NBL_SHADER_STEM STREQUAL vertex)
28+
set(NBL_NSC_COMPILE_OPTIONS -T vs_6_7 -E VSMain)
29+
elseif(NBL_SHADER_STEM STREQUAL fragment)
30+
set(NBL_NSC_COMPILE_OPTIONS -T ps_6_7 -E PSMain)
31+
else()
32+
message(FATAL_ERROR "internal error")
33+
endif()
34+
35+
set(NBL_NSC_COMPILE_COMMAND
36+
"$<TARGET_FILE:nsc>"
37+
-Fc "${NBL_OUTPUT_SPIRV_PATH}"
38+
${NBL_NSC_COMPILE_OPTIONS} # this should come from shader's [#pragma WAVE <compile options>] but our NSC doesn't seem to work properly currently
39+
"${NBL_INPUT_SHADER}"
40+
)
41+
42+
set(NBL_DEPENDS
43+
"${NBL_INPUT_SHADER}"
44+
${NBL_THIS_EXAMPLE_INPUT_COMMONS}
45+
)
46+
47+
add_custom_command(OUTPUT "${NBL_OUTPUT_SPIRV_PATH}"
48+
COMMAND ${NBL_NSC_COMPILE_COMMAND}
49+
DEPENDS ${NBL_DEPENDS}
50+
WORKING_DIRECTORY "${NBL_THIS_EXAMPLE_INPUT_SHADERS_DIRECTORY}"
51+
COMMENT "Generating \"${NBL_OUTPUT_SPIRV_PATH}\""
52+
VERBATIM
53+
COMMAND_EXPAND_LISTS
54+
)
55+
56+
list(APPEND NBL_THIS_EXAMPLE_OUTPUT_SPIRV_BUILTINS "${NBL_OUTPUT_SPIRV_PATH}")
57+
LIST_BUILTIN_RESOURCE(IMGUI_EXT_SPIRV_RESOURCES_TO_EMBED "gizmo/spirv/${NBL_OUTPUT_SPIRV_FILENAME}")
58+
endforeach()
59+
60+
ADD_CUSTOM_BUILTIN_RESOURCES(extGizmoSpirvBuiltinResourceData IMGUI_EXT_SPIRV_RESOURCES_TO_EMBED "${_THIS_EXAMPLE_SPIRV_BR_BUNDLE_SEARCH_DIRECTORY_}" "nbl" "this_example::spirv::builtin" "${_THIS_EXAMPLE_SPIRV_BR_OUTPUT_DIRECTORY_HEADER_}" "${_THIS_EXAMPLE_SPIRV_BR_OUTPUT_DIRECTORY_SOURCE_}" "STATIC" "INTERNAL")
61+
LINK_BUILTIN_RESOURCES_TO_TARGET(${EXECUTABLE_NAME} extGizmoSpirvBuiltinResourceData)

0 commit comments

Comments
 (0)