Split vulkan_base into smaller units
Closes #30. This is a basic refactoring of the graphics module, so everything won't be in single file.
This commit is contained in:
1 parent
649e7f76fe
commit
6a09350902
32 files changed
+2354
-2002
No files matched your search
@@ -0,0 +1,61 @@
|
||||
find_package(Vulkan REQUIRED)
|
||||
find_package(glfw3 REQUIRED)
|
||||
find_package(glm REQUIRED)
|
||||
|
||||
find_package(Vulkan COMPONENTS glslc)
|
||||
find_program(glslc_executable NAMES glslc HINTS Vulkan::glslc)
|
||||
|
||||
cmake_policy(SET CMP0116 NEW)
|
||||
function(compile_shader)
|
||||
cmake_parse_arguments(PARSE_ARGV 1 arg "" "ENV;FORMAT" "SOURCES")
|
||||
foreach(source ${arg_SOURCES})
|
||||
message(${source}.${arg_FORMAT})
|
||||
add_custom_command(
|
||||
OUTPUT ${source}.${arg_FORMAT}
|
||||
DEPENDS ${source}
|
||||
DEPFILE ${source}.d
|
||||
COMMAND
|
||||
${glslc_executable}
|
||||
-o ${source}.${arg_FORMAT}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${source}
|
||||
)
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
|
||||
|
||||
compile_shader(rse_graphics
|
||||
ENV opengl
|
||||
FORMAT num
|
||||
SOURCES
|
||||
shaders/shader.vert
|
||||
shaders/shader.frag
|
||||
)
|
||||
|
||||
add_library(rse_graphics SHARED shaders/shader.vert.num shaders/shader.frag.num)
|
||||
target_include_directories(rse_graphics PRIVATE
|
||||
${PROJECT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${Vulkan_INCLUDE_DIR}
|
||||
${glfw3_INCLUDE_DIR}
|
||||
${glm_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
|
||||
target_sources(rse_graphics PRIVATE
|
||||
src/window.cpp
|
||||
src/vulkan_base.cpp
|
||||
src/vulkan_pipeline.cpp
|
||||
src/vulkan_buffers.cpp
|
||||
src/vulkan_descriptors.cpp
|
||||
src/rse_graphics.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(rse_graphics PRIVATE
|
||||
rse_utilities
|
||||
${Vulkan_LIBRARIES}
|
||||
glfw
|
||||
glm
|
||||
)
|
||||
Reference in new issue
Block a user