EmbedTextures.cmake 1.0 KB

123456789101112131415161718192021222324
  1. find_program(PYTHON_EXECUTABLE python3 REQUIRED)
  2. function(ProcessTexture binary_file var_name)
  3. # Get the file size
  4. file(SIZE "${binary_file}" file_size)
  5. # Convert the file to hexadecimal
  6. execute_process(
  7. COMMAND ${PYTHON_EXECUTABLE} "${R3D_ROOT_PATH}/scripts/bin2c.py" "${binary_file}"
  8. OUTPUT_VARIABLE hex_output
  9. OUTPUT_STRIP_TRAILING_WHITESPACE
  10. )
  11. # Set the variables
  12. set("${var_name}" "${hex_output}" PARENT_SCOPE)
  13. set("${var_name}_SIZE" "${file_size}" PARENT_SCOPE)
  14. endfunction()
  15. function(EmbedTextures generated_textures_source textures_source textures_header)
  16. # Convert textures to C-Hex stream
  17. ProcessTexture("${R3D_ROOT_PATH}/embedded/textures/iblBrdfLut.dds" TEX_IBL_BRDF_LUT)
  18. # Generate shaders source file
  19. set(GENERATED_TEXTURES_SOURCE "${CMAKE_BINARY_DIR}/generated/src/embedded/r3d_textures.c")
  20. set(${generated_textures_source} "${GENERATED_TEXTURES_SOURCE}" PARENT_SCOPE)
  21. configure_file("${textures_source}" "${GENERATED_TEXTURES_SOURCE}")
  22. endfunction()