Emscripten에서 파일 로딩하기

TL;DR

폴더 안의 파일을 불러와서 사용하고 싶다.

Packaging using emcc

공식 페이지에서는 컴파일 시 emcc 명령어를 사용하면 된다고 한다.

--preload-file 의 명령어를 사용하여 어떤 파일을 사용할지 설정해주면 된다.

CMakeList.txt에서 사용하기.

1
set_target_properties(app LINK_FLAGS "--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/ShaderFiles/EsShader@ShaderFiles")

@를 통해 가상 파일 위치를 매핑할 수 있다. ${CMAKE_CURRENT_SOURCE_DIR}/ShaderFiles/EsShader의 위치를 ShaderFiles로 매핑했다.

파일 로드.

1
2
3
4
5
6
├── ShaderFiles
│ ├── EsShader
│ │ ├── basic_lighting.fs
│ │ └── basic_lighting.vs
│ ├── basic_lighting.fs
│ └── basic_lighting.vs

파일 트리는 다음과 같다. ${CMAKE_CURRENT_SOURCE_DIR}/ShaderFiles/EsShader의 위치를 ShaderFiles 로 매핑했기 때문에 플랫폼에 따라 경로를 변경하지 않아도 된다.