Compare commits
1 Commits
ma/entitym
...
rc/1.71.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a0f4b943d |
2
.github/workflows/npm-deploy.yml
vendored
2
.github/workflows/npm-deploy.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
||||
cd build/web && printf "y" | ./build.sh release
|
||||
- name: Deploy to npm
|
||||
run: |
|
||||
cd out/cmake-wasm-release/web/filament-js
|
||||
cd out/cmake-webgl-release/web/filament-js
|
||||
npm publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
2
.github/workflows/postsubmit.yml
vendored
2
.github/workflows/postsubmit.yml
vendored
@@ -31,8 +31,6 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./.github/actions/mac-prereq
|
||||
- name: Select Xcode 16.2
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
- name: Run build script
|
||||
run: |
|
||||
cd build/ios && printf "y" | ./build.sh continuous
|
||||
|
||||
2
.github/workflows/presubmit.yml
vendored
2
.github/workflows/presubmit.yml
vendored
@@ -184,8 +184,6 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./.github/actions/mac-prereq
|
||||
- name: Select Xcode 16.2
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
- name: Run build script
|
||||
run: |
|
||||
cd build/ios && printf "y" | ./build.sh presubmit
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -286,8 +286,6 @@ jobs:
|
||||
with:
|
||||
ref: ${{ steps.git_ref.outputs.ref }}
|
||||
- uses: ./.github/actions/mac-prereq
|
||||
- name: Select Xcode 16.2
|
||||
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
|
||||
- name: Run build script
|
||||
env:
|
||||
TAG: ${{ steps.git_ref.outputs.tag }}
|
||||
|
||||
@@ -177,7 +177,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
# ==================================================================================================
|
||||
# OS specific
|
||||
# ==================================================================================================
|
||||
if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT WASM)
|
||||
if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT WEBGL)
|
||||
set(LINUX TRUE)
|
||||
else()
|
||||
# since cmake 3.25 LINUX is automatically set based on CMAKE_SYSTEM_NAME, which the android
|
||||
@@ -218,7 +218,7 @@ if (LINUX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ANDROID OR WASM OR IOS OR FILAMENT_LINUX_IS_MOBILE)
|
||||
if (ANDROID OR WEBGL OR IOS OR FILAMENT_LINUX_IS_MOBILE)
|
||||
set(IS_MOBILE_TARGET TRUE)
|
||||
endif()
|
||||
|
||||
@@ -226,7 +226,7 @@ if (ANDROID)
|
||||
add_definitions(-D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
|
||||
endif()
|
||||
|
||||
if (NOT ANDROID AND NOT WASM AND NOT IOS AND NOT FILAMENT_LINUX_IS_MOBILE)
|
||||
if (NOT ANDROID AND NOT WEBGL AND NOT IOS AND NOT FILAMENT_LINUX_IS_MOBILE)
|
||||
set(IS_HOST_PLATFORM TRUE)
|
||||
endif()
|
||||
|
||||
@@ -473,7 +473,7 @@ if (NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffunction-sections -fdata-sections")
|
||||
endif()
|
||||
|
||||
if (ANDROID OR WASM)
|
||||
if (ANDROID OR WEBGL)
|
||||
# On Android and WebGL RELEASE builds, we omit unwind info to save space.
|
||||
# (We keep unwind info on iOS to allow readable stack traces in crash reports.)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-unwind-tables -fno-asynchronous-unwind-tables")
|
||||
@@ -482,11 +482,11 @@ endif()
|
||||
# With WebGL, we disable RTTI because we pass emscripten::val back and forth
|
||||
# between C++ and JavaScript in order to efficiently access typed arrays, which are unbound.
|
||||
# NOTE: This is not documented in emscripten so we should consider a different approach.
|
||||
if (WASM)
|
||||
if (WEBGL)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||
endif()
|
||||
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
||||
endif()
|
||||
|
||||
@@ -503,7 +503,7 @@ if (ANDROID)
|
||||
# keep STL debug infos (mimics what the NDK does)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-limit-debug-info")
|
||||
endif()
|
||||
if (NOT MSVC AND NOT WASM)
|
||||
if (NOT MSVC AND NOT WEBGL)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fstack-protector")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${EXTRA_SANITIZE_OPTIONS}")
|
||||
@@ -522,7 +522,7 @@ endif()
|
||||
# Linker flags
|
||||
# ==================================================================================================
|
||||
# Strip unused sections
|
||||
if (NOT WASM)
|
||||
if (NOT WEBGL)
|
||||
set(GC_SECTIONS "-Wl,--gc-sections")
|
||||
endif()
|
||||
|
||||
@@ -556,7 +556,7 @@ endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GC_SECTIONS} ${NO_EXEC_STACK}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${GC_SECTIONS} ${B_SYMBOLIC_FUNCTIONS} ${BINARY_ALIGNMENT}")
|
||||
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pthread")
|
||||
endif()
|
||||
|
||||
@@ -586,7 +586,7 @@ endif()
|
||||
|
||||
# By default, build with Vulkan support on desktop platforms, although clients must request to use
|
||||
# it at run time.
|
||||
if (WIN32 OR WASM OR IOS)
|
||||
if (WIN32 OR WEBGL OR IOS)
|
||||
option(FILAMENT_SUPPORTS_VULKAN "Include the Vulkan backend" OFF)
|
||||
else()
|
||||
option(FILAMENT_SUPPORTS_VULKAN "Include the Vulkan backend" ON)
|
||||
@@ -604,7 +604,7 @@ if (FILAMENT_SUPPORTS_WEBP_TEXTURES)
|
||||
endif()
|
||||
|
||||
# Build with Metal support on non-WebGL Apple platforms.
|
||||
if (APPLE AND NOT WASM)
|
||||
if (APPLE AND NOT WEBGL)
|
||||
option(FILAMENT_SUPPORTS_METAL "Include the Metal backend" ON)
|
||||
else()
|
||||
option(FILAMENT_SUPPORTS_METAL "Include the Metal backend" OFF)
|
||||
@@ -614,7 +614,7 @@ if (FILAMENT_SUPPORTS_METAL)
|
||||
endif()
|
||||
|
||||
# Building filamat increases build times and isn't required for web, so turn it off by default.
|
||||
if (NOT WASM)
|
||||
if (NOT WEBGL)
|
||||
option(FILAMENT_BUILD_FILAMAT "Build filamat and JNI buildings" ON)
|
||||
else()
|
||||
option(FILAMENT_BUILD_FILAMAT "Build filamat and JNI buildings" OFF)
|
||||
@@ -691,6 +691,11 @@ if (FILAMENT_SUPPORTS_WEBGPU)
|
||||
set(MATC_API_FLAGS ${MATC_API_FLAGS} -a webgpu --variant-filter=stereo)
|
||||
endif()
|
||||
|
||||
# Disable ESSL 1.0 code generation.
|
||||
if (NOT FILAMENT_ENABLE_FEATURE_LEVEL_0)
|
||||
set(MATC_API_FLAGS ${MATC_API_FLAGS} -1)
|
||||
endif()
|
||||
|
||||
# Enable debug info (preserves names in SPIR-V)
|
||||
if (FILAMENT_ENABLE_MATDBG)
|
||||
set(MATC_OPT_FLAGS ${MATC_OPT_FLAGS} -d)
|
||||
@@ -727,9 +732,6 @@ string(TOLOWER "${DIST_ARCH}" DIST_ARCH)
|
||||
string(REPLACE "amd64" "x86_64" DIST_ARCH "${DIST_ARCH}")
|
||||
if (NOT DIST_DIR)
|
||||
set(DIST_DIR "${DIST_ARCH}")
|
||||
if (PLATFORM_NAME)
|
||||
set(DIST_DIR "${DIST_DIR}-${PLATFORM_NAME}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ==================================================================================================
|
||||
@@ -838,7 +840,7 @@ if (FILAMENT_IMPORT_PREBUILT_EXECUTABLES_DIR)
|
||||
set(IMPORT_EXECUTABLES_DIR ${FILAMENT_IMPORT_PREBUILT_EXECUTABLES_DIR})
|
||||
endif()
|
||||
|
||||
if (WASM)
|
||||
if (WEBGL)
|
||||
set(IMPORT_EXECUTABLES ${FILAMENT}/${IMPORT_EXECUTABLES_DIR}/ImportExecutables-Release.cmake)
|
||||
else()
|
||||
if (FILAMENT_EXPORT_PREBUILT_EXECUTABLES OR FILAMENT_IMPORT_PREBUILT_EXECUTABLES)
|
||||
@@ -873,7 +875,7 @@ function(get_resgen_vars ARCHIVE_DIR ARCHIVE_NAME)
|
||||
set(RESGEN_HEADER "${ARCHIVE_DIR}/${ARCHIVE_NAME}.h" PARENT_SCOPE)
|
||||
# Visual Studio makes it difficult to use assembly without using MASM. MASM doesn't support
|
||||
# the equivalent of .incbin, so on Windows we'll just tell resgen to output a C file.
|
||||
if (WASM OR WIN32 OR ANDROID_ON_WINDOWS)
|
||||
if (WEBGL OR WIN32 OR ANDROID_ON_WINDOWS)
|
||||
set(RESGEN_OUTPUTS "${OUTPUTS};${ARCHIVE_DIR}/${ARCHIVE_NAME}.c" PARENT_SCOPE)
|
||||
set(RESGEN_FLAGS -qcx ${ARCHIVE_DIR} -p ${ARCHIVE_NAME} PARENT_SCOPE)
|
||||
set(RESGEN_SOURCE "${ARCHIVE_DIR}/${ARCHIVE_NAME}.c" PARENT_SCOPE)
|
||||
@@ -978,7 +980,7 @@ add_subdirectory(${FILAMENT}/filament)
|
||||
|
||||
set(FILAMENT_SAMPLES_BINARY_DIR ${PROJECT_BINARY_DIR}/samples)
|
||||
|
||||
if (WASM)
|
||||
if (WEBGL)
|
||||
add_subdirectory(web/filament-js)
|
||||
add_subdirectory(web/examples)
|
||||
endif()
|
||||
|
||||
@@ -6,6 +6,3 @@
|
||||
appropriate header in [RELEASE_NOTES.md](./RELEASE_NOTES.md).
|
||||
|
||||
## Release notes for next branch cut
|
||||
|
||||
- iOS: add Apple silicon (`arm64`) iOS Simulator support. The sample Xcode projects now require Xcode 16+ (CI is pinned to Xcode 16.2).
|
||||
- WEBGL_PTHREADS renamed to WASM_PTHREADS in CMakeLists.txt
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
[](https://github.com/google/filament/actions/workflows/status-web.yml)
|
||||
|
||||
Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows,
|
||||
and WASM. It is designed to be as small as possible and as efficient as possible on Android.
|
||||
and WebGL. It is designed to be as small as possible and as efficient as possible on Android.
|
||||
|
||||
## Download
|
||||
|
||||
@@ -31,7 +31,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.filament:filament-android:1.71.2'
|
||||
implementation 'com.google.android.filament:filament-android:1.71.3'
|
||||
}
|
||||
```
|
||||
|
||||
@@ -50,7 +50,7 @@ Here are all the libraries available in the group `com.google.android.filament`:
|
||||
iOS projects can use CocoaPods to install the latest release:
|
||||
|
||||
```shell
|
||||
pod 'Filament', '~> 1.71.2'
|
||||
pod 'Filament', '~> 1.71.3'
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
GROUP=com.google.android.filament
|
||||
VERSION_NAME=1.71.2
|
||||
VERSION_NAME=1.71.3
|
||||
|
||||
POM_DESCRIPTION=Real-time physically based rendering engine for Android.
|
||||
|
||||
|
||||
123
build.sh
123
build.sh
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Host tools required by Android, WASM, and iOS builds
|
||||
# Host tools required by Android, WebGL, and iOS builds
|
||||
MOBILE_HOST_TOOLS="matc resgen cmgen filamesh uberz"
|
||||
WEB_HOST_TOOLS="${MOBILE_HOST_TOOLS} mipgen filamesh"
|
||||
|
||||
@@ -34,7 +34,7 @@ function print_help {
|
||||
echo " -m"
|
||||
echo " Compile with make instead of ninja."
|
||||
echo " -p platform1,platform2,..."
|
||||
echo " Where platformN is [desktop|android|ios|wasm|all]."
|
||||
echo " Where platformN is [desktop|android|ios|webgl|all]."
|
||||
echo " Platform(s) to build, defaults to desktop."
|
||||
echo " Building for iOS will automatically perform a partial desktop build."
|
||||
echo " -q abi1,abi2,..."
|
||||
@@ -53,8 +53,8 @@ function print_help {
|
||||
echo " -e"
|
||||
echo " Enable EGL on Linux support for desktop builds."
|
||||
echo " -l"
|
||||
echo " Build universal libraries/frameworks."
|
||||
echo " For iOS, this builds XCFrameworks for devices and the simulator (implies -s)."
|
||||
echo " Build arm64/x86_64 universal libraries."
|
||||
echo " For iOS, this builds universal binaries for devices and the simulator (implies -s)."
|
||||
echo " For macOS, this builds universal binaries for both Apple silicon and Intel-based Macs."
|
||||
echo " -k sample1,sample2,..."
|
||||
echo " When building for Android, also build select sample APKs."
|
||||
@@ -173,7 +173,7 @@ ISSUE_RELEASE_BUILD=false
|
||||
ISSUE_ANDROID_BUILD=false
|
||||
ISSUE_IOS_BUILD=false
|
||||
ISSUE_DESKTOP_BUILD=true
|
||||
ISSUE_WASM_BUILD=false
|
||||
ISSUE_WEBGL_BUILD=false
|
||||
|
||||
# Default: all
|
||||
ABI_ARMEABI_V7A=true
|
||||
@@ -356,12 +356,12 @@ function build_desktop {
|
||||
fi
|
||||
}
|
||||
|
||||
function build_wasm_with_target {
|
||||
function build_webgl_with_target {
|
||||
local lc_target=$(echo "$1" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
echo "Building WASM ${lc_target}..."
|
||||
mkdir -p "out/cmake-wasm-${lc_target}"
|
||||
pushd "out/cmake-wasm-${lc_target}" > /dev/null
|
||||
echo "Building WebGL ${lc_target}..."
|
||||
mkdir -p "out/cmake-webgl-${lc_target}"
|
||||
pushd "out/cmake-webgl-${lc_target}" > /dev/null
|
||||
|
||||
if [[ ! "${BUILD_TARGETS}" ]]; then
|
||||
BUILD_TARGETS=${BUILD_CUSTOM_TARGETS}
|
||||
@@ -378,13 +378,13 @@ function build_wasm_with_target {
|
||||
${IMPORT_EXECUTABLES_DIR_OPTION} \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" \
|
||||
-DCMAKE_BUILD_TYPE="$1" \
|
||||
-DCMAKE_INSTALL_PREFIX="../wasm-${lc_target}/filament" \
|
||||
-DWASM=1 \
|
||||
-DCMAKE_INSTALL_PREFIX="../webgl-${lc_target}/filament" \
|
||||
-DWEBGL=1 \
|
||||
${WEBGPU_OPTION} \
|
||||
${BACKEND_DEBUG_FLAG_OPTION} \
|
||||
${EXCEPTIONS_OPTION} \
|
||||
../..
|
||||
ln -sf "out/cmake-wasm-${lc_target}/compile_commands.json" \
|
||||
ln -sf "out/cmake-webgl-${lc_target}/compile_commands.json" \
|
||||
../../compile_commands.json
|
||||
${BUILD_COMMAND} ${BUILD_TARGETS}
|
||||
)
|
||||
@@ -416,7 +416,7 @@ function build_wasm_with_target {
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
function build_wasm {
|
||||
function build_webgl {
|
||||
# For the host tools, suppress install and always use Release.
|
||||
local old_install_command=${INSTALL_COMMAND}; INSTALL_COMMAND=
|
||||
local old_issue_debug_build=${ISSUE_DEBUG_BUILD}; ISSUE_DEBUG_BUILD=false
|
||||
@@ -429,11 +429,11 @@ function build_wasm {
|
||||
ISSUE_RELEASE_BUILD=${old_issue_release_build}
|
||||
|
||||
if [[ "${ISSUE_DEBUG_BUILD}" == "true" ]]; then
|
||||
build_wasm_with_target "Debug"
|
||||
build_webgl_with_target "Debug"
|
||||
fi
|
||||
|
||||
if [[ "${ISSUE_RELEASE_BUILD}" == "true" ]]; then
|
||||
build_wasm_with_target "Release"
|
||||
build_webgl_with_target "Release"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -685,9 +685,9 @@ function build_ios_target {
|
||||
local platform=$3
|
||||
|
||||
echo "Building iOS ${lc_target} (${arch}) for ${platform}..."
|
||||
mkdir -p "out/cmake-ios-${lc_target}-${arch}-${platform}"
|
||||
mkdir -p "out/cmake-ios-${lc_target}-${arch}"
|
||||
|
||||
pushd "out/cmake-ios-${lc_target}-${arch}-${platform}" > /dev/null
|
||||
pushd "out/cmake-ios-${lc_target}-${arch}" > /dev/null
|
||||
|
||||
if [[ ! -d "CMakeFiles" ]] || [[ "${ISSUE_CMAKE_ALWAYS}" == "true" ]]; then
|
||||
cmake \
|
||||
@@ -746,79 +746,38 @@ function build_ios {
|
||||
# only arm64 devices support OpenGL 3.0 / Metal
|
||||
|
||||
if [[ "${ISSUE_DEBUG_BUILD}" == "true" ]]; then
|
||||
local out_dir="out/ios-debug/filament"
|
||||
local lib_dir="${out_dir}/lib"
|
||||
|
||||
build_ios_target "Debug" "arm64" "iphoneos"
|
||||
|
||||
if [[ "${IOS_BUILD_SIMULATOR}" == "true" ]]; then
|
||||
build_ios_target "Debug" "arm64" "iphonesimulator"
|
||||
build_ios_target "Debug" "x86_64" "iphonesimulator"
|
||||
|
||||
# Create a universal library for the simulator
|
||||
fi
|
||||
|
||||
if [[ "${BUILD_UNIVERSAL_LIBRARIES}" == "true" ]]; then
|
||||
build/ios/create-universal-libs.sh \
|
||||
-o "${lib_dir}/universal" \
|
||||
"${lib_dir}/arm64-iphonesimulator" \
|
||||
"${lib_dir}/x86_64-iphonesimulator"
|
||||
-o out/ios-debug/filament/lib/universal \
|
||||
out/ios-debug/filament/lib/arm64 \
|
||||
out/ios-debug/filament/lib/x86_64
|
||||
rm -rf out/ios-debug/filament/lib/arm64
|
||||
rm -rf out/ios-debug/filament/lib/x86_64
|
||||
fi
|
||||
|
||||
# Always create XCFrameworks
|
||||
local xcframework_paths=("${lib_dir}/arm64-iphoneos")
|
||||
if [[ -d "${lib_dir}/universal" ]]; then
|
||||
xcframework_paths+=("${lib_dir}/universal")
|
||||
elif [[ -d "${lib_dir}/arm64-iphonesimulator" ]]; then
|
||||
# If we built only one simulator arch but not both
|
||||
xcframework_paths+=("${lib_dir}/arm64-iphonesimulator")
|
||||
elif [[ -d "${lib_dir}/x86_64-iphonesimulator" ]]; then
|
||||
xcframework_paths+=("${lib_dir}/x86_64-iphonesimulator")
|
||||
fi
|
||||
|
||||
build/ios/create-xc-frameworks.sh -o "${lib_dir}" "${xcframework_paths[@]}"
|
||||
|
||||
rm -rf \
|
||||
"${lib_dir}/arm64-iphoneos" \
|
||||
"${lib_dir}/arm64-iphonesimulator" \
|
||||
"${lib_dir}/x86_64-iphonesimulator" \
|
||||
"${lib_dir}/universal"
|
||||
|
||||
archive_ios "Debug"
|
||||
fi
|
||||
|
||||
if [[ "${ISSUE_RELEASE_BUILD}" == "true" ]]; then
|
||||
local out_dir="out/ios-release/filament"
|
||||
local lib_dir="${out_dir}/lib"
|
||||
|
||||
build_ios_target "Release" "arm64" "iphoneos"
|
||||
|
||||
if [[ "${IOS_BUILD_SIMULATOR}" == "true" ]]; then
|
||||
build_ios_target "Release" "arm64" "iphonesimulator"
|
||||
build_ios_target "Release" "x86_64" "iphonesimulator"
|
||||
|
||||
# Create a universal library for the simulator
|
||||
fi
|
||||
|
||||
if [[ "${BUILD_UNIVERSAL_LIBRARIES}" == "true" ]]; then
|
||||
build/ios/create-universal-libs.sh \
|
||||
-o "${lib_dir}/universal" \
|
||||
"${lib_dir}/arm64-iphonesimulator" \
|
||||
"${lib_dir}/x86_64-iphonesimulator"
|
||||
-o out/ios-release/filament/lib/universal \
|
||||
out/ios-release/filament/lib/arm64 \
|
||||
out/ios-release/filament/lib/x86_64
|
||||
rm -rf out/ios-release/filament/lib/arm64
|
||||
rm -rf out/ios-release/filament/lib/x86_64
|
||||
fi
|
||||
|
||||
# Always create XCFrameworks
|
||||
local xcframework_paths=("${lib_dir}/arm64-iphoneos")
|
||||
if [[ -d "${lib_dir}/universal" ]]; then
|
||||
xcframework_paths+=("${lib_dir}/universal")
|
||||
elif [[ -d "${lib_dir}/arm64-iphonesimulator" ]]; then
|
||||
xcframework_paths+=("${lib_dir}/arm64-iphonesimulator")
|
||||
elif [[ -d "${lib_dir}/x86_64-iphonesimulator" ]]; then
|
||||
xcframework_paths+=("${lib_dir}/x86_64-iphonesimulator")
|
||||
fi
|
||||
|
||||
build/ios/create-xc-frameworks.sh -o "${lib_dir}" "${xcframework_paths[@]}"
|
||||
|
||||
rm -rf \
|
||||
"${lib_dir}/arm64-iphoneos" \
|
||||
"${lib_dir}/arm64-iphonesimulator" \
|
||||
"${lib_dir}/x86_64-iphonesimulator" \
|
||||
"${lib_dir}/universal"
|
||||
|
||||
archive_ios "Release"
|
||||
fi
|
||||
}
|
||||
@@ -850,7 +809,7 @@ function validate_build_command {
|
||||
fi
|
||||
fi
|
||||
# If building a WebAssembly module, ensure we know where Emscripten lives.
|
||||
if [[ "${EMSDK}" == "" ]] && [[ "${ISSUE_WASM_BUILD}" == "true" ]]; then
|
||||
if [[ "${EMSDK}" == "" ]] && [[ "${ISSUE_WEBGL_BUILD}" == "true" ]]; then
|
||||
echo "Error: EMSDK is not set, exiting"
|
||||
exit 1
|
||||
fi
|
||||
@@ -876,7 +835,7 @@ function run_test {
|
||||
}
|
||||
|
||||
function run_tests {
|
||||
if [[ "${ISSUE_WASM_BUILD}" == "true" ]]; then
|
||||
if [[ "${ISSUE_WEBGL_BUILD}" == "true" ]]; then
|
||||
if ! echo "TypeScript $(tsc --version)" ; then
|
||||
tsc --noEmit \
|
||||
third_party/gl-matrix/gl-matrix.d.ts \
|
||||
@@ -961,18 +920,18 @@ while getopts ":hacCfgimp:q:uvWslwedtk:bVx:S:X:Py:E" opt; do
|
||||
ios)
|
||||
ISSUE_IOS_BUILD=true
|
||||
;;
|
||||
wasm)
|
||||
ISSUE_WASM_BUILD=true
|
||||
webgl)
|
||||
ISSUE_WEBGL_BUILD=true
|
||||
;;
|
||||
all)
|
||||
ISSUE_ANDROID_BUILD=true
|
||||
ISSUE_IOS_BUILD=true
|
||||
ISSUE_DESKTOP_BUILD=true
|
||||
ISSUE_WASM_BUILD=false
|
||||
ISSUE_WEBGL_BUILD=false
|
||||
;;
|
||||
*)
|
||||
echo "Unknown platform ${platform}"
|
||||
echo "Platform must be one of [desktop|android|ios|wasm|all]"
|
||||
echo "Platform must be one of [desktop|android|ios|webgl|all]"
|
||||
echo ""
|
||||
exit 1
|
||||
;;
|
||||
@@ -1153,8 +1112,8 @@ if [[ "${ISSUE_IOS_BUILD}" == "true" ]]; then
|
||||
check_debug_release_build build_ios
|
||||
fi
|
||||
|
||||
if [[ "${ISSUE_WASM_BUILD}" == "true" ]]; then
|
||||
check_debug_release_build build_wasm
|
||||
if [[ "${ISSUE_WEBGL_BUILD}" == "true" ]]; then
|
||||
check_debug_release_build build_webgl
|
||||
fi
|
||||
|
||||
if [[ "${RUN_TESTS}" == "true" ]]; then
|
||||
|
||||
@@ -21,7 +21,7 @@ fi
|
||||
|
||||
OS_NAME=$(uname -s)
|
||||
LLVM_VERSION=${GITHUB_LLVM_VERSION-17}
|
||||
MESA_VERSION=${GITHUB_MESA_VERSION-25.0.6}
|
||||
MESA_VERSION=${GITHUB_MESA_VERSION-24.2.1}
|
||||
ORIG_DIR=$(pwd)
|
||||
MESA_DIR=${MESA_DIR-${ORIG_DIR}/mesa}
|
||||
|
||||
@@ -87,8 +87,7 @@ if [[ "$OS_NAME" == "Linux" ]]; then
|
||||
elif [[ "$OS_NAME" == "Darwin" ]]; then
|
||||
if command -v brew > /dev/null 2>&1; then
|
||||
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=true brew install autoconf automake libx11 libxext libxrandr \
|
||||
llvm@${LLVM_VERSION} ninja meson pkg-config libxshmfence \
|
||||
glslang
|
||||
llvm@${LLVM_VERSION} ninja meson pkg-config libxshmfence
|
||||
brew link --overwrite llvm@${LLVM_VERSION}
|
||||
# For reasons unknown, this is necessary for pkg-config to find homebrew's packages
|
||||
LOCAL_PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||
|
||||
59
build/common/upload-release-assets/package-lock.json
generated
59
build/common/upload-release-assets/package-lock.json
generated
@@ -13,20 +13,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/core": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
|
||||
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
|
||||
"integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
|
||||
"dependencies": {
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/http-client": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/exec": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
|
||||
"integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
|
||||
"dependencies": {
|
||||
"@actions/io": "^1.0.1"
|
||||
"@actions/http-client": "^2.0.1",
|
||||
"uuid": "^8.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/glob": {
|
||||
@@ -46,11 +38,6 @@
|
||||
"tunnel": "^0.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/io": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
|
||||
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
||||
},
|
||||
"node_modules/@octokit/auth-token": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
|
||||
@@ -270,24 +257,24 @@
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||
"bin": {
|
||||
"uuid": "dist/bin/uuid"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/core": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz",
|
||||
"integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==",
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
|
||||
"integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
|
||||
"requires": {
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/http-client": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"@actions/exec": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
|
||||
"integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
|
||||
"requires": {
|
||||
"@actions/io": "^1.0.1"
|
||||
"@actions/http-client": "^2.0.1",
|
||||
"uuid": "^8.3.2"
|
||||
}
|
||||
},
|
||||
"@actions/glob": {
|
||||
@@ -307,11 +294,6 @@
|
||||
"tunnel": "^0.0.6"
|
||||
}
|
||||
},
|
||||
"@actions/io": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
|
||||
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
||||
},
|
||||
"@octokit/auth-token": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz",
|
||||
@@ -462,6 +444,11 @@
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz",
|
||||
"integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q=="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
GITHUB_CLANG_VERSION=17
|
||||
GITHUB_CMAKE_VERSION=3.22.1
|
||||
GITHUB_NINJA_VERSION=1.10.2
|
||||
GITHUB_MESA_VERSION=25.0.6
|
||||
GITHUB_MESA_VERSION=24.2.1
|
||||
GITHUB_LLVM_VERSION=17
|
||||
GITHUB_NDK_VERSION=29.0.14206865
|
||||
GITHUB_EMSDK_VERSION=5.0.4
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
function print_help {
|
||||
local SELF_NAME
|
||||
SELF_NAME=$(basename "$0")
|
||||
echo "$SELF_NAME. Combine multiple platform-specific libraries into XCFramework bundles."
|
||||
echo ""
|
||||
echo "Usage:"
|
||||
echo " $SELF_NAME [options] <path>..."
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h"
|
||||
echo " Print this help message."
|
||||
echo " -o"
|
||||
echo " Output directory to store the XCFrameworks."
|
||||
echo ""
|
||||
echo "Example:"
|
||||
echo " $SELF_NAME -o xcframeworks/ iphoneos/ iphonesimulator/"
|
||||
echo ""
|
||||
}
|
||||
|
||||
OUTPUT_DIR=""
|
||||
while getopts "ho:" opt; do
|
||||
case ${opt} in
|
||||
h)
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
o)
|
||||
OUTPUT_DIR="${OPTARG}"
|
||||
;;
|
||||
*)
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
PATHS=("$@")
|
||||
|
||||
if [[ ! "${PATHS[*]}" ]]; then
|
||||
echo "One or more paths required."
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! "${OUTPUT_DIR}" ]]; then
|
||||
echo "Output directory required."
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${OUTPUT_DIR}"
|
||||
|
||||
# Use the first path as the leader to find all .a files
|
||||
LEADER_PATH="${PATHS[0]}"
|
||||
|
||||
for FILE in "${LEADER_PATH}"/*.a; do
|
||||
[ -f "${FILE}" ] || continue
|
||||
|
||||
LIBRARY_NAME="${FILE##*/}"
|
||||
FRAMEWORK_NAME="${LIBRARY_NAME%.a}.xcframework"
|
||||
|
||||
echo "Creating XCFramework for: ${LIBRARY_NAME}"
|
||||
|
||||
CMD="xcodebuild -create-xcframework"
|
||||
|
||||
for PLATFORM_PATH in "${PATHS[@]}"; do
|
||||
LIB_PATH="${PLATFORM_PATH}/${LIBRARY_NAME}"
|
||||
if [[ -f "${LIB_PATH}" ]]; then
|
||||
CMD="${CMD} -library ${LIB_PATH}"
|
||||
else
|
||||
echo "Warning: ${LIB_PATH} does not exist, skipping this platform for ${LIBRARY_NAME}"
|
||||
fi
|
||||
done
|
||||
|
||||
CMD="${CMD} -output ${OUTPUT_DIR}/${FRAMEWORK_NAME}"
|
||||
|
||||
# Remove existing framework if it exists
|
||||
rm -rf "${OUTPUT_DIR}/${FRAMEWORK_NAME}"
|
||||
|
||||
eval "${CMD}"
|
||||
done
|
||||
@@ -8,4 +8,4 @@ set -x
|
||||
source `dirname $0`/../common/build-common.sh
|
||||
pushd `dirname $0`/../.. > /dev/null
|
||||
|
||||
./build.sh -p wasm -c $RUN_TESTS $GENERATE_ARCHIVES $BUILD_DEBUG $BUILD_RELEASE
|
||||
./build.sh -p webgl -c $RUN_TESTS $GENERATE_ARCHIVES $BUILD_DEBUG $BUILD_RELEASE
|
||||
|
||||
@@ -234,11 +234,11 @@ book.</p>
|
||||
<p>The process for copying and processing these READMEs is outlined in
|
||||
<a href="#introductory-doc">Introductory docs</a>.</p>
|
||||
<h3 id="web-examples-and-tutorials"><a class="header" href="#web-examples-and-tutorials">Web Examples and Tutorials</a></h3>
|
||||
<p>Filament provides a number of web tutorials and examples in the <code>web/</code> directory. These are
|
||||
compiled during the web CMake build and are integrated into the documentation via
|
||||
<p>Filament provides a number of WebGL tutorials and examples in the <code>web/</code> directory. These are
|
||||
compiled during the WebGL CMake build and are integrated into the documentation via
|
||||
<code>duplicates.json</code>. The process is entirely automated:</p>
|
||||
<ol>
|
||||
<li><code>run.py</code> maps the <code>.html</code> and <code>.md</code> web outputs from the <code>out/cmake-wasm-release/...</code>
|
||||
<li><code>run.py</code> maps the <code>.html</code> and <code>.md</code> WebGL outputs from the <code>out/cmake-webgl-release/...</code>
|
||||
directory into <code>docs_src/src_mdbook/src/samples/web/</code> using the instructions in <code>duplicates.json</code>.</li>
|
||||
<li>While transferring <code>.html</code> to <code>.md</code>, <code>run.py</code> strips away the <code><!DOCTYPE html></code>, <code><head></code>, and
|
||||
<code><html></code> tags. By retaining only the <code><style></code> and <code><body></code> elements, the HTML samples can be
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
<a href="https://github.com/google/filament/actions/workflows/status-windows.yml"><img src="https://github.com/google/filament/actions/workflows/status-windows.yml/badge.svg" alt="Windows Build Status" /></a>
|
||||
<a href="https://github.com/google/filament/actions/workflows/status-web.yml"><img src="https://github.com/google/filament/actions/workflows/status-web.yml/badge.svg" alt="Web Build Status" /></a></p>
|
||||
<p>Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows,
|
||||
and WASM. It is designed to be as small as possible and as efficient as possible on Android.</p>
|
||||
and WebGL. It is designed to be as small as possible and as efficient as possible on Android.</p>
|
||||
<h2 id="download"><a class="header" href="#download">Download</a></h2>
|
||||
<p><a href="https://github.com/google/filament/releases">Download Filament releases</a> to access stable builds.
|
||||
Filament release archives contains host-side tools that are required to generate assets.</p>
|
||||
@@ -181,7 +181,7 @@ important for <code>matc</code> (material compiler).</p>
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.filament:filament-android:1.71.2'
|
||||
implementation 'com.google.android.filament:filament-android:1.71.1'
|
||||
}
|
||||
</code></pre>
|
||||
<p>Here are all the libraries available in the group <code>com.google.android.filament</code>:</p>
|
||||
@@ -195,7 +195,7 @@ dependencies {
|
||||
</div>
|
||||
<h3 id="ios"><a class="header" href="#ios">iOS</a></h3>
|
||||
<p>iOS projects can use CocoaPods to install the latest release:</p>
|
||||
<pre><code class="language-shell">pod 'Filament', '~> 1.71.2'
|
||||
<pre><code class="language-shell">pod 'Filament', '~> 1.71.1'
|
||||
</code></pre>
|
||||
<h2 id="documentation"><a class="header" href="#documentation">Documentation</a></h2>
|
||||
<ul>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -81,10 +81,10 @@ The process for copying and processing these READMEs is outlined in
|
||||
[Introductory docs](#introductory-doc).
|
||||
|
||||
### Web Examples and Tutorials
|
||||
Filament provides a number of web tutorials and examples in the `web/` directory. These are
|
||||
compiled during the web CMake build and are integrated into the documentation via
|
||||
Filament provides a number of WebGL tutorials and examples in the `web/` directory. These are
|
||||
compiled during the WebGL CMake build and are integrated into the documentation via
|
||||
`duplicates.json`. The process is entirely automated:
|
||||
1. `run.py` maps the `.html` and `.md` web outputs from the `out/cmake-wasm-release/...`
|
||||
1. `run.py` maps the `.html` and `.md` WebGL outputs from the `out/cmake-webgl-release/...`
|
||||
directory into `docs_src/src_mdbook/src/samples/web/` using the instructions in `duplicates.json`.
|
||||
2. While transferring `.html` to `.md`, `run.py` strips away the `<!DOCTYPE html>`, `<head>`, and
|
||||
`<html>` tags. By retaining only the `<style>` and `<body>` elements, the HTML samples can be
|
||||
|
||||
@@ -20,7 +20,7 @@ import glob
|
||||
import re
|
||||
|
||||
CUR_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
OUT_DIR = os.path.join(CUR_DIR, "../../out/cmake-wasm-release/web/examples/examples")
|
||||
OUT_DIR = os.path.join(CUR_DIR, "../../out/cmake-webgl-release/web/examples/examples")
|
||||
BOOK_DIR = os.path.join(CUR_DIR, "../src_mdbook/book")
|
||||
|
||||
def setup_dirs():
|
||||
|
||||
@@ -106,43 +106,43 @@
|
||||
"filament/backend/test/README.md": {
|
||||
"dest": "dup/backend_test.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/triangle/triangle.md": {
|
||||
"out/cmake-webgl-release/web/examples/examples/triangle/triangle.md": {
|
||||
"dest": "samples/web/triangle.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/redball/redball.md": {
|
||||
"out/cmake-webgl-release/web/examples/examples/redball/redball.md": {
|
||||
"dest": "samples/web/redball.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/suzanne/suzanne.md": {
|
||||
"out/cmake-webgl-release/web/examples/examples/suzanne/suzanne.md": {
|
||||
"dest": "samples/web/suzanne.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/animation/animation.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/animation/animation.html": {
|
||||
"dest": "samples/web/animation.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/cube_fl0/cube_fl0.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/cube_fl0/cube_fl0.html": {
|
||||
"dest": "samples/web/cube_fl0.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/helmet/helmet.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/helmet/helmet.html": {
|
||||
"dest": "samples/web/helmet.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/morphing/morphing.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/morphing/morphing.html": {
|
||||
"dest": "samples/web/morphing.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/parquet/parquet.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/parquet/parquet.html": {
|
||||
"dest": "samples/web/parquet.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/skinning/skinning.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/skinning/skinning.html": {
|
||||
"dest": "samples/web/skinning.md"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/sky/sky.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/sky/sky.html": {
|
||||
"dest": "samples/web/sky.md",
|
||||
"replacements": {
|
||||
"<!-- mdbook: add fullscreen mode -->": "<a href=\"../../web/sky.html\">Full screen</a>"
|
||||
}
|
||||
},
|
||||
"./out/cmake-wasm-release/web/examples/examples/sky/sky.html": {
|
||||
"./out/cmake-webgl-release/web/examples/examples/sky/sky.html": {
|
||||
"dest": "web/sky.html"
|
||||
},
|
||||
"out/cmake-wasm-release/web/examples/examples/remote/remote.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/remote/remote.html": {
|
||||
"dest": "remote/index.html"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ FILAMENT_BOT_TOKEN=$2
|
||||
set -ex
|
||||
|
||||
function update_to_main() {
|
||||
./build.sh -p wasm release
|
||||
./build.sh -p webgl release
|
||||
python3 docs_src/build/run.py
|
||||
mkdir -p tmp
|
||||
pushd .
|
||||
|
||||
@@ -744,10 +744,10 @@ if (MSVC)
|
||||
set(OPTIMIZATION_FLAGS
|
||||
/fp:fast
|
||||
)
|
||||
elseif (WASM)
|
||||
elseif(WEBGL)
|
||||
# Avoid strict-vtable-pointers here, it is broken in WebAssembly.
|
||||
set(OPTIMIZATION_FLAGS -fvisibility-inlines-hidden)
|
||||
elseif (FILAMENT_USING_GCC)
|
||||
elseif(FILAMENT_USING_GCC)
|
||||
set(OPTIMIZATION_FLAGS
|
||||
-ffast-math
|
||||
-fno-finite-math-only
|
||||
|
||||
@@ -124,7 +124,7 @@ if (FILAMENT_SUPPORTS_OPENGL AND NOT FILAMENT_USE_EXTERNAL_GLES3)
|
||||
list(APPEND SRCS src/opengl/platforms/PlatformCocoaGL.mm)
|
||||
list(APPEND SRCS src/opengl/platforms/CocoaExternalImage.mm)
|
||||
endif()
|
||||
elseif (WASM)
|
||||
elseif (WEBGL)
|
||||
list(APPEND SRCS src/opengl/platforms/PlatformWebGL.cpp)
|
||||
elseif (LINUX)
|
||||
if (FILAMENT_SUPPORTS_X11)
|
||||
@@ -432,7 +432,7 @@ if (FILAMENT_USE_ABSEIL_LOGGING)
|
||||
endif()
|
||||
|
||||
# Android, iOS, and WebGL do not use bluegl.
|
||||
if(FILAMENT_SUPPORTS_OPENGL AND NOT IOS AND NOT ANDROID AND NOT WASM)
|
||||
if(FILAMENT_SUPPORTS_OPENGL AND NOT IOS AND NOT ANDROID AND NOT WEBGL)
|
||||
target_link_libraries(${TARGET} PRIVATE bluegl)
|
||||
endif()
|
||||
|
||||
@@ -463,7 +463,7 @@ if (MSVC)
|
||||
set(OPTIMIZATION_FLAGS
|
||||
/fp:fast
|
||||
)
|
||||
elseif(WASM)
|
||||
elseif(WEBGL)
|
||||
# Avoid strict-vtable-pointers here, it is broken in WebAssembly.
|
||||
set(OPTIMIZATION_FLAGS -fvisibility-inlines-hidden)
|
||||
elseif(FILAMENT_USING_GCC)
|
||||
@@ -699,7 +699,7 @@ if (FILAMENT_BUILD_TESTING)
|
||||
# ==================================================================================================
|
||||
# Compute tests
|
||||
#
|
||||
#if (NOT IOS AND NOT WASM)
|
||||
#if (NOT IOS AND NOT WEBGL)
|
||||
#
|
||||
#add_executable(compute_test
|
||||
# test/ComputeTest.cpp
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <TargetConditionals.h>
|
||||
#include "backend/PresentCallable.h"
|
||||
#include "private/backend/CommandStream.h"
|
||||
#include "CommandStreamDispatcher.h"
|
||||
@@ -161,11 +160,9 @@ MetalDriver::MetalDriver(
|
||||
}
|
||||
|
||||
mContext->supportsDepthClamp = false;
|
||||
#if !TARGET_OS_SIMULATOR
|
||||
if (@available(macOS 10.11, iOS 11.0, *)) {
|
||||
mContext->supportsDepthClamp = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
// In order to support resolve store action on depth attachment, the GPU needs to support it.
|
||||
// Note that support for depth resolve implies support for stencil resolve using .sample0 resolve filter.
|
||||
|
||||
@@ -43,6 +43,101 @@ namespace filament::backend {
|
||||
|
||||
namespace {
|
||||
|
||||
/**
|
||||
* Given the source code of a [WGSL] WebGPU shader in text (string view to it) and the constants
|
||||
* to be overwritten now (at runtime), returns updated [WGSL] shader code text, where the constants
|
||||
* have been replaced.
|
||||
* @param shaderLabel Something to call this shader for troubleshooting, error messaging, etc.
|
||||
* @param shaderSource The original WGSL WebGPU shader code as text to be processed. This is a
|
||||
* view to that text and this function does not change it; it is immutable.
|
||||
* Instead, the processed version of this source is returned by the function.
|
||||
* @param specConstants The constants to replace in the shader code, indexed by constant id.
|
||||
* @return Processed version of the WGSL WebGPU shader code provided, where the constants have
|
||||
* been replaced with the values provided by the specConstants parameter.
|
||||
*/
|
||||
[[nodiscard]] std::string replaceSpecConstants(std::string_view shaderLabel,
|
||||
std::string_view shaderSource,
|
||||
utils::FixedCapacityVector<Program::SpecializationConstant> const& specConstants) {
|
||||
// this function is not expected to be called at all if no spec constants are to be replaced
|
||||
assert_invariant(!specConstants.empty());
|
||||
static constexpr std::string_view specConstantPrefix = "FILAMENT_SPEC_CONST_";
|
||||
static constexpr size_t specConstantPrefixSize = specConstantPrefix.size();
|
||||
const char* const sourceData = shaderSource.data();
|
||||
std::stringstream processedShaderSource{};
|
||||
size_t pos = 0;
|
||||
while (pos < shaderSource.size()) {
|
||||
const size_t posOfNextSpecConstant = shaderSource.find(specConstantPrefix, pos);
|
||||
if (posOfNextSpecConstant == std::string::npos) {
|
||||
// no more spec constants, so just stream the rest of the source code string
|
||||
processedShaderSource << std::string_view(sourceData + pos, shaderSource.size() - pos);
|
||||
break;
|
||||
}
|
||||
const size_t posOfId = posOfNextSpecConstant + specConstantPrefixSize;
|
||||
const size_t posAfterId = shaderSource.find('_', posOfId);
|
||||
FILAMENT_CHECK_POSTCONDITION(posAfterId != std::string::npos)
|
||||
<< "malformed " << shaderLabel << ". Found spec constant prefix '"
|
||||
<< specConstantPrefix << "' without an id or '_' after it.";
|
||||
const std::string_view idStr =
|
||||
std::string_view(sourceData + posOfId, posAfterId - posOfId);
|
||||
const size_t posEndOfStatement = shaderSource.find(';', posAfterId);
|
||||
FILAMENT_CHECK_POSTCONDITION(posEndOfStatement != std::string::npos)
|
||||
<< "malformed " << shaderLabel << ". Found spec constant assignment with id "
|
||||
<< idStr << " without a terminating ';' character?";
|
||||
// this is a view into part of the statement, from after the id to the ';'
|
||||
const std::string_view statementSegment =
|
||||
std::string_view(sourceData + posAfterId, posEndOfStatement - posAfterId);
|
||||
size_t posOfEqual = statementSegment.find('=');
|
||||
if (posOfEqual == std::string::npos) {
|
||||
// Not an assignment, so we don't need to replace it.
|
||||
processedShaderSource << std::string_view(sourceData + pos,
|
||||
posEndOfStatement + 1 - pos);
|
||||
pos = posEndOfStatement + 1;
|
||||
continue;
|
||||
}
|
||||
posOfEqual += posAfterId; // position in original source overall, not just the segment
|
||||
int constantId = 0;
|
||||
char* endPtr;
|
||||
errno = 0; // Clear errno before the call
|
||||
|
||||
long tempConstantId = std::strtol(idStr.data(), &endPtr, 10);
|
||||
|
||||
// Check for conversion errors
|
||||
if (endPtr == idStr.data() || *endPtr != '\0' || errno == ERANGE) {
|
||||
// Parsing failed, or conversion was out of range for 'long'
|
||||
// or the string contained non-numeric characters after the number.
|
||||
PANIC_POSTCONDITION("Invalid spec constant id '%s' in %s (not a valid integer or out "
|
||||
"of range for 'long'?)",
|
||||
idStr.data(), shaderLabel.data());
|
||||
} else {
|
||||
// Check if the parsed long value fits into an int
|
||||
if (tempConstantId > std::numeric_limits<int>::max() ||
|
||||
tempConstantId < std::numeric_limits<int>::min()) {
|
||||
PANIC_POSTCONDITION(
|
||||
"Invalid spec constant id '%s' in %s (value out of range for 'int')",
|
||||
idStr.data(), shaderLabel.data());
|
||||
} else {
|
||||
constantId = static_cast<int>(tempConstantId);
|
||||
}
|
||||
}
|
||||
const std::variant<int32_t, float, bool> newValue = specConstants[constantId];
|
||||
// stream up to the equal sign...
|
||||
processedShaderSource << std::string_view(sourceData + pos, posOfEqual + 1 - pos);
|
||||
// stream the new value...
|
||||
if (auto* v = std::get_if<int32_t>(&newValue)) {
|
||||
processedShaderSource << " " << *v << "i";
|
||||
} else if (auto* f = std::get_if<float>(&newValue)) {
|
||||
processedShaderSource << " " << *f << "f";
|
||||
} else if (auto* b = std::get_if<bool>(&newValue)) {
|
||||
processedShaderSource << " " << ((*b) ? "true" : "false");
|
||||
}
|
||||
// end the statement...
|
||||
processedShaderSource << ";";
|
||||
// and skip to after the end of the statement in the original source and continue...
|
||||
pos = posEndOfStatement + 1;
|
||||
}
|
||||
return processedShaderSource.str();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a WebGPU shader module for a given "program" "stage", accounting for override constants.
|
||||
* Effectively, this function is responsible for preprocessing the shader source and compiling it.
|
||||
@@ -50,12 +145,14 @@ namespace {
|
||||
* a shader module
|
||||
* @param program The "program" to compile/create the shader, which includes the shader source
|
||||
* @param stage The stage (e.g. vertex, fragment, etc.) to create the shader module
|
||||
* @param specConstants Override constants to apply when creating/compiling the shader module.
|
||||
* @return the proper WebGPU shader module compiled/created from the input parameters. This might
|
||||
* wrap a null handle if the shader is not present (if the shader source is empty), such as
|
||||
* a missing fragment or compute shader.
|
||||
*/
|
||||
[[nodiscard]] wgpu::ShaderModule createShaderModule(wgpu::Device const& device,
|
||||
Program const& program, const ShaderStage stage) {
|
||||
Program const& program, const ShaderStage stage,
|
||||
utils::FixedCapacityVector<Program::SpecializationConstant> const& specConstants) {
|
||||
const char* const programName = program.getName().c_str_safe();
|
||||
std::array<utils::FixedCapacityVector<uint8_t>, Program::SHADER_TYPE_COUNT> const&
|
||||
shaderSource = program.getShadersSource();
|
||||
@@ -67,9 +164,13 @@ namespace {
|
||||
std::stringstream labelStream;
|
||||
labelStream << programName << " " << filamentShaderStageToString(stage) << " shader";
|
||||
const auto label = labelStream.str();
|
||||
|
||||
const std::string processedShaderSource =
|
||||
specConstants.empty()
|
||||
? reinterpret_cast<const char*>(sourceBytes.data())
|
||||
: replaceSpecConstants(label, reinterpret_cast<const char*>(sourceBytes.data()),
|
||||
specConstants);
|
||||
wgpu::ShaderSourceWGSL wgslDescriptor{};
|
||||
wgslDescriptor.code = wgpu::StringView(reinterpret_cast<const char*>(sourceBytes.data()));
|
||||
wgslDescriptor.code = wgpu::StringView(processedShaderSource);
|
||||
const wgpu::ShaderModuleDescriptor descriptor{
|
||||
.nextInChain = &wgslDescriptor,
|
||||
.label = label.data()
|
||||
@@ -150,11 +251,14 @@ namespace {
|
||||
}// namespace
|
||||
|
||||
WebGPUProgram::WebGPUProgram(wgpu::Device const& device, Program const& program)
|
||||
: HwProgram{ program.getName() } {
|
||||
: HwProgram{ program.getName() } {
|
||||
utils::FixedCapacityVector<Program::SpecializationConstant> const& specConstants =
|
||||
program.getSpecializationConstants();
|
||||
// TODO: Consider creating/compiling these shaders in parallel.
|
||||
vertexShaderModule = createShaderModule(device, program, ShaderStage::VERTEX);
|
||||
fragmentShaderModule = createShaderModule(device, program, ShaderStage::FRAGMENT);
|
||||
computeShaderModule = createShaderModule(device, program, ShaderStage::COMPUTE);
|
||||
vertexShaderModule = createShaderModule(device, program, ShaderStage::VERTEX, specConstants);
|
||||
fragmentShaderModule =
|
||||
createShaderModule(device, program, ShaderStage::FRAGMENT, specConstants);
|
||||
computeShaderModule = createShaderModule(device, program, ShaderStage::COMPUTE, specConstants);
|
||||
}
|
||||
|
||||
}// namespace filament::backend
|
||||
|
||||
@@ -225,73 +225,42 @@ struct AttributeInfo final {
|
||||
* associated with a vertex buffer, and the slot each one belongs
|
||||
*/
|
||||
void createBufferLayoutsBindingSlotsAndAttributeInfos(AttributeArray const& attributes,
|
||||
const uint32_t deviceMaxVertexBuffers,
|
||||
const uint8_t attributeCount, const uint32_t deviceMaxVertexBuffers,
|
||||
std::vector<WebGPUVertexBufferInfo::WebGPUSlotBindingInfo>& outWebGPUSlotBindingInfos,
|
||||
std::vector<wgpu::VertexBufferLayout>& outVertexBufferLayouts,
|
||||
std::array<AttributeInfo, MAX_VERTEX_ATTRIBUTE_COUNT>& outAttributeInfos,
|
||||
uint8_t& outActualAttributeCount) {
|
||||
std::array<AttributeInfo, MAX_VERTEX_ATTRIBUTE_COUNT>& outAttributeInfos) {
|
||||
uint8_t currentWebGPUSlotIndex = 0;
|
||||
uint8_t currentAttributeIndex = 0;
|
||||
outVertexBufferLayouts.reserve(MAX_VERTEX_BUFFER_COUNT);
|
||||
outWebGPUSlotBindingInfos.reserve(outVertexBufferLayouts.capacity());
|
||||
|
||||
// Find a valid attribute to use as a dummy for unused slots (typically POSITION at index 0)
|
||||
Attribute dummyAttribute{};
|
||||
bool hasDummy = false;
|
||||
for (uint32_t i = 0; i < attributes.size(); ++i) {
|
||||
if (attributes[i].buffer != Attribute::BUFFER_UNUSED) {
|
||||
dummyAttribute = attributes[i];
|
||||
hasDummy = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* WebGPU Strict Validation Workaround:
|
||||
*
|
||||
* 1. Completeness: WebGPU requires ALL shader-declared attributes to exist in the Pipeline's
|
||||
* VertexState, even if unused by a specific mesh variant (e.g., BONE_WEIGHTS).
|
||||
* 2. Stride Boundary: Offset + Format_Size <= arrayStride.
|
||||
*
|
||||
* If we omit an unused attribute, WebGPU crashes (violates 1).
|
||||
* If we pad it as Float32x4 (16 bytes) into Slot 0 (e.g., Position, stride 12), WebGPU crashes
|
||||
* (violates 2):
|
||||
*
|
||||
* [ Slot 0 Stride: 12 bytes ]
|
||||
* |-------POSITION--------|
|
||||
* |------ BONE_WEIGHTS (Float32x4 = 16b) -----| <-- OVERFLOWS STRIDE!
|
||||
*
|
||||
* FIX: We alias unused attributes into Slot 0 as a 4-byte format (Float32 or Uint32).
|
||||
*
|
||||
* [ Slot 0 Stride: 12 bytes ]
|
||||
* |-------POSITION--------|
|
||||
* |-BONE-| <-- (Float32 = 4b) Safely fits inside the 12-byte stride!
|
||||
*
|
||||
* WebGPU safely promotes the 4-byte Float32 into a WGSL vec4<f32> as (x, 0.0, 0.0, 1.0).
|
||||
*/
|
||||
for (uint32_t attributeIndex = 0; attributeIndex < attributes.size(); ++attributeIndex) {
|
||||
auto attribute = attributes[attributeIndex];
|
||||
wgpu::VertexFormat vertexFormat;
|
||||
|
||||
const auto& attribute = attributes[attributeIndex];
|
||||
if (attribute.buffer == Attribute::BUFFER_UNUSED) {
|
||||
if (!hasDummy) {
|
||||
continue;
|
||||
}
|
||||
// HACK: Re-use the dummy buffer for disabled attributes to satisfy WebGPU validation.
|
||||
// Filament's shaders expect vec4 or uvec4. We provide a dummy format.
|
||||
const bool isInteger = attribute.flags & Attribute::FLAG_INTEGER_TARGET;
|
||||
vertexFormat = isInteger ? wgpu::VertexFormat::Uint8x4 : wgpu::VertexFormat::Unorm8x4;
|
||||
attribute = dummyAttribute;
|
||||
} else {
|
||||
const bool isInteger = attribute.flags & Attribute::FLAG_INTEGER_TARGET;
|
||||
const bool isNormalized = attribute.flags & Attribute::FLAG_NORMALIZED;
|
||||
vertexFormat = getVertexFormat(attribute.type, isNormalized, isInteger);
|
||||
// We ignore "unused" attributes, ones not associated with a buffer. If a shader
|
||||
// references such an attribute we have a bug one way or another. Either the API/CPU
|
||||
// will produce an error (best case scenario), where an attribute is referenced in the
|
||||
// shader but not provided by the backend API (CPU-side), or the shader would be getting
|
||||
// junk/undefined data from the GPU, since we do not have a valid buffer of data to
|
||||
// provide to the shader/GPU.
|
||||
continue;
|
||||
}
|
||||
|
||||
const bool isInteger = attribute.flags & Attribute::FLAG_INTEGER_TARGET;
|
||||
const bool isNormalized = attribute.flags & Attribute::FLAG_NORMALIZED;
|
||||
const wgpu::VertexFormat vertexFormat =
|
||||
getVertexFormat(attribute.type, isNormalized, isInteger);
|
||||
uint8_t existingSlot = INVALID_SLOT_INDEX;
|
||||
for (uint32_t slot = 0; slot < currentWebGPUSlotIndex; slot++) {
|
||||
WebGPUVertexBufferInfo::WebGPUSlotBindingInfo const& info =
|
||||
outWebGPUSlotBindingInfos[slot];
|
||||
// We consider attributes to be in the same slot/layout only if they belong to the
|
||||
// same buffer and are interleaved; they cannot belong to separate partitions in the
|
||||
// same buffer, for example.
|
||||
// For the attributes to be interleaved, the stride must match (among other things).
|
||||
// The attribute offset being less than the slot's/layout's buffer offset indicates
|
||||
// that it is in a separate partition before this slot/layout, thus not part of it.
|
||||
// The difference from the attribute's offset and this slot's/layout's buffer offset
|
||||
// being greater than the stride indicates it is in a separate partition after this
|
||||
// slot/layout, thus not part of it.
|
||||
if (info.sourceBufferIndex == attribute.buffer && info.stride == attribute.stride &&
|
||||
attribute.offset >= info.bufferOffset &&
|
||||
((attribute.offset - info.bufferOffset) < attribute.stride)) {
|
||||
@@ -300,18 +269,26 @@ void createBufferLayoutsBindingSlotsAndAttributeInfos(AttributeArray const& attr
|
||||
}
|
||||
}
|
||||
if (existingSlot == INVALID_SLOT_INDEX) {
|
||||
// New combination, use a new WebGPU slot
|
||||
FILAMENT_CHECK_PRECONDITION(currentWebGPUSlotIndex < MAX_VERTEX_BUFFER_COUNT &&
|
||||
currentWebGPUSlotIndex < deviceMaxVertexBuffers)
|
||||
<< "Number of vertex buffer layouts must not exceed MAX_VERTEX_BUFFER_COUNT ("
|
||||
<< MAX_VERTEX_BUFFER_COUNT << ") or the device limit ("
|
||||
<< deviceMaxVertexBuffers << ")";
|
||||
existingSlot = currentWebGPUSlotIndex++;
|
||||
outWebGPUSlotBindingInfos.push_back({ .sourceBufferIndex = attribute.buffer,
|
||||
outWebGPUSlotBindingInfos.push_back({
|
||||
.sourceBufferIndex = attribute.buffer,
|
||||
.bufferOffset = attribute.offset,
|
||||
.stride = attribute.stride });
|
||||
outVertexBufferLayouts.push_back(
|
||||
{ .stepMode = wgpu::VertexStepMode::Vertex, .arrayStride = attribute.stride });
|
||||
// we need to have a vertex buffer layout for each slot
|
||||
outVertexBufferLayouts.push_back({
|
||||
.stepMode = wgpu::VertexStepMode::Vertex,
|
||||
.arrayStride = attribute.stride
|
||||
// we do not know attributeCount or attributes at this time. We get those
|
||||
// in a subsequent pass over the attributeInfos we collect in this loop.
|
||||
});
|
||||
}
|
||||
// we don't use a designated initializer here because certain compilers can't handle it
|
||||
outAttributeInfos[currentAttributeIndex++] = AttributeInfo(
|
||||
existingSlot,
|
||||
{
|
||||
@@ -320,8 +297,9 @@ void createBufferLayoutsBindingSlotsAndAttributeInfos(AttributeArray const& attr
|
||||
attribute.offset - outWebGPUSlotBindingInfos[existingSlot].bufferOffset,
|
||||
.shaderLocation = attributeIndex });
|
||||
}
|
||||
|
||||
outActualAttributeCount = currentAttributeIndex;
|
||||
FILAMENT_CHECK_POSTCONDITION(currentAttributeIndex == attributeCount)
|
||||
<< "Using " << currentAttributeIndex << " attributes, but " << attributeCount
|
||||
<< " where indicated.";
|
||||
outVertexBufferLayouts.shrink_to_fit();
|
||||
outWebGPUSlotBindingInfos.shrink_to_fit();
|
||||
}
|
||||
@@ -338,21 +316,21 @@ WebGPUVertexBufferInfo::WebGPUVertexBufferInfo(const uint8_t bufferCount,
|
||||
<< ") exceeds Filament's MAX_VERTEX_ATTRIBUTE_COUNT limit ("
|
||||
<< MAX_VERTEX_ATTRIBUTE_COUNT << ") and/or the device's limit ("
|
||||
<< deviceLimits.maxVertexAttributes << ")";
|
||||
mVertexAttributes.reserve(MAX_VERTEX_ATTRIBUTE_COUNT); // Reserve max as we might add dummies
|
||||
mVertexAttributes.reserve(attributeCount);
|
||||
if (attributeCount == 0) {
|
||||
mVertexBufferLayouts.resize(0);
|
||||
mWebGPUSlotBindingInfos.resize(0);
|
||||
return; // should not be possible, but being defensive. nothing to do otherwise
|
||||
}
|
||||
std::array<AttributeInfo, MAX_VERTEX_ATTRIBUTE_COUNT> attributeInfos{};
|
||||
uint8_t actualAttributeCount = 0;
|
||||
createBufferLayoutsBindingSlotsAndAttributeInfos(attributes, deviceLimits.maxVertexBuffers,
|
||||
mWebGPUSlotBindingInfos, mVertexBufferLayouts, attributeInfos, actualAttributeCount);
|
||||
createBufferLayoutsBindingSlotsAndAttributeInfos(attributes, attributeCount,
|
||||
deviceLimits.maxVertexBuffers, mWebGPUSlotBindingInfos, mVertexBufferLayouts,
|
||||
attributeInfos);
|
||||
// sort attribute infos by increasing slot (by increasing offset within each slot).
|
||||
// We do this to ensure that attributes for the same slot/layout are contiguous in
|
||||
// the vector, so the vertex buffer layout associated with these contiguous attributes
|
||||
// can directly reference them in the mVertexAttributes vector below.
|
||||
std::sort(attributeInfos.data(), attributeInfos.data() + actualAttributeCount,
|
||||
std::sort(attributeInfos.data(), attributeInfos.data() + attributeCount,
|
||||
[](AttributeInfo const& first, AttributeInfo const& second) {
|
||||
if (first.slot < second.slot) {
|
||||
return true;
|
||||
@@ -366,7 +344,7 @@ WebGPUVertexBufferInfo::WebGPUVertexBufferInfo(const uint8_t bufferCount,
|
||||
});
|
||||
// populate mVertexAttributes and update mVertexBufferLayouts to reference the correct
|
||||
// attributes in it (which will be contiguous in memory as ensured by the sorting above)...
|
||||
for (uint32_t attributeIndex = 0; attributeIndex < actualAttributeCount; ++attributeIndex) {
|
||||
for (uint32_t attributeIndex = 0; attributeIndex < attributeCount; ++attributeIndex) {
|
||||
AttributeInfo const& info = attributeInfos[attributeIndex];
|
||||
mVertexAttributes.push_back(info.attribute);
|
||||
if (mVertexBufferLayouts[info.slot].attributeCount == 0) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
project(filament-tests)
|
||||
|
||||
if(IOS OR WASM)
|
||||
if(IOS OR WEBGL)
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = "Filament"
|
||||
spec.version = "1.71.2"
|
||||
spec.version = "1.71.3"
|
||||
spec.license = { :type => "Apache 2.0", :file => "LICENSE" }
|
||||
spec.homepage = "https://google.github.io/filament"
|
||||
spec.authors = "Google LLC."
|
||||
spec.summary = "Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WASM/WebGL."
|
||||
spec.platform = :ios, "11.0"
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.71.2/filament-v1.71.2-ios.tgz" }
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.71.3/filament-v1.71.3-ios.tgz" }
|
||||
|
||||
spec.libraries = 'c++'
|
||||
|
||||
# Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon.
|
||||
spec.pod_target_xcconfig = {
|
||||
'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'
|
||||
}
|
||||
spec.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
|
||||
|
||||
spec.subspec "filament" do |ss|
|
||||
ss.source_files =
|
||||
"include/filament/*.h",
|
||||
@@ -19,13 +25,13 @@ Pod::Spec.new do |spec|
|
||||
"include/ibl/*.h",
|
||||
"include/geometry/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libfilament.xcframework",
|
||||
"lib/libbackend.xcframework",
|
||||
"lib/libfilabridge.xcframework",
|
||||
"lib/libfilaflat.xcframework",
|
||||
"lib/libibl.xcframework",
|
||||
"lib/libgeometry.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libfilament.a",
|
||||
"lib/universal/libbackend.a",
|
||||
"lib/universal/libfilabridge.a",
|
||||
"lib/universal/libfilaflat.a",
|
||||
"lib/universal/libibl.a",
|
||||
"lib/universal/libgeometry.a"
|
||||
ss.dependency "Filament/utils"
|
||||
ss.dependency "Filament/math"
|
||||
end
|
||||
@@ -36,10 +42,11 @@ Pod::Spec.new do |spec|
|
||||
"include/filament/MaterialChunkType.h",
|
||||
"include/filament/MaterialEnums.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libfilamat.xcframework",
|
||||
"lib/libshaders.xcframework",
|
||||
"lib/libsmol-v.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libfilamat.a",
|
||||
"lib/universal/libshaders.a",
|
||||
"lib/universal/libsmol-v.a",
|
||||
"lib/universal/libfilabridge.a"
|
||||
ss.dependency "Filament/utils"
|
||||
ss.dependency "Filament/math"
|
||||
end
|
||||
@@ -47,11 +54,11 @@ Pod::Spec.new do |spec|
|
||||
spec.subspec "gltfio_core" do |ss|
|
||||
ss.source_files = "include/gltfio/**/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libgltfio_core.xcframework",
|
||||
"lib/libdracodec.xcframework",
|
||||
"lib/libuberarchive.xcframework",
|
||||
"lib/libstb.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libgltfio_core.a",
|
||||
"lib/universal/libdracodec.a",
|
||||
"lib/universal/libuberarchive.a",
|
||||
"lib/universal/libstb.a"
|
||||
ss.dependency "Filament/filament"
|
||||
ss.dependency "Filament/ktxreader"
|
||||
ss.dependency "Filament/uberz"
|
||||
@@ -59,23 +66,23 @@ Pod::Spec.new do |spec|
|
||||
|
||||
spec.subspec "camutils" do |ss|
|
||||
ss.source_files = "include/camutils/*.h"
|
||||
ss.vendored_frameworks = "lib/libcamutils.xcframework"
|
||||
ss.vendored_libraries = "lib/universal/libcamutils.a"
|
||||
ss.header_dir = "camutils"
|
||||
ss.dependency "Filament/math"
|
||||
end
|
||||
|
||||
spec.subspec "filameshio" do |ss|
|
||||
ss.source_files = "include/filameshio/*.h"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libfilameshio.xcframework",
|
||||
"lib/libmeshoptimizer.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libfilameshio.a",
|
||||
"lib/universal/libmeshoptimizer.a"
|
||||
ss.header_dir = "filameshio"
|
||||
ss.dependency "Filament/filament"
|
||||
end
|
||||
|
||||
spec.subspec "image" do |ss|
|
||||
ss.source_files = "include/image/*.h"
|
||||
ss.vendored_frameworks = "lib/libimage.xcframework"
|
||||
ss.vendored_libraries = "lib/universal/libimage.a"
|
||||
ss.header_dir = "image"
|
||||
ss.dependency "Filament/filament"
|
||||
end
|
||||
@@ -83,7 +90,7 @@ Pod::Spec.new do |spec|
|
||||
spec.subspec "utils" do |ss|
|
||||
ss.source_files = "include/utils/**/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks = "lib/libutils.xcframework"
|
||||
ss.vendored_libraries = "lib/universal/libutils.a"
|
||||
ss.dependency "Filament/tsl"
|
||||
end
|
||||
|
||||
@@ -100,9 +107,9 @@ Pod::Spec.new do |spec|
|
||||
spec.subspec "ktxreader" do |ss|
|
||||
ss.source_files = "include/ktxreader/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libktxreader.xcframework",
|
||||
"lib/libbasis_transcoder.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libktxreader.a",
|
||||
"lib/universal/libbasis_transcoder.a"
|
||||
ss.dependency "Filament/image"
|
||||
ss.dependency "Filament/filament"
|
||||
end
|
||||
@@ -110,9 +117,9 @@ Pod::Spec.new do |spec|
|
||||
spec.subspec "viewer" do |ss|
|
||||
ss.source_files = "include/viewer/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libviewer.xcframework",
|
||||
"lib/libcivetweb.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libviewer.a",
|
||||
"lib/universal/libcivetweb.a"
|
||||
ss.dependency "Filament/filament"
|
||||
ss.dependency "Filament/gltfio_core"
|
||||
end
|
||||
@@ -120,9 +127,9 @@ Pod::Spec.new do |spec|
|
||||
spec.subspec "uberz" do |ss|
|
||||
ss.source_files = "include/uberz/*.h"
|
||||
ss.header_mappings_dir = "include"
|
||||
ss.vendored_frameworks =
|
||||
"lib/libuberzlib.xcframework",
|
||||
"lib/libzstd.xcframework"
|
||||
ss.vendored_libraries =
|
||||
"lib/universal/libuberzlib.a",
|
||||
"lib/universal/libzstd.a"
|
||||
ss.header_dir = "uberz"
|
||||
ss.dependency "Filament/filamat"
|
||||
ss.dependency "Filament/tsl"
|
||||
|
||||
@@ -47,16 +47,14 @@ build Filament in Release mode, replace `debug` with `release` in the above `bui
|
||||
|
||||
If you also want to be able to run on the iOS simulator, add the `-s` flag to the `build.sh`
|
||||
command. For example, the following command will build for both devices (ARM64) and the simulator
|
||||
(both Apple silicon `arm64` and Intel `x86_64`) in Debug mode:
|
||||
(x86_64) in Debug mode:
|
||||
|
||||
```
|
||||
$ ./build.sh -s -p ios -i debug
|
||||
```
|
||||
|
||||
When building for the simulator, the samples link against the libraries present in
|
||||
`out/ios-debug/filament/lib/arm64` (Apple silicon simulators) or
|
||||
`out/ios-debug/filament/lib/x86_64` (Intel simulators). The Filament `.xcframework`s expose both
|
||||
slices, so Xcode automatically picks the right one for the active simulator runtime.
|
||||
When building for the simulator, the sample will then link against the libraries present in
|
||||
`out/ios-debug/filament/lib/x86_64`.
|
||||
|
||||
## Xcode
|
||||
|
||||
@@ -90,20 +88,17 @@ from scratch.
|
||||
|
||||
## XcodeGen
|
||||
|
||||
[XcodeGen](https://github.com/yonaskolb/XcodeGen) is used to generate the Xcode projects. While not
|
||||
required to run the samples, XcodeGen makes modifying them easier. Each sample folder contains the
|
||||
`project.yml` file used for the sample, which includes a global `app-template.yml` file. Either run
|
||||
[XcodeGen](https://github.com/yonaskolb/XcodeGen) version 2.43.0 is used to generate the Xcode
|
||||
projects. While not required to run the samples, XcodeGen makes modifying them easier. Each sample
|
||||
folder contains the `project.yml` file used for the sample, which includes a global
|
||||
`app-template.yml` file. Simply run
|
||||
|
||||
```
|
||||
$ xcodegen
|
||||
```
|
||||
|
||||
within a sample folder, or run `./generate-samples.sh` from this directory to regenerate all of
|
||||
them at once.
|
||||
|
||||
The committed `project.pbxproj` files use `objectVersion = 77`, which requires **Xcode 16 or newer**
|
||||
to open. CI pins Xcode 16.2 for this reason. You may need to close and re-open the project in Xcode
|
||||
to see changes take effect.
|
||||
within a sample folder to re-generate the Xcode project. You may need to close and re-open the
|
||||
project in Xcode to see changes take effect.
|
||||
|
||||
## Building iOS Samples with ASan / UBSan
|
||||
|
||||
|
||||
@@ -13,35 +13,30 @@ targetTemplates:
|
||||
- path: ${target_name}/Materials
|
||||
buildPhase: none
|
||||
optional: true
|
||||
dependencies:
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework
|
||||
- framework: ../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework
|
||||
scheme:
|
||||
configVariants:
|
||||
- Metal
|
||||
- OpenGL
|
||||
settings:
|
||||
base:
|
||||
OTHER_LDFLAGS: ["-lfilament", "-lbackend", "-lfilaflat", "-lktxreader",
|
||||
"-lfilabridge", "-lutils", "-lsmol-v", "-lgeometry", "-libl",
|
||||
"-labseil", "-lzstd"]
|
||||
ENABLE_BITCODE: NO
|
||||
CLANG_CXX_LANGUAGE_STANDARD: c++20
|
||||
# This allows users to not have to specify a unique bundle ID when building the sample apps.
|
||||
SAMPLE_CODE_DISAMBIGUATOR: ${DEVELOPMENT_TEAM}
|
||||
configs:
|
||||
debug:
|
||||
FILAMENT_OUT_NAME: ios-debug
|
||||
HEADER_SEARCH_PATHS: ["$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", "generated"]
|
||||
HEADER_SEARCH_PATHS: ["../../../out/ios-debug/filament/include", "generated"]
|
||||
LIBRARY_SEARCH_PATHS:
|
||||
- "../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)"
|
||||
- "../../../out/ios-debug/filament/lib/universal"
|
||||
release:
|
||||
FILAMENT_OUT_NAME: ios-release
|
||||
HEADER_SEARCH_PATHS: ["$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include", "generated"]
|
||||
HEADER_SEARCH_PATHS: ["../../../out/ios-release/filament/include", "generated"]
|
||||
LIBRARY_SEARCH_PATHS:
|
||||
- "../../../out/ios-release/filament/lib/$(CURRENT_ARCH)"
|
||||
- "../../../out/ios-release/filament/lib/universal"
|
||||
metal:
|
||||
GCC_PREPROCESSOR_DEFINITIONS: ["FILAMENT_APP_USE_METAL=1", "$(inherited)"]
|
||||
opengl:
|
||||
|
||||
@@ -3,117 +3,34 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0DE5DD77BF1B9049D63B76D0 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7C969D515221A7739C68F3AC /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
20863805FC626BF952BA3275 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 33D80A4472074C601C57C773 /* ViewController.mm */; };
|
||||
2AABB2C1262EBA9553666078 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
305D6C983D22F7BC74FC76C7 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED51915983DAE97083D44EF /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
32AC9F2183DD11F130D4A91D /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 912652335565C18B252345DE /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
376F63E72973F07BF618082D /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */; };
|
||||
3D73E90782CC3A2124DF046F /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */; };
|
||||
477A2A67D32B7A3AF2E7B2F4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */; };
|
||||
66014C413BCBF00E8E6DAF76 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */; };
|
||||
6A5D5E984CA862B943742745 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6C8A7D49A8F689E20D60F4D4 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED51915983DAE97083D44EF /* libabseil.xcframework */; };
|
||||
7D8D3494388D7BF4D9FE4FCE /* libfilamat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */; };
|
||||
7E671E777FDB5F34AAA13D5A /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C969D515221A7739C68F3AC /* libutils.xcframework */; };
|
||||
8095A6D37F6F1C9C13BBFEA8 /* libfilamat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
8402B2AC6D081D1E8E065552 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */; };
|
||||
88C039F10343B8598FD5FF7F /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */; };
|
||||
91CCBA3BA96DC289D0E8E975 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = AE6C78F32A0494087B0CEF32 /* main.mm */; };
|
||||
AA5AB498C5A6117057B06824 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
AE63AFEA7E7D507BB677C158 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8632D4625CFCBD32A46772B5 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B3684DB18E82C867020294F1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FDB89AD408A508D6CB74C32 /* AppDelegate.m */; };
|
||||
BFE92829375EE1DBA1E4A689 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
C74DDEF71B6F3C060BB56189 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B63A6E45E40F58037ABD8F84 /* Main.storyboard */; };
|
||||
C8C8BF3416B9B37003F1031E /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D0E54C592A378E549C96A54D /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D1E30700B368B5F84196FD97 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D472EB54D462394FE99DCE2B /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1E30700B368B5F84196FD97 /* libibl.xcframework */; };
|
||||
D5B2F0A85F7C6F352AA99DF1 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */; };
|
||||
E090ED826EE54CA2EA611D83 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
E6163776920A1643B1ED01FA /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */; };
|
||||
F5E844BFD77174F770543A87 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 912652335565C18B252345DE /* libfilament.xcframework */; };
|
||||
FB393C813D7A30404A2DEF23 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */; };
|
||||
FC9D623AC5CF31BA9FB0C47B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 93394D7D4A78C56A2BD31A7D /* Assets.xcassets */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
0ABB76F2D4011A4AF5186FCA /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
32AC9F2183DD11F130D4A91D /* libfilament.xcframework in Embed Frameworks */,
|
||||
AE63AFEA7E7D507BB677C158 /* libbackend.xcframework in Embed Frameworks */,
|
||||
AA5AB498C5A6117057B06824 /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
C8C8BF3416B9B37003F1031E /* libktxreader.xcframework in Embed Frameworks */,
|
||||
BFE92829375EE1DBA1E4A689 /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
0DE5DD77BF1B9049D63B76D0 /* libutils.xcframework in Embed Frameworks */,
|
||||
2AABB2C1262EBA9553666078 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
6A5D5E984CA862B943742745 /* libgeometry.xcframework in Embed Frameworks */,
|
||||
D0E54C592A378E549C96A54D /* libibl.xcframework in Embed Frameworks */,
|
||||
305D6C983D22F7BC74FC76C7 /* libabseil.xcframework in Embed Frameworks */,
|
||||
E090ED826EE54CA2EA611D83 /* libzstd.xcframework in Embed Frameworks */,
|
||||
8095A6D37F6F1C9C13BBFEA8 /* libfilamat.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
056C16E7805E8D33D4C8F7B4 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
0ED51915983DAE97083D44EF /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
13DDE7723EC1A6EFCA4D2D58 /* backend-test.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "backend-test.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
17364ECD407006EEBDC06024 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
276A0ADD5B521719BBB1DA21 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
33D80A4472074C601C57C773 /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; };
|
||||
4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
5FDB89AD408A508D6CB74C32 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
603475CEE63507AA04A9B21A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
7C969D515221A7739C68F3AC /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
8632D4625CFCBD32A46772B5 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
912652335565C18B252345DE /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
93394D7D4A78C56A2BD31A7D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
A283B2D6DB365368855E2D7A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
AE6C78F32A0494087B0CEF32 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
|
||||
B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = "<group>"; };
|
||||
C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilamat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilamat.xcframework"; sourceTree = "<group>"; };
|
||||
C76230D48038E8109EC121B0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
D1E30700B368B5F84196FD97 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
5E31B50ED1338E6ADE1FA49A /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F5E844BFD77174F770543A87 /* libfilament.xcframework in Frameworks */,
|
||||
8402B2AC6D081D1E8E065552 /* libbackend.xcframework in Frameworks */,
|
||||
3D73E90782CC3A2124DF046F /* libfilaflat.xcframework in Frameworks */,
|
||||
FB393C813D7A30404A2DEF23 /* libktxreader.xcframework in Frameworks */,
|
||||
88C039F10343B8598FD5FF7F /* libfilabridge.xcframework in Frameworks */,
|
||||
7E671E777FDB5F34AAA13D5A /* libutils.xcframework in Frameworks */,
|
||||
D5B2F0A85F7C6F352AA99DF1 /* libsmol-v.xcframework in Frameworks */,
|
||||
66014C413BCBF00E8E6DAF76 /* libgeometry.xcframework in Frameworks */,
|
||||
D472EB54D462394FE99DCE2B /* libibl.xcframework in Frameworks */,
|
||||
6C8A7D49A8F689E20D60F4D4 /* libabseil.xcframework in Frameworks */,
|
||||
E6163776920A1643B1ED01FA /* libzstd.xcframework in Frameworks */,
|
||||
7D8D3494388D7BF4D9FE4FCE /* libfilamat.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
05CA69F10D830E40A8FB561D /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -127,30 +44,10 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FE198F0E1EF047534F8F3128 /* backend-test */,
|
||||
81BF22C13654E58F622E6BEC /* Frameworks */,
|
||||
05CA69F10D830E40A8FB561D /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
81BF22C13654E58F622E6BEC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0ED51915983DAE97083D44EF /* libabseil.xcframework */,
|
||||
8632D4625CFCBD32A46772B5 /* libbackend.xcframework */,
|
||||
B2A3753419FC4A7D4C039868 /* libfilabridge.xcframework */,
|
||||
9E8375B927AFDFD1069016D1 /* libfilaflat.xcframework */,
|
||||
C4BDDF85AADA2069C0F9FBAE /* libfilamat.xcframework */,
|
||||
912652335565C18B252345DE /* libfilament.xcframework */,
|
||||
DB3F32D8D3D7310FA3A0C1A1 /* libgeometry.xcframework */,
|
||||
D1E30700B368B5F84196FD97 /* libibl.xcframework */,
|
||||
19CBBB6C426E8D038BDAC97B /* libktxreader.xcframework */,
|
||||
8F108854ADC54BBAA29C2055 /* libsmol-v.xcframework */,
|
||||
7C969D515221A7739C68F3AC /* libutils.xcframework */,
|
||||
4C3E6E0AB2BA7D686E424D8F /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FE198F0E1EF047534F8F3128 /* backend-test */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -160,11 +57,11 @@
|
||||
056C16E7805E8D33D4C8F7B4 /* FilamentView.h */,
|
||||
B54DFEB4DB6ACC0289FA3046 /* FilamentView.mm */,
|
||||
A283B2D6DB365368855E2D7A /* Info.plist */,
|
||||
EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */,
|
||||
AE6C78F32A0494087B0CEF32 /* main.mm */,
|
||||
B63A6E45E40F58037ABD8F84 /* Main.storyboard */,
|
||||
276A0ADD5B521719BBB1DA21 /* ViewController.h */,
|
||||
33D80A4472074C601C57C773 /* ViewController.mm */,
|
||||
EB0A767D257F3D05BE9F0960 /* LaunchScreen.storyboard */,
|
||||
B63A6E45E40F58037ABD8F84 /* Main.storyboard */,
|
||||
);
|
||||
path = "backend-test";
|
||||
sourceTree = "<group>";
|
||||
@@ -178,8 +75,6 @@
|
||||
buildPhases = (
|
||||
445863ED54C294354A388281 /* Sources */,
|
||||
BD71575ED7ED3237FEFD94C7 /* Resources */,
|
||||
5E31B50ED1338E6ADE1FA49A /* Frameworks */,
|
||||
0ABB76F2D4011A4AF5186FCA /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -200,10 +95,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = E89E1EEA671E49DBAC9D5A9C /* Build configuration list for PBXProject "backend-test" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -212,8 +106,7 @@
|
||||
);
|
||||
mainGroup = 3D2B936C924E0DB70941EE6D;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = 05CA69F10D830E40A8FB561D /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -275,7 +168,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -331,17 +224,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "backend-test/Info.plist";
|
||||
@@ -350,8 +238,24 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a",
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilamat",
|
||||
"-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
@@ -366,7 +270,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -429,17 +333,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "backend-test/Info.plist";
|
||||
@@ -448,8 +347,24 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a",
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilamat",
|
||||
"-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
@@ -464,7 +379,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -520,17 +435,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "backend-test/Info.plist";
|
||||
@@ -539,8 +449,24 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a",
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilamat",
|
||||
"-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
@@ -556,17 +482,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "backend-test/Info.plist";
|
||||
@@ -575,8 +496,24 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a",
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilamat",
|
||||
"-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.backend-test";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
@@ -591,7 +528,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
|
||||
@@ -6,10 +6,8 @@ targets:
|
||||
backend-test:
|
||||
templates:
|
||||
- FilamentApp
|
||||
dependencies:
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilamat.xcframework
|
||||
settings:
|
||||
base:
|
||||
# Because each test case is a separate file, the -force_load flag is necessary to prevent the
|
||||
# linker from removing "unused" symbols.
|
||||
OTHER_LDFLAGS: ["-force_load $(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/lib/$(CURRENT_ARCH)-$(PLATFORM_NAME)/libbackend_test.a"]
|
||||
OTHER_LDFLAGS: ["-lfilamat", "-force_load ../../../out/ios-debug/filament/lib/arm64/libbackend_test.a"]
|
||||
|
||||
@@ -10,7 +10,7 @@ set -e
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
|
||||
cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
|
||||
# Ensure that the required tools are present in the out/ directory.
|
||||
# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.
|
||||
|
||||
@@ -3,178 +3,40 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
00101E55E74547D6C2FD8C03 /* default_env_ibl.ktx in Resources */ = {isa = PBXBuildFile; fileRef = A027015F6F283E92C379F0B1 /* default_env_ibl.ktx */; };
|
||||
0A6463A23D9E0C766EF24559 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */; };
|
||||
10A51B4DB601FEF9A6F1C0E3 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 61B9468E1B7FED7F00513152 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
10EB5B0EBD334A09BFC3B9DF /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */; };
|
||||
1297B48507BF2849751AE0E6 /* FILViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3B5A2C1598614ED63098A783 /* FILViewController.mm */; };
|
||||
1404696E6E1E5E4D265773B8 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */; };
|
||||
14D3627324AE91F7B9C74745 /* libuberzlib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
174327B08EFFA8255829FF49 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFC9093A6EF27302A37326E /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1E42FEC5AE043BDDCE3CB0A4 /* libcamutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
22EBD00922E4FBAE5F20AF3B /* libviewer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52712E0BD50CA883190B6C1D /* libviewer.xcframework */; };
|
||||
285A74424AF5E3014363F8E6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14BA4B8B6A697847DA9934D2 /* Main.storyboard */; };
|
||||
2B0B9C8428D402D919CAC47E /* libimageio-lite.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */; };
|
||||
318A6749D6D4258385B67447 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75EFC385D49A53E005466F45 /* libzstd.xcframework */; };
|
||||
36E0764917CB1EE729C6B771 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CF656283054DABCE73A96F57 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
379B9C62A9AB782FDBC0E16C /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BFA0007FC472C65083E2452 /* libabseil.xcframework */; };
|
||||
3CF14DE9557B15702D1CC5A9 /* libstb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 487A93E37417074697C5AEE1 /* libstb.xcframework */; };
|
||||
4033B9273D8B4C4631200EC1 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F6D55F40189E2AD59138BFC /* libimage.xcframework */; };
|
||||
453F7CCB3A029F9604857C1C /* FILModelView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F16324F2F287CB27E1A84EB /* FILModelView.mm */; };
|
||||
45F28F70A616F4B5C67FEC66 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */; };
|
||||
4C287DB6F93BD352927F003A /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6BFA0007FC472C65083E2452 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
4FE0C24C9B962C9F7439C9D4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7EE9D5DD74F1A740C0D88 /* main.m */; };
|
||||
58EBAAC97B7EA63E102CDCDB /* BusterDrone in Resources */ = {isa = PBXBuildFile; fileRef = 7F78E613984102280C822052 /* BusterDrone */; };
|
||||
5C706EF98086B64B4CB3EF9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A0A866F9B1B8D315E88D3D12 /* AppDelegate.m */; };
|
||||
5FA818045C43856C7FFED3DB /* libcivetweb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B41054C75146CF46900EB674 /* libcivetweb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
60EB0B4391BB0FB171A4481D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */; };
|
||||
698BA8E8638E7BD46D6BC337 /* libcamutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */; };
|
||||
700D3E15E852F06C5D8AD28B /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 515259657B354C8F37272D16 /* libfilament.xcframework */; };
|
||||
701EA9C2DFA93FC8D27E4831 /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8F6D55F40189E2AD59138BFC /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7922299F8548416D6E8504AB /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7FB58BE1AF39FD8710F6903E /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 75EFC385D49A53E005466F45 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
847436C12F9597E494EDD811 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */; };
|
||||
872D52205E6A17C440CEFB8B /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CFC9093A6EF27302A37326E /* libbackend.xcframework */; };
|
||||
8949CFB77397BDDBB71B155C /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF656283054DABCE73A96F57 /* libfilaflat.xcframework */; };
|
||||
8A03666082048B85BDE1C1CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 21CA7296309BBFADBB0B00C3 /* LaunchScreen.storyboard */; };
|
||||
902D317731C0347ED896B7D2 /* libuberzlib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */; };
|
||||
A5D1D0F914C22A76A15EF93E /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
A6C04B690A802EBF133E23C4 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 515259657B354C8F37272D16 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
A7C7D42BDE57B77CB9D9C5D2 /* default_env_skybox.ktx in Resources */ = {isa = PBXBuildFile; fileRef = 5271315876D6BC61346DFD97 /* default_env_skybox.ktx */; };
|
||||
AB07A9DD1861F9233ADC5A9F /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4D2FB034B2AD911A82D44F4E /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
AE30134D543B24298D96BC03 /* libdracodec.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
AEDF1CEAF183E92426DA594A /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
AFAD827230601E60E38FA771 /* libstb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 487A93E37417074697C5AEE1 /* libstb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B54C62933C17714E465A76A5 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 91CAACDECFDED76D0DBD8404 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
C0D8E3E2C38F674A23427224 /* libuberarchive.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
C427F6D58A977156565AE677 /* libcivetweb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B41054C75146CF46900EB674 /* libcivetweb.xcframework */; };
|
||||
C7A64F27B1A83023C1212E1C /* libdracodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */; };
|
||||
CB3A6143B788613B58BAB28A /* libgltfio_core.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */; };
|
||||
CDD73BDF196F559F671AE616 /* libbasis_transcoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D3AE8B47D9F8509C8A875E39 /* libgltfio_core.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D89F33EFEDE5814BFA8D9892 /* libimageio-lite.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D93CA0A2E8A487D040934121 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
EFBDF01BC780CE2F40B83CE0 /* libbasis_transcoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */; };
|
||||
F14C52ECDB8C27794AD54DB0 /* libuberarchive.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */; };
|
||||
F5B36F9395DFC29EA677B406 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */; };
|
||||
F682DAD214D9F8E2DD36A110 /* libviewer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52712E0BD50CA883190B6C1D /* libviewer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
FC3919370067F7747B9C4C53 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
26182010104312BFB0BA3CE4 /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
A6C04B690A802EBF133E23C4 /* libfilament.xcframework in Embed Frameworks */,
|
||||
174327B08EFFA8255829FF49 /* libbackend.xcframework in Embed Frameworks */,
|
||||
36E0764917CB1EE729C6B771 /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
A5D1D0F914C22A76A15EF93E /* libktxreader.xcframework in Embed Frameworks */,
|
||||
7922299F8548416D6E8504AB /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
B54C62933C17714E465A76A5 /* libutils.xcframework in Embed Frameworks */,
|
||||
D93CA0A2E8A487D040934121 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
10A51B4DB601FEF9A6F1C0E3 /* libgeometry.xcframework in Embed Frameworks */,
|
||||
AB07A9DD1861F9233ADC5A9F /* libibl.xcframework in Embed Frameworks */,
|
||||
4C287DB6F93BD352927F003A /* libabseil.xcframework in Embed Frameworks */,
|
||||
7FB58BE1AF39FD8710F6903E /* libzstd.xcframework in Embed Frameworks */,
|
||||
D3AE8B47D9F8509C8A875E39 /* libgltfio_core.xcframework in Embed Frameworks */,
|
||||
C0D8E3E2C38F674A23427224 /* libuberarchive.xcframework in Embed Frameworks */,
|
||||
701EA9C2DFA93FC8D27E4831 /* libimage.xcframework in Embed Frameworks */,
|
||||
AFAD827230601E60E38FA771 /* libstb.xcframework in Embed Frameworks */,
|
||||
CDD73BDF196F559F671AE616 /* libbasis_transcoder.xcframework in Embed Frameworks */,
|
||||
1E42FEC5AE043BDDCE3CB0A4 /* libcamutils.xcframework in Embed Frameworks */,
|
||||
AE30134D543B24298D96BC03 /* libdracodec.xcframework in Embed Frameworks */,
|
||||
AEDF1CEAF183E92426DA594A /* libmeshoptimizer.xcframework in Embed Frameworks */,
|
||||
F682DAD214D9F8E2DD36A110 /* libviewer.xcframework in Embed Frameworks */,
|
||||
5FA818045C43856C7FFED3DB /* libcivetweb.xcframework in Embed Frameworks */,
|
||||
14D3627324AE91F7B9C74745 /* libuberzlib.xcframework in Embed Frameworks */,
|
||||
D89F33EFEDE5814BFA8D9892 /* libimageio-lite.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
03A535A718B2F64A70C5F231 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
1CFC9093A6EF27302A37326E /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
1ED9318FEC158171D99C0857 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
1F16324F2F287CB27E1A84EB /* FILModelView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FILModelView.mm; sourceTree = "<group>"; };
|
||||
1FF7EE9D5DD74F1A740C0D88 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberarchive.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework"; sourceTree = "<group>"; };
|
||||
2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcamutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcamutils.xcframework"; sourceTree = "<group>"; };
|
||||
2B973C3E0FE0EEED37D41D32 /* FILModelView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FILModelView.h; sourceTree = "<group>"; };
|
||||
3B5A2C1598614ED63098A783 /* FILViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FILViewController.mm; sourceTree = "<group>"; };
|
||||
487A93E37417074697C5AEE1 /* libstb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libstb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework"; sourceTree = "<group>"; };
|
||||
4D2FB034B2AD911A82D44F4E /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbasis_transcoder.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework"; sourceTree = "<group>"; };
|
||||
515259657B354C8F37272D16 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
52712E0BD50CA883190B6C1D /* libviewer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libviewer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libviewer.xcframework"; sourceTree = "<group>"; };
|
||||
5271315876D6BC61346DFD97 /* default_env_skybox.ktx */ = {isa = PBXFileReference; path = default_env_skybox.ktx; sourceTree = "<group>"; };
|
||||
5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgltfio_core.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework"; sourceTree = "<group>"; };
|
||||
60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libimageio-lite.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimageio-lite.xcframework"; sourceTree = "<group>"; };
|
||||
61B9468E1B7FED7F00513152 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
6BFA0007FC472C65083E2452 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
6E6BB885F2B193E786CD9F14 /* FILViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FILViewController.h; sourceTree = "<group>"; };
|
||||
75EFC385D49A53E005466F45 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libdracodec.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework"; sourceTree = "<group>"; };
|
||||
7F78E613984102280C822052 /* BusterDrone */ = {isa = PBXFileReference; lastKnownFileType = folder; name = BusterDrone; path = ../../../third_party/models/BusterDrone; sourceTree = SOURCE_ROOT; };
|
||||
8F6D55F40189E2AD59138BFC /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = "<group>"; };
|
||||
91CAACDECFDED76D0DBD8404 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
9ADEA6DE7305D0B8CCFFA53D /* gltf-viewer.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "gltf-viewer.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A027015F6F283E92C379F0B1 /* default_env_ibl.ktx */ = {isa = PBXFileReference; path = default_env_ibl.ktx; sourceTree = "<group>"; };
|
||||
A0A866F9B1B8D315E88D3D12 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
B41054C75146CF46900EB674 /* libcivetweb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcivetweb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcivetweb.xcframework"; sourceTree = "<group>"; };
|
||||
B9C391BBD90EB54D27F8E4FD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
C7ECAA95F4A55C69B948F806 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
CF656283054DABCE73A96F57 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = "<group>"; };
|
||||
F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberzlib.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
E646271806112A138895CBE3 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
700D3E15E852F06C5D8AD28B /* libfilament.xcframework in Frameworks */,
|
||||
872D52205E6A17C440CEFB8B /* libbackend.xcframework in Frameworks */,
|
||||
8949CFB77397BDDBB71B155C /* libfilaflat.xcframework in Frameworks */,
|
||||
F5B36F9395DFC29EA677B406 /* libktxreader.xcframework in Frameworks */,
|
||||
FC3919370067F7747B9C4C53 /* libfilabridge.xcframework in Frameworks */,
|
||||
847436C12F9597E494EDD811 /* libutils.xcframework in Frameworks */,
|
||||
1404696E6E1E5E4D265773B8 /* libsmol-v.xcframework in Frameworks */,
|
||||
0A6463A23D9E0C766EF24559 /* libgeometry.xcframework in Frameworks */,
|
||||
10EB5B0EBD334A09BFC3B9DF /* libibl.xcframework in Frameworks */,
|
||||
379B9C62A9AB782FDBC0E16C /* libabseil.xcframework in Frameworks */,
|
||||
318A6749D6D4258385B67447 /* libzstd.xcframework in Frameworks */,
|
||||
CB3A6143B788613B58BAB28A /* libgltfio_core.xcframework in Frameworks */,
|
||||
F14C52ECDB8C27794AD54DB0 /* libuberarchive.xcframework in Frameworks */,
|
||||
4033B9273D8B4C4631200EC1 /* libimage.xcframework in Frameworks */,
|
||||
3CF14DE9557B15702D1CC5A9 /* libstb.xcframework in Frameworks */,
|
||||
EFBDF01BC780CE2F40B83CE0 /* libbasis_transcoder.xcframework in Frameworks */,
|
||||
698BA8E8638E7BD46D6BC337 /* libcamutils.xcframework in Frameworks */,
|
||||
C7A64F27B1A83023C1212E1C /* libdracodec.xcframework in Frameworks */,
|
||||
60EB0B4391BB0FB171A4481D /* libmeshoptimizer.xcframework in Frameworks */,
|
||||
22EBD00922E4FBAE5F20AF3B /* libviewer.xcframework in Frameworks */,
|
||||
C427F6D58A977156565AE677 /* libcivetweb.xcframework in Frameworks */,
|
||||
902D317731C0347ED896B7D2 /* libuberzlib.xcframework in Frameworks */,
|
||||
2B0B9C8428D402D919CAC47E /* libimageio-lite.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
2678CEA2FDBFE6D6DC1D4D71 /* gltf-viewer */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -203,8 +65,8 @@
|
||||
children = (
|
||||
DF545E3F8FD553E334F5D6D6 /* Assets.xcassets */,
|
||||
B9C391BBD90EB54D27F8E4FD /* Info.plist */,
|
||||
1FF7EE9D5DD74F1A740C0D88 /* main.m */,
|
||||
21CA7296309BBFADBB0B00C3 /* LaunchScreen.storyboard */,
|
||||
1FF7EE9D5DD74F1A740C0D88 /* main.m */,
|
||||
14BA4B8B6A697847DA9934D2 /* Main.storyboard */,
|
||||
);
|
||||
path = SupportFiles;
|
||||
@@ -216,41 +78,10 @@
|
||||
7F78E613984102280C822052 /* BusterDrone */,
|
||||
E102A6C527928715EF7B0497 /* default_env */,
|
||||
2678CEA2FDBFE6D6DC1D4D71 /* gltf-viewer */,
|
||||
8826A1E62E0B87AA4A9982D5 /* Frameworks */,
|
||||
3BFD6EBD6D97D6F1C40F1C90 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8826A1E62E0B87AA4A9982D5 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6BFA0007FC472C65083E2452 /* libabseil.xcframework */,
|
||||
1CFC9093A6EF27302A37326E /* libbackend.xcframework */,
|
||||
4EDA245B8F43311DD75A1F81 /* libbasis_transcoder.xcframework */,
|
||||
2B534EACCD70A2DA1623F743 /* libcamutils.xcframework */,
|
||||
B41054C75146CF46900EB674 /* libcivetweb.xcframework */,
|
||||
7A57517D52C2BDCA859338D1 /* libdracodec.xcframework */,
|
||||
020557AD44AE2D4F9D99EC33 /* libfilabridge.xcframework */,
|
||||
CF656283054DABCE73A96F57 /* libfilaflat.xcframework */,
|
||||
515259657B354C8F37272D16 /* libfilament.xcframework */,
|
||||
61B9468E1B7FED7F00513152 /* libgeometry.xcframework */,
|
||||
5B9B11A731D26A94397D4B9B /* libgltfio_core.xcframework */,
|
||||
4D2FB034B2AD911A82D44F4E /* libibl.xcframework */,
|
||||
8F6D55F40189E2AD59138BFC /* libimage.xcframework */,
|
||||
60330C4B6F21AA47B5524999 /* libimageio-lite.xcframework */,
|
||||
AF19593AAD6D35C6A9198C27 /* libktxreader.xcframework */,
|
||||
F696C8553E8CC1A6416678CB /* libmeshoptimizer.xcframework */,
|
||||
C766C894259479FC62B7C8B4 /* libsmol-v.xcframework */,
|
||||
487A93E37417074697C5AEE1 /* libstb.xcframework */,
|
||||
25D5A93890B91F8C86BE2F0A /* libuberarchive.xcframework */,
|
||||
F7030A0C0BABAD05CDEAFDE8 /* libuberzlib.xcframework */,
|
||||
91CAACDECFDED76D0DBD8404 /* libutils.xcframework */,
|
||||
52712E0BD50CA883190B6C1D /* libviewer.xcframework */,
|
||||
75EFC385D49A53E005466F45 /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E102A6C527928715EF7B0497 /* default_env */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -271,8 +102,6 @@
|
||||
0B375996CE4EBC4A5B258C27 /* Build Resources */,
|
||||
C8F38C978C83CD5335A21F72 /* Sources */,
|
||||
7D3B1B99EEAFB6F53ECBAA5A /* Resources */,
|
||||
E646271806112A138895CBE3 /* Frameworks */,
|
||||
26182010104312BFB0BA3CE4 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -293,10 +122,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 90327DE42AE5DF12C4BD2113 /* Build configuration list for PBXProject "gltf-viewer" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -305,8 +133,7 @@
|
||||
);
|
||||
mainGroup = 7DB4500696DB13904CDF40C4;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = 3BFD6EBD6D97D6F1C40F1C90 /* Products */;
|
||||
preferredProjectObjectVersion = 56;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -340,7 +167,7 @@
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
../../../third_party/environments/lightroom_14b.hdr,
|
||||
"$(SRCROOT)/../../../third_party/environments/lightroom_14b.hdr",
|
||||
);
|
||||
name = "Build Resources";
|
||||
outputFileListPaths = (
|
||||
@@ -351,7 +178,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The gltf-viewer app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/default_env\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/lightroom_14b.hdr\"\n";
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The gltf-viewer app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/default_env\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/lightroom_14b.hdr\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -395,7 +222,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -457,7 +284,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -512,7 +339,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -568,17 +395,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist";
|
||||
@@ -587,6 +409,36 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-lstb",
|
||||
"-lbasis_transcoder",
|
||||
"-lzstd",
|
||||
"-lcamutils",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lviewer",
|
||||
"-lcivetweb",
|
||||
"-luberzlib",
|
||||
"-limageio-lite",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -601,17 +453,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist";
|
||||
@@ -620,6 +467,36 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-lstb",
|
||||
"-lbasis_transcoder",
|
||||
"-lzstd",
|
||||
"-lcamutils",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lviewer",
|
||||
"-lcivetweb",
|
||||
"-luberzlib",
|
||||
"-limageio-lite",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -633,7 +510,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -696,17 +573,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist";
|
||||
@@ -715,6 +587,36 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-lstb",
|
||||
"-lbasis_transcoder",
|
||||
"-lzstd",
|
||||
"-lcamutils",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lviewer",
|
||||
"-lcivetweb",
|
||||
"-luberzlib",
|
||||
"-limageio-lite",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -729,17 +631,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "gltf-viewer/SupportFiles/Info.plist";
|
||||
@@ -748,6 +645,36 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-lstb",
|
||||
"-lbasis_transcoder",
|
||||
"-lzstd",
|
||||
"-lcamutils",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lviewer",
|
||||
"-lcivetweb",
|
||||
"-luberzlib",
|
||||
"-limageio-lite",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.gltf-viewer";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
|
||||
@@ -17,24 +17,16 @@ targets:
|
||||
optional: true
|
||||
templates:
|
||||
- FilamentApp
|
||||
dependencies:
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcamutils.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libviewer.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libcivetweb.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimageio-lite.xcframework
|
||||
settings:
|
||||
base:
|
||||
OTHER_LDFLAGS: ["-lgltfio_core", "-luberarchive", "-limage", "-lstb", "-lbasis_transcoder",
|
||||
"-lzstd", "-lcamutils", "-ldracodec", "-lmeshoptimizer", "-lviewer", "-lcivetweb",
|
||||
"-luberzlib", "-limageio-lite"]
|
||||
preBuildScripts:
|
||||
- path: build-resources.sh
|
||||
name: Build Resources
|
||||
inputFiles:
|
||||
- ../../../third_party/environments/lightroom_14b.hdr
|
||||
- $(SRCROOT)/../../../third_party/environments/lightroom_14b.hdr
|
||||
outputFiles:
|
||||
- $(SRCROOT)/generated/default_env/default_env_ibl.ktx
|
||||
- $(SRCROOT)/generated/default_env/default_env_skybox.ktx
|
||||
|
||||
@@ -14,10 +14,10 @@ set -e
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
|
||||
filamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`
|
||||
matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
filamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`
|
||||
matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
|
||||
# Ensure that the required tools are present in the out/ directory.
|
||||
# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.
|
||||
|
||||
@@ -3,113 +3,44 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
01DEF0C8AAF14D275D5E731B /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
0704BBFECEFCE6618E4A67F7 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
072B1333A85F99F6FBA10846 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E238CF2D5E37556427C00675 /* libzstd.xcframework */; };
|
||||
091D995885B1312DA4322F31 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */; };
|
||||
11DE997161B2D3272247EE72 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9E445414106E7103104FC16C /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1EFC9E499E3733CF230DAECB /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DB899E40418A88883E6ED2E4 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
2956D56161744254E2FFD353 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */; };
|
||||
2B4ED44D08F36953D3D111CF /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
4FAC85567A730FCCB7B3B6EC /* FilamentApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CF21F54926F34F027F4FCEA4 /* FilamentApp.cpp */; };
|
||||
50F0F62A949F9DB17E1E102D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */; };
|
||||
5432120E716355C4A519ABC6 /* FilamentArViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AA47852B486CBD549FA68729 /* FilamentArViewController.mm */; };
|
||||
5FEA2EC1B8A6FECCACA5FAFA /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 644F36437FC03CCC25AC6EFC /* libutils.xcframework */; };
|
||||
66754FE8EF26B5335C0CC9FF /* FullScreenTriangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 05D9AFA7CFC6498FE2A8C6A5 /* FullScreenTriangle.cpp */; };
|
||||
6D2DAB291A29345E5179ECD8 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 87261693EC970989615C5AE7 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6DF5D6B097AC3C124C576DD1 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */; };
|
||||
819CEF9004BAA1BD59EB3ADE /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8E5A38F197D487277FDED20 /* libktxreader.xcframework */; };
|
||||
84AC34B44E1AEE96BA8C53B0 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 586F9BE85A436EBA56181848 /* libimage.xcframework */; };
|
||||
85C9CA885D3E9BA87AEA24E8 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
89E16D259F951AA787C3B265 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 644F36437FC03CCC25AC6EFC /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
9718E9B12B1D353DF9E66311 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6422176EDC22262D20C51A8 /* libibl.xcframework */; };
|
||||
99BD70EFF08A1419FE539A44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AE684A73135705C4EDAA7C53 /* Assets.xcassets */; };
|
||||
ACF87F0F3989EF583E90E499 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B92BD0FA8E6F9CFEAE1707 /* main.m */; };
|
||||
AE4035E76423745AFC8CEB58 /* libfilameshio.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
AEEFE325E8BDB00E30FDEC93 /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = DD0010D60097DEAA82DAA089 /* Resources.S */; };
|
||||
B28ED2F81785F13E0B9A3607 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EC652AC3D2C91759215320C3 /* AppDelegate.m */; };
|
||||
B48D41A39CF5F4FDE5CF6770 /* libfilameshio.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */; };
|
||||
B604AB5F246840D2CCF4762B /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */; };
|
||||
B8934FC46557424E705A2154 /* ARKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33B2CBA1A0F654632B39A45D /* ARKit.framework */; };
|
||||
BC6AAB72CD468EF04F684014 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB899E40418A88883E6ED2E4 /* libabseil.xcframework */; };
|
||||
CB7C1B8F335B873B77D15934 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
CBBBF68C2F58FF0F4FA81008 /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 586F9BE85A436EBA56181848 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
CE6AB7B76D5EB580EFD90897 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AFCB91D87494B7FC879A7A5E /* Main.storyboard */; };
|
||||
CFCD1B57C3CDFA2AC3525EF6 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87261693EC970989615C5AE7 /* libfilament.xcframework */; };
|
||||
D56834764BC4D127736878DF /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E445414106E7103104FC16C /* libbackend.xcframework */; };
|
||||
DD6C337BAEC527FA0F5DB4A3 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D6422176EDC22262D20C51A8 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
DEF78081F52F6A776242A599 /* FilamentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D025A0625708CC50AEA0DB /* FilamentView.m */; };
|
||||
E4C06B048BFA075CD9FB73AD /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A8E5A38F197D487277FDED20 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
E92B00016D52070448DA66F6 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E238CF2D5E37556427C00675 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
F933D6701B0A0E90381E8030 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C88A8BDFC06D144D80EC052B /* LaunchScreen.storyboard */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
AA70CE1AA47836D72F588764 /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
6D2DAB291A29345E5179ECD8 /* libfilament.xcframework in Embed Frameworks */,
|
||||
11DE997161B2D3272247EE72 /* libbackend.xcframework in Embed Frameworks */,
|
||||
2B4ED44D08F36953D3D111CF /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
E4C06B048BFA075CD9FB73AD /* libktxreader.xcframework in Embed Frameworks */,
|
||||
0704BBFECEFCE6618E4A67F7 /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
89E16D259F951AA787C3B265 /* libutils.xcframework in Embed Frameworks */,
|
||||
85C9CA885D3E9BA87AEA24E8 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
01DEF0C8AAF14D275D5E731B /* libgeometry.xcframework in Embed Frameworks */,
|
||||
DD6C337BAEC527FA0F5DB4A3 /* libibl.xcframework in Embed Frameworks */,
|
||||
1EFC9E499E3733CF230DAECB /* libabseil.xcframework in Embed Frameworks */,
|
||||
E92B00016D52070448DA66F6 /* libzstd.xcframework in Embed Frameworks */,
|
||||
AE4035E76423745AFC8CEB58 /* libfilameshio.xcframework in Embed Frameworks */,
|
||||
CB7C1B8F335B873B77D15934 /* libmeshoptimizer.xcframework in Embed Frameworks */,
|
||||
CBBBF68C2F58FF0F4FA81008 /* libimage.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
05D9AFA7CFC6498FE2A8C6A5 /* FullScreenTriangle.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FullScreenTriangle.cpp; sourceTree = "<group>"; };
|
||||
16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilameshio.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework"; sourceTree = "<group>"; };
|
||||
2AFEFBF6FE91628599F70817 /* clear_coat.mat */ = {isa = PBXFileReference; path = clear_coat.mat; sourceTree = "<group>"; };
|
||||
2AFF66F1228C5F1079042FE2 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
33B2CBA1A0F654632B39A45D /* ARKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARKit.framework; path = System/Library/Frameworks/ARKit.framework; sourceTree = SDKROOT; };
|
||||
4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = "<group>"; };
|
||||
4F8E6B508F8C5DE284DA2E34 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
53D025A0625708CC50AEA0DB /* FilamentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilamentView.m; sourceTree = "<group>"; };
|
||||
586F9BE85A436EBA56181848 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = "<group>"; };
|
||||
5B5D3E611DCDD9CD2C13B825 /* FilamentApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentApp.h; sourceTree = "<group>"; };
|
||||
644F36437FC03CCC25AC6EFC /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
6938BE21CFB8BEB2422BD490 /* FilamentArViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentArViewController.h; sourceTree = "<group>"; };
|
||||
7C5E322BA97EEB4FB7EC030F /* camera_feed.mat */ = {isa = PBXFileReference; path = camera_feed.mat; sourceTree = "<group>"; };
|
||||
87261693EC970989615C5AE7 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
8832D93E678057F9940A226D /* shadow_plane.mat */ = {isa = PBXFileReference; path = shadow_plane.mat; sourceTree = "<group>"; };
|
||||
973EB840E804440B2AA0F93A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
9E445414106E7103104FC16C /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
A85B9D53F72DEE0374F8EBDF /* FullScreenTriangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FullScreenTriangle.h; sourceTree = "<group>"; };
|
||||
A8E5A38F197D487277FDED20 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
AA47852B486CBD549FA68729 /* FilamentArViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentArViewController.mm; sourceTree = "<group>"; };
|
||||
AE684A73135705C4EDAA7C53 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
AF451D7D0FAAD069F916F51C /* MathHelpers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MathHelpers.h; sourceTree = "<group>"; };
|
||||
B6B92BD0FA8E6F9CFEAE1707 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
CF21F54926F34F027F4FCEA4 /* FilamentApp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FilamentApp.cpp; sourceTree = "<group>"; };
|
||||
D0800F9FE0C390D084082637 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
D6422176EDC22262D20C51A8 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
D7BA0AA38645722DCFA3490D /* hello-ar.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-ar.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DB899E40418A88883E6ED2E4 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
DD0010D60097DEAA82DAA089 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = "<group>"; };
|
||||
E238CF2D5E37556427C00675 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
EC652AC3D2C91759215320C3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
FCF16FE1B4146DE87F2B76F3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
@@ -119,21 +50,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CFCD1B57C3CDFA2AC3525EF6 /* libfilament.xcframework in Frameworks */,
|
||||
D56834764BC4D127736878DF /* libbackend.xcframework in Frameworks */,
|
||||
B604AB5F246840D2CCF4762B /* libfilaflat.xcframework in Frameworks */,
|
||||
819CEF9004BAA1BD59EB3ADE /* libktxreader.xcframework in Frameworks */,
|
||||
6DF5D6B097AC3C124C576DD1 /* libfilabridge.xcframework in Frameworks */,
|
||||
5FEA2EC1B8A6FECCACA5FAFA /* libutils.xcframework in Frameworks */,
|
||||
091D995885B1312DA4322F31 /* libsmol-v.xcframework in Frameworks */,
|
||||
2956D56161744254E2FFD353 /* libgeometry.xcframework in Frameworks */,
|
||||
9718E9B12B1D353DF9E66311 /* libibl.xcframework in Frameworks */,
|
||||
BC6AAB72CD468EF04F684014 /* libabseil.xcframework in Frameworks */,
|
||||
072B1333A85F99F6FBA10846 /* libzstd.xcframework in Frameworks */,
|
||||
B8934FC46557424E705A2154 /* ARKit.framework in Frameworks */,
|
||||
B48D41A39CF5F4FDE5CF6770 /* libfilameshio.xcframework in Frameworks */,
|
||||
50F0F62A949F9DB17E1E102D /* libmeshoptimizer.xcframework in Frameworks */,
|
||||
84AC34B44E1AEE96BA8C53B0 /* libimage.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -175,20 +92,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
33B2CBA1A0F654632B39A45D /* ARKit.framework */,
|
||||
DB899E40418A88883E6ED2E4 /* libabseil.xcframework */,
|
||||
9E445414106E7103104FC16C /* libbackend.xcframework */,
|
||||
67D8E02D1AF661E4EF7CC2CD /* libfilabridge.xcframework */,
|
||||
C9D99ABAB340140BF94D57B3 /* libfilaflat.xcframework */,
|
||||
87261693EC970989615C5AE7 /* libfilament.xcframework */,
|
||||
16ED3BF9A0D7194CECB86D55 /* libfilameshio.xcframework */,
|
||||
D3D6EFC9EE7349AC9F4F845A /* libgeometry.xcframework */,
|
||||
D6422176EDC22262D20C51A8 /* libibl.xcframework */,
|
||||
586F9BE85A436EBA56181848 /* libimage.xcframework */,
|
||||
A8E5A38F197D487277FDED20 /* libktxreader.xcframework */,
|
||||
4CA1720B9D4D55AB6B8513B0 /* libmeshoptimizer.xcframework */,
|
||||
D0DE88103BBBE542FC5D46B1 /* libsmol-v.xcframework */,
|
||||
644F36437FC03CCC25AC6EFC /* libutils.xcframework */,
|
||||
E238CF2D5E37556427C00675 /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -198,10 +101,10 @@
|
||||
children = (
|
||||
AE684A73135705C4EDAA7C53 /* Assets.xcassets */,
|
||||
FCF16FE1B4146DE87F2B76F3 /* Info.plist */,
|
||||
B6B92BD0FA8E6F9CFEAE1707 /* main.m */,
|
||||
DD0010D60097DEAA82DAA089 /* Resources.S */,
|
||||
C88A8BDFC06D144D80EC052B /* LaunchScreen.storyboard */,
|
||||
B6B92BD0FA8E6F9CFEAE1707 /* main.m */,
|
||||
AFCB91D87494B7FC879A7A5E /* Main.storyboard */,
|
||||
DD0010D60097DEAA82DAA089 /* Resources.S */,
|
||||
);
|
||||
path = SupportFiles;
|
||||
sourceTree = "<group>";
|
||||
@@ -241,7 +144,6 @@
|
||||
A5598850636B6208AE64E95E /* Sources */,
|
||||
77189A28CB88A4753728F549 /* Resources */,
|
||||
FA9CC5F2D3E84FB632557A2E /* Frameworks */,
|
||||
AA70CE1AA47836D72F588764 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -262,10 +164,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 281E763643B2F1F3B903864B /* Build configuration list for PBXProject "hello-ar" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -274,8 +175,7 @@
|
||||
);
|
||||
mainGroup = 316A56C698744769908E6F88;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = E2EC9706948EC07E74121EF1 /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -314,7 +214,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-ar app requires four resources:\n# 1. The cube mesh\n# 2. The Filament material definition\n# 3. The Filament camera feed material definition\n# 4. The Filament shadow plane material definition\n# 5. The IBL image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/rounded_cube/rounded_cube.obj\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\"\n\n# The matc tool compiles the clear_coat.mat, shadow_plane.mat, and camera_feed.mat materials into\n# Filament material BLOBs.\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/Materials/shadow_plane.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/Materials/camera_feed.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FullScreenTriangle.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/SupportFiles/Resources.S\"\n";
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-ar app requires four resources:\n# 1. The cube mesh\n# 2. The Filament material definition\n# 3. The Filament camera feed material definition\n# 4. The Filament shadow plane material definition\n# 5. The IBL image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/rounded_cube/rounded_cube.obj\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\"\n\n# The matc tool compiles the clear_coat.mat, shadow_plane.mat, and camera_feed.mat materials into\n# Filament material BLOBs.\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/Materials/shadow_plane.mat\"\n\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/Materials/camera_feed.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/cube.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/shadow_plane.filamat\" \\\n \"${PROJECT_DIR}/generated/camera_feed.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FullScreenTriangle.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/FilamentArView/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-ar/SupportFiles/Resources.S\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -362,17 +262,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist";
|
||||
@@ -381,6 +276,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -395,17 +310,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist";
|
||||
@@ -414,6 +324,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -427,7 +357,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -490,17 +420,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist";
|
||||
@@ -509,6 +434,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -522,7 +467,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -584,7 +529,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -640,17 +585,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-ar/SupportFiles/Info.plist";
|
||||
@@ -659,6 +599,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-ar";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -672,7 +632,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
|
||||
@@ -8,9 +8,9 @@ targets:
|
||||
- FilamentApp
|
||||
dependencies:
|
||||
- sdk: ARKit.framework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework
|
||||
settings:
|
||||
base:
|
||||
OTHER_LDFLAGS: ["-lfilameshio", "-lmeshoptimizer", "-limage"]
|
||||
preBuildScripts:
|
||||
- path: build-resources.sh
|
||||
name: Build Resources
|
||||
|
||||
@@ -11,8 +11,8 @@ set -e
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
|
||||
resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
|
||||
# Ensure that the required tools are present in the out/ directory.
|
||||
# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.
|
||||
|
||||
@@ -3,162 +3,44 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0023225ED0F6344A42FDF021 /* libbasis_transcoder.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
032FA0177E5B258A6EFC10FB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */; };
|
||||
0C4676263C3C6F429DE8E1E7 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2ABE8F592F84AD947269C79F /* libabseil.xcframework */; };
|
||||
12FA790CDCF4048A3B3D816B /* libuberzlib.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */; };
|
||||
153DF9C7D86AB76EDBEB3AC4 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1A4585E6153963D89D838344 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51E07CB7D191EE70C8393733 /* libutils.xcframework */; };
|
||||
2101923AA53D391D871C0BCF /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 51E07CB7D191EE70C8393733 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
272268CA1B14AE98DFACDD33 /* libstb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A40EBFD944F94426FBCEDB82 /* libstb.xcframework */; };
|
||||
3153490EB02DE914E6C7B16B /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
3370EF2CC0CD0D08F69CC581 /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */; };
|
||||
357279930C4271E22C329E27 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
372DC481D060CF95FDFA9DD7 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */; };
|
||||
3DA39FBD408D7B6F50822939 /* FilamentViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4544E7FD3EC9BC5C5E4487B7 /* FilamentViewController.mm */; };
|
||||
415CBC815DE6A370EE6DD502 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */; };
|
||||
41E74598143C17C5C2037D67 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
4474017EFFC53567F2369DB8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FEA341C442B210CFD35E4663 /* LaunchScreen.storyboard */; };
|
||||
4F555B8114838AF666F39CD1 /* App.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AF77884F45974610F79F92F /* App.cpp */; };
|
||||
53C4CFCFC54929CEDE416EC5 /* libstb.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A40EBFD944F94426FBCEDB82 /* libstb.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6057DA6A016889B23EE6410F /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6535EDC4F6D3BBCA745C453F /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */; };
|
||||
6D84A7C1AA03C171F01A044D /* libgltfio_core.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6DFCBA84E571F0C5B1683640 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A955859FB96A0B4AA15C36D /* libbackend.xcframework */; };
|
||||
7BFDB88EAFC7B8CE0B571A35 /* libdracodec.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7FD7B7E760C10ACDA64F0890 /* libuberarchive.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */; };
|
||||
8309D337274D6920F81FDFED /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */; };
|
||||
872251D9846351641FFE1EDB /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83035F42A448BDA20C5EC0DB /* libibl.xcframework */; };
|
||||
872990CD06765549CBE6EB85 /* libbasis_transcoder.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */; };
|
||||
899A92E0F0148A9BAE3E7B1A /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = B1B470F3CDEE0D4A60B11C72 /* Resources.S */; };
|
||||
8D82323C866A8429A29903A8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F534BD31E8FB84B3925B0402 /* AppDelegate.m */; };
|
||||
916F7A5DE5031D7523FB1FA1 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
A38DF6C8EA6292F62E9D5F68 /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 481A41C1DE19D71E21CA17C0 /* libimage.xcframework */; };
|
||||
A8004A31F0068178EF0557DA /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6842BC9C9A130CE658B642CB /* libgeometry.xcframework */; };
|
||||
ABF42D2B7081EB39CEC1B43B /* libgltfio_core.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */; };
|
||||
ADE1F0D02BA65C77C6B109AB /* FilamentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84D7269DBC8441140F7F8905 /* FilamentView.m */; };
|
||||
B69E7A38F3A58F7DB4002219 /* libdracodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */; };
|
||||
B766A23145C9D58BB09CB068 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B161015D23D464253ABAF1 /* main.m */; };
|
||||
B9E63A561CEE77D5D0D29A0E /* libuberarchive.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
BFD25191C0BF9804FF3C1B19 /* DamagedHelmet.glb in Resources */ = {isa = PBXBuildFile; fileRef = B299B19218E1CF7B2D13ABB8 /* DamagedHelmet.glb */; };
|
||||
C609C4B4BD4082A399517524 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
CE0DC84646DB51D505E521E9 /* libuberzlib.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
CFADC7EF16411309B0CF08D8 /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D1174ECF9CDDC1EA7DE95840 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 59032D070D1641AA60F6CC2D /* Main.storyboard */; };
|
||||
DB90B94FBBD5F819ED9D1685 /* CameraManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6238AED51F5F46CCFBE6892D /* CameraManipulator.cpp */; };
|
||||
DC96354994E844E3730CBEB7 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 83035F42A448BDA20C5EC0DB /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
E9C1BC8EC1312B0CCEF66A2F /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2ABE8F592F84AD947269C79F /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
F4022ECAAC6BEA543556B428 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */; };
|
||||
FB7DB6BC4ADAEA3F02731E73 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
FBC7DAEE0262EB58EC6BADC9 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
FD9CF0E054C901D1D3E7D6B2 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9555C4935AFD98E079719C07 /* libfilabridge.xcframework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
D5C4D57398FACAA29F2C2549 /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
41E74598143C17C5C2037D67 /* libfilament.xcframework in Embed Frameworks */,
|
||||
357279930C4271E22C329E27 /* libbackend.xcframework in Embed Frameworks */,
|
||||
FBC7DAEE0262EB58EC6BADC9 /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
153DF9C7D86AB76EDBEB3AC4 /* libktxreader.xcframework in Embed Frameworks */,
|
||||
C609C4B4BD4082A399517524 /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
2101923AA53D391D871C0BCF /* libutils.xcframework in Embed Frameworks */,
|
||||
916F7A5DE5031D7523FB1FA1 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
6057DA6A016889B23EE6410F /* libgeometry.xcframework in Embed Frameworks */,
|
||||
DC96354994E844E3730CBEB7 /* libibl.xcframework in Embed Frameworks */,
|
||||
E9C1BC8EC1312B0CCEF66A2F /* libabseil.xcframework in Embed Frameworks */,
|
||||
CFADC7EF16411309B0CF08D8 /* libzstd.xcframework in Embed Frameworks */,
|
||||
6D84A7C1AA03C171F01A044D /* libgltfio_core.xcframework in Embed Frameworks */,
|
||||
B9E63A561CEE77D5D0D29A0E /* libuberarchive.xcframework in Embed Frameworks */,
|
||||
3153490EB02DE914E6C7B16B /* libimage.xcframework in Embed Frameworks */,
|
||||
7BFDB88EAFC7B8CE0B571A35 /* libdracodec.xcframework in Embed Frameworks */,
|
||||
FB7DB6BC4ADAEA3F02731E73 /* libmeshoptimizer.xcframework in Embed Frameworks */,
|
||||
0023225ED0F6344A42FDF021 /* libbasis_transcoder.xcframework in Embed Frameworks */,
|
||||
53C4CFCFC54929CEDE416EC5 /* libstb.xcframework in Embed Frameworks */,
|
||||
CE0DC84646DB51D505E521E9 /* libuberzlib.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgltfio_core.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework"; sourceTree = "<group>"; };
|
||||
07D735319AF2DC69DB8981FE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
0AF0F63216DE40C526ABFABF /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberarchive.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework"; sourceTree = "<group>"; };
|
||||
18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbasis_transcoder.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework"; sourceTree = "<group>"; };
|
||||
190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
2ABE8F592F84AD947269C79F /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
31A71C869E24044EA5F802D5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
3259514676E5E799670D0F86 /* CameraManipulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CameraManipulator.h; sourceTree = "<group>"; };
|
||||
3AF77884F45974610F79F92F /* App.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = App.cpp; sourceTree = "<group>"; };
|
||||
3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
4544E7FD3EC9BC5C5E4487B7 /* FilamentViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentViewController.mm; sourceTree = "<group>"; };
|
||||
47B161015D23D464253ABAF1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
481A41C1DE19D71E21CA17C0 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = "<group>"; };
|
||||
4A955859FB96A0B4AA15C36D /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
51E07CB7D191EE70C8393733 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
6238AED51F5F46CCFBE6892D /* CameraManipulator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CameraManipulator.cpp; sourceTree = "<group>"; };
|
||||
6842BC9C9A130CE658B642CB /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
83035F42A448BDA20C5EC0DB /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
84D7269DBC8441140F7F8905 /* FilamentView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilamentView.m; sourceTree = "<group>"; };
|
||||
8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libuberzlib.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework"; sourceTree = "<group>"; };
|
||||
9555C4935AFD98E079719C07 /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
A37B936423E3B1BF1CA137E0 /* hello-gltf.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-gltf.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A40EBFD944F94426FBCEDB82 /* libstb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libstb.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework"; sourceTree = "<group>"; };
|
||||
A52D063A6C24A885D52E2F79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
B1B470F3CDEE0D4A60B11C72 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = "<group>"; };
|
||||
B299B19218E1CF7B2D13ABB8 /* DamagedHelmet.glb */ = {isa = PBXFileReference; path = DamagedHelmet.glb; sourceTree = "<group>"; };
|
||||
BAEAC7786B3EA7E47855A56B /* FilamentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentViewController.h; sourceTree = "<group>"; };
|
||||
CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libdracodec.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework"; sourceTree = "<group>"; };
|
||||
D3A6F9906B0647549CF53196 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
EC3FAC405D5790391F3AE4FB /* App.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = App.h; sourceTree = "<group>"; };
|
||||
F534BD31E8FB84B3925B0402 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
0F4486CC8242411EE5C50136 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
415CBC815DE6A370EE6DD502 /* libfilament.xcframework in Frameworks */,
|
||||
6DFCBA84E571F0C5B1683640 /* libbackend.xcframework in Frameworks */,
|
||||
8309D337274D6920F81FDFED /* libfilaflat.xcframework in Frameworks */,
|
||||
F4022ECAAC6BEA543556B428 /* libktxreader.xcframework in Frameworks */,
|
||||
FD9CF0E054C901D1D3E7D6B2 /* libfilabridge.xcframework in Frameworks */,
|
||||
1A4585E6153963D89D838344 /* libutils.xcframework in Frameworks */,
|
||||
6535EDC4F6D3BBCA745C453F /* libsmol-v.xcframework in Frameworks */,
|
||||
A8004A31F0068178EF0557DA /* libgeometry.xcframework in Frameworks */,
|
||||
872251D9846351641FFE1EDB /* libibl.xcframework in Frameworks */,
|
||||
0C4676263C3C6F429DE8E1E7 /* libabseil.xcframework in Frameworks */,
|
||||
372DC481D060CF95FDFA9DD7 /* libzstd.xcframework in Frameworks */,
|
||||
ABF42D2B7081EB39CEC1B43B /* libgltfio_core.xcframework in Frameworks */,
|
||||
7FD7B7E760C10ACDA64F0890 /* libuberarchive.xcframework in Frameworks */,
|
||||
A38DF6C8EA6292F62E9D5F68 /* libimage.xcframework in Frameworks */,
|
||||
B69E7A38F3A58F7DB4002219 /* libdracodec.xcframework in Frameworks */,
|
||||
3370EF2CC0CD0D08F69CC581 /* libmeshoptimizer.xcframework in Frameworks */,
|
||||
872990CD06765549CBE6EB85 /* libbasis_transcoder.xcframework in Frameworks */,
|
||||
272268CA1B14AE98DFACDD33 /* libstb.xcframework in Frameworks */,
|
||||
12FA790CDCF4048A3B3D816B /* libuberzlib.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
213197BBE06FB8316C6A730F /* DamagedHelmet */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -174,7 +56,6 @@
|
||||
children = (
|
||||
213197BBE06FB8316C6A730F /* DamagedHelmet */,
|
||||
A57096EADC8A05A97A275513 /* hello-gltf */,
|
||||
F6A35BB32F71E5F5DC464FCC /* Frameworks */,
|
||||
E24AFBD404D0689AD84371D6 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -197,10 +78,10 @@
|
||||
children = (
|
||||
3F8FDA2F8F0B257A1364E302 /* Assets.xcassets */,
|
||||
A52D063A6C24A885D52E2F79 /* Info.plist */,
|
||||
47B161015D23D464253ABAF1 /* main.m */,
|
||||
B1B470F3CDEE0D4A60B11C72 /* Resources.S */,
|
||||
FEA341C442B210CFD35E4663 /* LaunchScreen.storyboard */,
|
||||
47B161015D23D464253ABAF1 /* main.m */,
|
||||
59032D070D1641AA60F6CC2D /* Main.storyboard */,
|
||||
B1B470F3CDEE0D4A60B11C72 /* Resources.S */,
|
||||
);
|
||||
path = SupportFiles;
|
||||
sourceTree = "<group>";
|
||||
@@ -226,32 +107,6 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F6A35BB32F71E5F5DC464FCC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2ABE8F592F84AD947269C79F /* libabseil.xcframework */,
|
||||
4A955859FB96A0B4AA15C36D /* libbackend.xcframework */,
|
||||
18129A9C5FC10A170625F0DF /* libbasis_transcoder.xcframework */,
|
||||
CC1A326E7C2E54A8F3227045 /* libdracodec.xcframework */,
|
||||
9555C4935AFD98E079719C07 /* libfilabridge.xcframework */,
|
||||
8947E0E5B74BA8785FE2158D /* libfilaflat.xcframework */,
|
||||
4B9CD116AEF8BD291A123F2A /* libfilament.xcframework */,
|
||||
6842BC9C9A130CE658B642CB /* libgeometry.xcframework */,
|
||||
06B530A8294DD5CBAD41DB51 /* libgltfio_core.xcframework */,
|
||||
83035F42A448BDA20C5EC0DB /* libibl.xcframework */,
|
||||
481A41C1DE19D71E21CA17C0 /* libimage.xcframework */,
|
||||
6E2AD103B6A164CA10779A2C /* libktxreader.xcframework */,
|
||||
F9B29DDB1D323E259E5EDBE4 /* libmeshoptimizer.xcframework */,
|
||||
5E33DC0C95B9B0260504E357 /* libsmol-v.xcframework */,
|
||||
A40EBFD944F94426FBCEDB82 /* libstb.xcframework */,
|
||||
0BEC8295652B68CF0854F861 /* libuberarchive.xcframework */,
|
||||
8AE9C8F3B16EEC02C00FC462 /* libuberzlib.xcframework */,
|
||||
51E07CB7D191EE70C8393733 /* libutils.xcframework */,
|
||||
190D6FD76C902A52E8C71DF7 /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -262,8 +117,6 @@
|
||||
434C630C7F01B07ABD7545B4 /* Build Resources */,
|
||||
30FFFB72D409D092136A7E09 /* Sources */,
|
||||
143100B2FF97ACD9B03A078A /* Resources */,
|
||||
0F4486CC8242411EE5C50136 /* Frameworks */,
|
||||
D5C4D57398FACAA29F2C2549 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -284,10 +137,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = C7514DDCFDA3C5F803E239F9 /* Build configuration list for PBXProject "hello-gltf" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -296,8 +148,7 @@
|
||||
);
|
||||
mainGroup = 74FBC1573C79190CC198A030;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = E24AFBD404D0689AD84371D6 /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -337,7 +188,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-gltf app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# App.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-gltf/FilamentView/App.cpp\"\ntouch \"${PROJECT_DIR}/hello-gltf/SupportFiles/Resources.S\"\n";
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-gltf app requires two resources:\n# 1. The IBL image\n# 2. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\"\n\n# App.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-gltf/FilamentView/App.cpp\"\ntouch \"${PROJECT_DIR}/hello-gltf/SupportFiles/Resources.S\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -384,7 +235,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -447,17 +298,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist";
|
||||
@@ -466,6 +312,32 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lbasis_transcoder",
|
||||
"-lstb",
|
||||
"-lzstd",
|
||||
"-luberzlib",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -480,17 +352,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist";
|
||||
@@ -499,6 +366,32 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lbasis_transcoder",
|
||||
"-lstb",
|
||||
"-lzstd",
|
||||
"-luberzlib",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -512,7 +405,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -574,7 +467,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -629,7 +522,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -685,17 +578,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist";
|
||||
@@ -704,6 +592,32 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lbasis_transcoder",
|
||||
"-lstb",
|
||||
"-lzstd",
|
||||
"-luberzlib",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -718,17 +632,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-gltf/SupportFiles/Info.plist";
|
||||
@@ -737,6 +646,32 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lgltfio_core",
|
||||
"-luberarchive",
|
||||
"-limage",
|
||||
"-ldracodec",
|
||||
"-lmeshoptimizer",
|
||||
"-lbasis_transcoder",
|
||||
"-lstb",
|
||||
"-lzstd",
|
||||
"-luberzlib",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-gltf";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
|
||||
@@ -10,15 +10,10 @@ targets:
|
||||
buildPhase: resources
|
||||
templates:
|
||||
- FilamentApp
|
||||
dependencies:
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgltfio_core.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberarchive.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libdracodec.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbasis_transcoder.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libstb.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libuberzlib.xcframework
|
||||
settings:
|
||||
base:
|
||||
OTHER_LDFLAGS: ["-lgltfio_core", "-luberarchive", "-limage", "-ldracodec", "-lmeshoptimizer",
|
||||
"-lbasis_transcoder", "-lstb", "-lzstd", "-luberzlib"]
|
||||
preBuildScripts:
|
||||
- path: build-resources.sh
|
||||
name: Build Resources
|
||||
|
||||
@@ -13,10 +13,10 @@ set -e
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
|
||||
filamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`
|
||||
matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
resgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
filamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`
|
||||
matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
resgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`
|
||||
cmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`
|
||||
|
||||
# Ensure that the required tools are present in the out/ directory.
|
||||
# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.
|
||||
|
||||
@@ -3,136 +3,43 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
06156526AD22EF2AD34A6E63 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A17327655C031D575A522AD1 /* main.m */; };
|
||||
0B2B31A41B31D3D9592809BE /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1F86261681826B617D56A65A /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
253D85057959A92D9C3FF638 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */; };
|
||||
29861FFCDF2A0BCF3C5C35E2 /* libmeshoptimizer.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
3386B37A2A36AAE2D1A7EEA3 /* libfilameshio.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */; };
|
||||
3CE3011F1556DF145D8D5641 /* libfilameshio.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
3D7229A87468A795596F67E5 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */; };
|
||||
3F24E10B5F119498FEC839BD /* libimage.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB7CEED84501DA291C801893 /* libimage.xcframework */; };
|
||||
47C387BD3672FED21E46A5CB /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 37522F0B15C029FD4127180C /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
4E2366C19FC594E529713AFD /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */; };
|
||||
4E4E761A4D37F2479672E9CB /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37522F0B15C029FD4127180C /* libibl.xcframework */; };
|
||||
4F76C2B304B91E3396FB9BE0 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43FDC2D4E6776749006FF5E8 /* Main.storyboard */; };
|
||||
5507E62B8924EAD813F76A12 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D2E61F2554690ADAD89442FA /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
612E11B0F5513B4426B753E3 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 35C7020A906FD87045CA9188 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
774BE86075C3087EE3E973F2 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */; };
|
||||
7C7FE778A73B60FEF2A3E87B /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7FADC9D9565BFFBE23EE2B19 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
80797782FC992AB6AC57F689 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */; };
|
||||
909A5210FF76323C0162AC03 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE479671EAC6847969DCCA35 /* libbackend.xcframework */; };
|
||||
9ADC886BBE230370776B1CF3 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2E61F2554690ADAD89442FA /* libktxreader.xcframework */; };
|
||||
9F723250641BA99F8DAFEDFB /* libimage.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FB7CEED84501DA291C801893 /* libimage.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
9FB8B786881C0C4C0CFBC55D /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */; };
|
||||
A702E1AB94B19F53E55A946B /* CameraManipulator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D57C53C47A84D05D23B65278 /* CameraManipulator.cpp */; };
|
||||
B127450573BCB07E794547F3 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 42B9073CE652C53E7F0A4602 /* FilamentView.mm */; };
|
||||
BD8BEB81AFF4F10D2CC14D3D /* libmeshoptimizer.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */; };
|
||||
CD584D8F302B74996AB93340 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */; };
|
||||
CEA57549E5C487794BD5351D /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D15F2C7D58D8FC89CE6116E1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1CAE8879115ECEC53FA0F052 /* Assets.xcassets */; };
|
||||
D66BEC047A004E63BD105F94 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D760F404EE39FF9CA3DB15EF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */; };
|
||||
DD28C38B1BA7DC985D18010F /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE479671EAC6847969DCCA35 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
E6438E524A7CA8B4ADCD6BB8 /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
F036B4FF12A2B4005547C01F /* FilamentApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F01D34676A81F3F367B9F6AF /* FilamentApp.cpp */; };
|
||||
F7A5CF35639D0528CCD03908 /* Resources.S in Sources */ = {isa = PBXBuildFile; fileRef = AC02B019CB36611A7BCE5773 /* Resources.S */; };
|
||||
FAF09598FE02F9B10459EB34 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C7020A906FD87045CA9188 /* libfilament.xcframework */; };
|
||||
FCEE5B4DF0074DCD841DFF12 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DACB12BFCAAA3222E7D1E9BB /* ViewController.m */; };
|
||||
FEA410A98CE28689BEF2251F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE9A0CE98FB055F3478E1CC /* AppDelegate.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
8E3DFDFC69EBD646F294582B /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
612E11B0F5513B4426B753E3 /* libfilament.xcframework in Embed Frameworks */,
|
||||
DD28C38B1BA7DC985D18010F /* libbackend.xcframework in Embed Frameworks */,
|
||||
D66BEC047A004E63BD105F94 /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
5507E62B8924EAD813F76A12 /* libktxreader.xcframework in Embed Frameworks */,
|
||||
E6438E524A7CA8B4ADCD6BB8 /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
1F86261681826B617D56A65A /* libutils.xcframework in Embed Frameworks */,
|
||||
7C7FE778A73B60FEF2A3E87B /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
CEA57549E5C487794BD5351D /* libgeometry.xcframework in Embed Frameworks */,
|
||||
47C387BD3672FED21E46A5CB /* libibl.xcframework in Embed Frameworks */,
|
||||
7FADC9D9565BFFBE23EE2B19 /* libabseil.xcframework in Embed Frameworks */,
|
||||
0B2B31A41B31D3D9592809BE /* libzstd.xcframework in Embed Frameworks */,
|
||||
3CE3011F1556DF145D8D5641 /* libfilameshio.xcframework in Embed Frameworks */,
|
||||
29861FFCDF2A0BCF3C5C35E2 /* libmeshoptimizer.xcframework in Embed Frameworks */,
|
||||
9F723250641BA99F8DAFEDFB /* libimage.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
17ADA23252FA61486B05D5BA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
1CAE8879115ECEC53FA0F052 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
35C7020A906FD87045CA9188 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
37522F0B15C029FD4127180C /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
37CB2FCA6711AE57BD4B39F7 /* hello-pbr.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-pbr.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
42B9073CE652C53E7F0A4602 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = "<group>"; };
|
||||
4618C7511DE661F89B114734 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libmeshoptimizer.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework"; sourceTree = "<group>"; };
|
||||
7D60AE7BAB964978FAA0C84C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
7FE9A0CE98FB055F3478E1CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
A17327655C031D575A522AD1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
A3680F594905261290AEDB79 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
AC02B019CB36611A7BCE5773 /* Resources.S */ = {isa = PBXFileReference; path = Resources.S; sourceTree = "<group>"; };
|
||||
ADF252527D202BB9D53E29C8 /* clear_coat.mat */ = {isa = PBXFileReference; path = clear_coat.mat; sourceTree = "<group>"; };
|
||||
B35CDFC5B6E5142B5E57BE33 /* FilamentApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentApp.h; sourceTree = "<group>"; };
|
||||
B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilameshio.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework"; sourceTree = "<group>"; };
|
||||
C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
CE479671EAC6847969DCCA35 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
D2E61F2554690ADAD89442FA /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
D57C53C47A84D05D23B65278 /* CameraManipulator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CameraManipulator.cpp; sourceTree = "<group>"; };
|
||||
DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
DACB12BFCAAA3222E7D1E9BB /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
E176563EAAB0B36EFA7D67FD /* CameraManipulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CameraManipulator.h; sourceTree = "<group>"; };
|
||||
EC2A85E8863E17F68089B198 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
ED2321CED4601521B7D1D849 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
F01D34676A81F3F367B9F6AF /* FilamentApp.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FilamentApp.cpp; sourceTree = "<group>"; };
|
||||
FB7CEED84501DA291C801893 /* libimage.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libimage.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
464CABCAA933FAA2A5568882 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
FAF09598FE02F9B10459EB34 /* libfilament.xcframework in Frameworks */,
|
||||
909A5210FF76323C0162AC03 /* libbackend.xcframework in Frameworks */,
|
||||
CD584D8F302B74996AB93340 /* libfilaflat.xcframework in Frameworks */,
|
||||
9ADC886BBE230370776B1CF3 /* libktxreader.xcframework in Frameworks */,
|
||||
253D85057959A92D9C3FF638 /* libfilabridge.xcframework in Frameworks */,
|
||||
3D7229A87468A795596F67E5 /* libutils.xcframework in Frameworks */,
|
||||
80797782FC992AB6AC57F689 /* libsmol-v.xcframework in Frameworks */,
|
||||
4E2366C19FC594E529713AFD /* libgeometry.xcframework in Frameworks */,
|
||||
4E4E761A4D37F2479672E9CB /* libibl.xcframework in Frameworks */,
|
||||
9FB8B786881C0C4C0CFBC55D /* libabseil.xcframework in Frameworks */,
|
||||
774BE86075C3087EE3E973F2 /* libzstd.xcframework in Frameworks */,
|
||||
3386B37A2A36AAE2D1A7EEA3 /* libfilameshio.xcframework in Frameworks */,
|
||||
BD8BEB81AFF4F10D2CC14D3D /* libmeshoptimizer.xcframework in Frameworks */,
|
||||
3F24E10B5F119498FEC839BD /* libimage.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
4A44033C70281A0FC58A64FE /* hello-pbr */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -147,43 +54,21 @@
|
||||
4618C7511DE661F89B114734 /* FilamentView.h */,
|
||||
42B9073CE652C53E7F0A4602 /* FilamentView.mm */,
|
||||
EC2A85E8863E17F68089B198 /* Info.plist */,
|
||||
45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */,
|
||||
A17327655C031D575A522AD1 /* main.m */,
|
||||
43FDC2D4E6776749006FF5E8 /* Main.storyboard */,
|
||||
AC02B019CB36611A7BCE5773 /* Resources.S */,
|
||||
17ADA23252FA61486B05D5BA /* ViewController.h */,
|
||||
DACB12BFCAAA3222E7D1E9BB /* ViewController.m */,
|
||||
45C71AD43B55E58E07243647 /* LaunchScreen.storyboard */,
|
||||
43FDC2D4E6776749006FF5E8 /* Main.storyboard */,
|
||||
);
|
||||
path = "hello-pbr";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6CD8748D8B4DAD182A726DC0 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FC6071B5A7CDAE7AC8F9F6A /* libabseil.xcframework */,
|
||||
CE479671EAC6847969DCCA35 /* libbackend.xcframework */,
|
||||
CE951DB3A83CC5BD589751BC /* libfilabridge.xcframework */,
|
||||
DA4939E8DA8B4093E147961B /* libfilaflat.xcframework */,
|
||||
35C7020A906FD87045CA9188 /* libfilament.xcframework */,
|
||||
B3DAD80BE7693C1D70E06675 /* libfilameshio.xcframework */,
|
||||
C379E4CC0D2A41B53A494804 /* libgeometry.xcframework */,
|
||||
37522F0B15C029FD4127180C /* libibl.xcframework */,
|
||||
FB7CEED84501DA291C801893 /* libimage.xcframework */,
|
||||
D2E61F2554690ADAD89442FA /* libktxreader.xcframework */,
|
||||
6BBA4C3095CCF35600F500B8 /* libmeshoptimizer.xcframework */,
|
||||
503D2F0E98B22FD99D9C4B32 /* libsmol-v.xcframework */,
|
||||
A9FD2FF109F8EDD63D2DAB37 /* libutils.xcframework */,
|
||||
A1DC71CABF5B4C9A99EA62D8 /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B171658B4A1227B9CA44459 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4A44033C70281A0FC58A64FE /* hello-pbr */,
|
||||
D92946BE29B34E951A7E0714 /* Materials */,
|
||||
6CD8748D8B4DAD182A726DC0 /* Frameworks */,
|
||||
A90A4582D4144797492F5C08 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -214,8 +99,6 @@
|
||||
18BC4E25ED5FC66EC7B77F97 /* Build Resources */,
|
||||
4EAE126B59B0A66AD866406A /* Sources */,
|
||||
4C132EE193B59194A5C7572B /* Resources */,
|
||||
464CABCAA933FAA2A5568882 /* Frameworks */,
|
||||
8E3DFDFC69EBD646F294582B /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -236,10 +119,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 0479354FB8D9A411347D91A6 /* Build configuration list for PBXProject "hello-pbr" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -248,8 +130,7 @@
|
||||
);
|
||||
mainGroup = 8B171658B4A1227B9CA44459;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = A90A4582D4144797492F5C08 /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -288,7 +169,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-pbr app requires four resources:\n# 1. The material sphere mesh\n# 2. The Filament material definition\n# 3. The IBL image\n# 4. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find -L ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find -L ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find -L ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/material_sphere/material_sphere.obj\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\"\n\n# The matc tool compiles the clear_coat.mat material into a Filament material BLOB.\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-pbr/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-pbr/Resources.S\"\n";
|
||||
shellScript = "#/usr/bin/env/bash\n\nset -e\n\n# Compile resources.\n\n# The hello-pbr app requires four resources:\n# 1. The material sphere mesh\n# 2. The Filament material definition\n# 3. The IBL image\n# 4. The skybox image\n# These will be compiled into the final binary via the resgen tool.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\n\nfilamesh_path=`find ${HOST_TOOLS_PATH} -name filamesh -type f | head -n 1`\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\nresgen_path=`find ${HOST_TOOLS_PATH} -name resgen -type f | head -n 1`\ncmgen_path=`find ${HOST_TOOLS_PATH} -name cmgen -type f | head -n 1`\n\n# Ensure that the required tools are present in the out/ directory.\n# These can be built by running ./build.sh -p desktop -i release at Filament's root directory.\n\nif [[ ! -e \"${filamesh_path}\" ]]; then\n echo \"No filamesh binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${resgen_path}\" ]]; then\n echo \"No resgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nif [[ ! -e \"${cmgen_path}\" ]]; then\n echo \"No cmgen binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\n# The filamesh tool converts the .obj file into a Filament-specific filamesh file that has been\n# optimized for loading into Filament.\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${filamesh_path}\" \\\n \"${PROJECT_DIR}/../../../assets/models/material_sphere/material_sphere.obj\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\"\n\n# The matc tool compiles the clear_coat.mat material into a Filament material BLOB.\n\"${matc_path}\" \\\n --api all \\\n --platform mobile \\\n -o \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/Materials/clear_coat.mat\"\n\n# cmgen consumes an HDR environment map and generates two mipmapped KTX files (IBL and skybox)\n\"${cmgen_path}\" \\\n --quiet \\\n --deploy=\"${PROJECT_DIR}/generated/venetian_crossroads_2k\" \\\n --format=ktx --size=256 --extract-blur=0.1 \\\n \"${PROJECT_DIR}/../../../third_party/environments/venetian_crossroads_2k.hdr\"\n\n# The resgen tool generates an assembly file, resources.apple.S that gets compiled and linked\n# into the final binary. It contains all the resources consumed by the app.\n\"${resgen_path}\" \\\n --deploy=\"${PROJECT_DIR}/generated\" \\\n \"${PROJECT_DIR}/generated/material_sphere.filamesh\" \\\n \"${PROJECT_DIR}/generated/clear_coat.filamat\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_ibl.ktx\" \\\n \"${PROJECT_DIR}/generated/venetian_crossroads_2k/venetian_crossroads_2k_skybox.ktx\"\n\n# FilamentApp.cpp and Resources.S include files generated by resgen.\n# Touch them to force Xcode to recompile.\ntouch \"${PROJECT_DIR}/hello-pbr/FilamentApp.cpp\"\ntouch \"${PROJECT_DIR}/hello-pbr/Resources.S\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -335,7 +216,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -398,17 +279,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-pbr/Info.plist";
|
||||
@@ -417,6 +293,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -431,17 +327,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-pbr/Info.plist";
|
||||
@@ -450,6 +341,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -464,17 +375,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-pbr/Info.plist";
|
||||
@@ -483,6 +389,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -496,7 +422,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -551,7 +477,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -607,17 +533,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-pbr/Info.plist";
|
||||
@@ -626,6 +547,26 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
"-lfilameshio",
|
||||
"-lmeshoptimizer",
|
||||
"-limage",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-pbr";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -639,7 +580,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
|
||||
@@ -6,10 +6,9 @@ targets:
|
||||
hello-pbr:
|
||||
templates:
|
||||
- FilamentApp
|
||||
dependencies:
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilameshio.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libmeshoptimizer.xcframework
|
||||
- framework: ../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libimage.xcframework
|
||||
settings:
|
||||
base:
|
||||
OTHER_LDFLAGS: ["-lfilameshio", "-lmeshoptimizer", "-limage"]
|
||||
preBuildScripts:
|
||||
- path: build-resources.sh
|
||||
name: Build Resources
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Compile bakedColor material.
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
|
||||
if [[ ! -e "${matc_path}" ]]; then
|
||||
echo "No matc binary could be found in ${HOST_TOOLS_PATH}."
|
||||
|
||||
@@ -3,113 +3,35 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0A3A34EAB98A45D1D4355A52 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */; };
|
||||
0F0218402B9C73D7B3775497 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
12A40CB70167F2609E428EC6 /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
1326DEBB610801CD041AE322 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED0BAF80B49E29533E492727 /* libibl.xcframework */; };
|
||||
291EA8BF9E335683AD324451 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */; };
|
||||
2DE5F1C322D1B8288CF6F1A9 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
34826A3819309F25EAF82B78 /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = ED0BAF80B49E29533E492727 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
371FE9F805A6B436B22EF70D /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
4715F63AF782F1A15A37EFA8 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 45FE9476D47ECFFEA65D7146 /* AppDelegate.m */; };
|
||||
4B0C2B6E7D4BF89D8EDEB84F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2620C967534D81CFFAB5D3FF /* ViewController.m */; };
|
||||
5B76FEB9522BC17E14EF3270 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */; };
|
||||
67B75B37DC3FFFE6BDD91455 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DDE4A219AEB5B4507F51B873 /* Main.storyboard */; };
|
||||
68822E4B9059C8A1E67EF062 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E36164E9425CAABBE17EF153 /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
6BBD88355CE6932E706CE45C /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7A4FA872EA928DB67BBF9351 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */; };
|
||||
8897619E0912B69F232FCC88 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 524293A0A8CDE9047347EF48 /* Assets.xcassets */; };
|
||||
915E0D1FE043E873C17EB0AB /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44224172FC58D500DEFE7A7D /* libgeometry.xcframework */; };
|
||||
966626FAF79F36B16F9AE201 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */; };
|
||||
96FBF778C4E3563A7C8D3A47 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
978AB6421E245452AD8D9AE0 /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
A05C6F2172B5C29D9A056E39 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */; };
|
||||
AC1320F672694ABEF53EFAC8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E56C70616FF30C50DFA8238B /* main.m */; };
|
||||
AD9F281E6F4F05A4B98FD437 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B156789E3EC8798928C58BD2 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 727785EA0395D939E6804AF4 /* libsmol-v.xcframework */; };
|
||||
BED52BA49D882353BBCEA4F4 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0CDCD26337640C57D07E41ED /* FilamentView.mm */; };
|
||||
CF4322AB55566F31A284739B /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */; };
|
||||
D5837AE122E300682E245E00 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E36164E9425CAABBE17EF153 /* libfilament.xcframework */; };
|
||||
ECA5B4596C78D6B18043153D /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
ECE38C7FF5D52E4222C22216 /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D062C70EFE8916B7656BB4E /* libzstd.xcframework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
C514B8F3AF16FEA064256123 /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
68822E4B9059C8A1E67EF062 /* libfilament.xcframework in Embed Frameworks */,
|
||||
12A40CB70167F2609E428EC6 /* libbackend.xcframework in Embed Frameworks */,
|
||||
371FE9F805A6B436B22EF70D /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
978AB6421E245452AD8D9AE0 /* libktxreader.xcframework in Embed Frameworks */,
|
||||
ECA5B4596C78D6B18043153D /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
AD9F281E6F4F05A4B98FD437 /* libutils.xcframework in Embed Frameworks */,
|
||||
96FBF778C4E3563A7C8D3A47 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
2DE5F1C322D1B8288CF6F1A9 /* libgeometry.xcframework in Embed Frameworks */,
|
||||
34826A3819309F25EAF82B78 /* libibl.xcframework in Embed Frameworks */,
|
||||
0F0218402B9C73D7B3775497 /* libabseil.xcframework in Embed Frameworks */,
|
||||
6BBD88355CE6932E706CE45C /* libzstd.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0CDCD26337640C57D07E41ED /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = "<group>"; };
|
||||
2620C967534D81CFFAB5D3FF /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
350DC65C7EE8D98D8FE181DC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
3BB2247EC7FE4EFB2C3ED10A /* hello-triangle.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "hello-triangle.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
41033B581E89DF4B33A2EB53 /* bakedColor.mat */ = {isa = PBXFileReference; path = bakedColor.mat; sourceTree = "<group>"; };
|
||||
44224172FC58D500DEFE7A7D /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
45FE9476D47ECFFEA65D7146 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
524293A0A8CDE9047347EF48 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
727785EA0395D939E6804AF4 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
761A2C7D6295697614AD3434 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D062C70EFE8916B7656BB4E /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
C16E9A84F33BDFAEDC1E4837 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
C311F8DEBEFEB185F0A7E4CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
CDBB6BE341D1C708FCB68750 /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
E36164E9425CAABBE17EF153 /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
E36D17DB3F44ADF8EFBEDBAF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
E56C70616FF30C50DFA8238B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
ED0BAF80B49E29533E492727 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
3691C25600B8D42B8E9BC308 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D5837AE122E300682E245E00 /* libfilament.xcframework in Frameworks */,
|
||||
0A3A34EAB98A45D1D4355A52 /* libbackend.xcframework in Frameworks */,
|
||||
7A4FA872EA928DB67BBF9351 /* libfilaflat.xcframework in Frameworks */,
|
||||
CF4322AB55566F31A284739B /* libktxreader.xcframework in Frameworks */,
|
||||
291EA8BF9E335683AD324451 /* libfilabridge.xcframework in Frameworks */,
|
||||
5B76FEB9522BC17E14EF3270 /* libutils.xcframework in Frameworks */,
|
||||
B156789E3EC8798928C58BD2 /* libsmol-v.xcframework in Frameworks */,
|
||||
915E0D1FE043E873C17EB0AB /* libgeometry.xcframework in Frameworks */,
|
||||
1326DEBB610801CD041AE322 /* libibl.xcframework in Frameworks */,
|
||||
966626FAF79F36B16F9AE201 /* libabseil.xcframework in Frameworks */,
|
||||
ECE38C7FF5D52E4222C22216 /* libzstd.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
39FD47E0213E1FFE59609A06 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -119,30 +41,11 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
554175C148AC5EDE93591BB3 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0F16339A5D96AB6AAF03A4C /* libabseil.xcframework */,
|
||||
F3BA0FF5017E4FECD94CF3F2 /* libbackend.xcframework */,
|
||||
DA668D9E9DC67AD1FA16422A /* libfilabridge.xcframework */,
|
||||
C4952E6805DB5E7B871DF61C /* libfilaflat.xcframework */,
|
||||
E36164E9425CAABBE17EF153 /* libfilament.xcframework */,
|
||||
44224172FC58D500DEFE7A7D /* libgeometry.xcframework */,
|
||||
ED0BAF80B49E29533E492727 /* libibl.xcframework */,
|
||||
AC6CC7E260B2F20D0EA171E2 /* libktxreader.xcframework */,
|
||||
727785EA0395D939E6804AF4 /* libsmol-v.xcframework */,
|
||||
3604FD7E74C46AC4FAB12BFA /* libutils.xcframework */,
|
||||
8D062C70EFE8916B7656BB4E /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5B3E3AAF5C75644908492410 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C54ABC8D31D1863EF16253A0 /* hello-triangle */,
|
||||
8F55D652979868A470D724FA /* Materials */,
|
||||
554175C148AC5EDE93591BB3 /* Frameworks */,
|
||||
39FD47E0213E1FFE59609A06 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -164,11 +67,11 @@
|
||||
CDBB6BE341D1C708FCB68750 /* FilamentView.h */,
|
||||
0CDCD26337640C57D07E41ED /* FilamentView.mm */,
|
||||
761A2C7D6295697614AD3434 /* Info.plist */,
|
||||
46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */,
|
||||
E56C70616FF30C50DFA8238B /* main.m */,
|
||||
DDE4A219AEB5B4507F51B873 /* Main.storyboard */,
|
||||
C311F8DEBEFEB185F0A7E4CC /* ViewController.h */,
|
||||
2620C967534D81CFFAB5D3FF /* ViewController.m */,
|
||||
46A2FAD3D476FDADF45F70F8 /* LaunchScreen.storyboard */,
|
||||
DDE4A219AEB5B4507F51B873 /* Main.storyboard */,
|
||||
);
|
||||
path = "hello-triangle";
|
||||
sourceTree = "<group>";
|
||||
@@ -183,8 +86,6 @@
|
||||
668105208CE7DFC4DC55F8EC /* Build Materials */,
|
||||
7B94E1FEEC48280815A91021 /* Sources */,
|
||||
471869BF4E82B6ADC791072D /* Resources */,
|
||||
3691C25600B8D42B8E9BC308 /* Frameworks */,
|
||||
C514B8F3AF16FEA064256123 /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -205,10 +106,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 69A012BABE82CB5D1986B1BB /* Build configuration list for PBXProject "hello-triangle" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -217,8 +117,7 @@
|
||||
);
|
||||
mainGroup = 5B3E3AAF5C75644908492410;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = 39FD47E0213E1FFE59609A06 /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -257,7 +156,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/hello-triangle/FilamentView.mm\"\n";
|
||||
shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/hello-triangle/FilamentView.mm\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -302,17 +201,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-triangle/Info.plist";
|
||||
@@ -321,6 +215,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -334,7 +245,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -397,17 +308,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-triangle/Info.plist";
|
||||
@@ -416,6 +322,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -430,17 +353,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-triangle/Info.plist";
|
||||
@@ -449,6 +367,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -462,7 +397,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -517,7 +452,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -573,17 +508,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "hello-triangle/Info.plist";
|
||||
@@ -592,6 +522,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.hello-triangle";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -605,7 +552,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Compile bakedColor material.
|
||||
|
||||
HOST_TOOLS_PATH="${HOST_TOOLS_PATH:-../../../out/release/filament/bin}"
|
||||
matc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
matc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`
|
||||
|
||||
if [[ ! -e "${matc_path}" ]]; then
|
||||
echo "No matc binary could be found in ${HOST_TOOLS_PATH}."
|
||||
|
||||
@@ -3,112 +3,34 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 77;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1277F800D6D46E364FC36888 /* libgeometry.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */; };
|
||||
1E31EA1A79A550407E4A39BB /* libzstd.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2AF349D32EBA154923EABB5 /* libzstd.xcframework */; };
|
||||
23318D8F70A6E13214CF15E0 /* libutils.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */; };
|
||||
243D3B219322B6BD829F39F8 /* libktxreader.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */; };
|
||||
3A1A568B3431D8FB66F60DB3 /* libabseil.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B254EC414E4905EC4CA22173 /* libabseil.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
527FF7B484BA83BCC248B097 /* libfilabridge.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */; };
|
||||
593638720D5E6F09E52ECB01 /* libibl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */; };
|
||||
5F8AE993649815236EC665EB /* libibl.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
60C0A11E074409CE5F88B4FE /* libbackend.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
616A1B9A177BA2F02C920165 /* libfilaflat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */; };
|
||||
643749757FD9F8A609A336C7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E749A05E4E5F36757FB9399C /* Assets.xcassets */; };
|
||||
65FE8CD16998C5D479C9858E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C8CF5D9EB8BA11B44F639DFE /* AppDelegate.m */; };
|
||||
6B53BDEF1DAB8E4AD8CE754B /* libfilabridge.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
7032AB98BE03DFE8E3071FD0 /* libbackend.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */; };
|
||||
715FFF9658000B58BFEC22C6 /* libutils.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 91DE2DCC79C7DD9D830D883B /* libutils.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
740AB9277340CDD2222020E2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AA728ADDAAE09D3A5FD80C82 /* main.m */; };
|
||||
7F65E29DE4BF2CAA0D0759AA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 959043C1F56EAAE872B0FF05 /* Main.storyboard */; };
|
||||
80F7D25E275FE8C31AF9196E /* libzstd.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E2AF349D32EBA154923EABB5 /* libzstd.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
852D4BD096E865D7263928C8 /* libabseil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = B254EC414E4905EC4CA22173 /* libabseil.xcframework */; };
|
||||
8DA900E9A495C25262F78773 /* libgeometry.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 567E8EB7B4914540B082DA80 /* libgeometry.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
9F3C8B197C22178413BBAA37 /* libfilaflat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
A0FCB25FCDAE129BB6369957 /* libfilament.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */; };
|
||||
A9C3D93FE47802953C8A0868 /* FilamentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A807B46A326F19ABCEE0D62 /* FilamentView.mm */; };
|
||||
BA514AFE134AFD317CD71AA1 /* libsmol-v.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
C8F443E4A5064C2D1F755954 /* libsmol-v.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */; };
|
||||
CAB4734A7E608F3C36C4C9C8 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E6D9072BB2A497EEE9A7B662 /* ViewController.m */; };
|
||||
CDF7D87AB0D036A143F37946 /* libfilament.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
DF6374DDCFE55DD536B52033 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 96B770972E0F353852755AB3 /* LaunchScreen.storyboard */; };
|
||||
F6EEC66B42DF66E5C4CEC17C /* libktxreader.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
89F6975F74EBC72BCCA1074F /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
CDF7D87AB0D036A143F37946 /* libfilament.xcframework in Embed Frameworks */,
|
||||
60C0A11E074409CE5F88B4FE /* libbackend.xcframework in Embed Frameworks */,
|
||||
9F3C8B197C22178413BBAA37 /* libfilaflat.xcframework in Embed Frameworks */,
|
||||
F6EEC66B42DF66E5C4CEC17C /* libktxreader.xcframework in Embed Frameworks */,
|
||||
6B53BDEF1DAB8E4AD8CE754B /* libfilabridge.xcframework in Embed Frameworks */,
|
||||
715FFF9658000B58BFEC22C6 /* libutils.xcframework in Embed Frameworks */,
|
||||
BA514AFE134AFD317CD71AA1 /* libsmol-v.xcframework in Embed Frameworks */,
|
||||
8DA900E9A495C25262F78773 /* libgeometry.xcframework in Embed Frameworks */,
|
||||
5F8AE993649815236EC665EB /* libibl.xcframework in Embed Frameworks */,
|
||||
3A1A568B3431D8FB66F60DB3 /* libabseil.xcframework in Embed Frameworks */,
|
||||
80F7D25E275FE8C31AF9196E /* libzstd.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilaflat.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilaflat.xcframework"; sourceTree = "<group>"; };
|
||||
023105B81B6C662A3BABDC92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
0A8B371B11D177469DFEBB86 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
1A807B46A326F19ABCEE0D62 /* FilamentView.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FilamentView.mm; sourceTree = "<group>"; };
|
||||
26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libsmol-v.xcframework"; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libsmol-v.xcframework"; sourceTree = "<group>"; };
|
||||
2F32AE4C99AA8AE39BB09F0A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilabridge.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilabridge.xcframework"; sourceTree = "<group>"; };
|
||||
567E8EB7B4914540B082DA80 /* libgeometry.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgeometry.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libgeometry.xcframework"; sourceTree = "<group>"; };
|
||||
6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libbackend.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libbackend.xcframework"; sourceTree = "<group>"; };
|
||||
7ED3EBFE01876351CFF9AD1A /* transparent-rendering.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "transparent-rendering.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
91DE2DCC79C7DD9D830D883B /* libutils.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libutils.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libutils.xcframework"; sourceTree = "<group>"; };
|
||||
952B0BE8EFAEF9B6FCB77798 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
A5E8D7CA26C338BF3D9D1932 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libktxreader.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libktxreader.xcframework"; sourceTree = "<group>"; };
|
||||
AA728ADDAAE09D3A5FD80C82 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
B254EC414E4905EC4CA22173 /* libabseil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libabseil.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libabseil.xcframework"; sourceTree = "<group>"; };
|
||||
BD21E933E2F77EE5ACBCDD5F /* FilamentView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilamentView.h; sourceTree = "<group>"; };
|
||||
C8CF5D9EB8BA11B44F639DFE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfilament.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libfilament.xcframework"; sourceTree = "<group>"; };
|
||||
E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libibl.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libibl.xcframework"; sourceTree = "<group>"; };
|
||||
E2AF349D32EBA154923EABB5 /* libzstd.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libzstd.xcframework; path = "../../../out/$(FILAMENT_OUT_NAME)/filament/lib/libzstd.xcframework"; sourceTree = "<group>"; };
|
||||
E6D9072BB2A497EEE9A7B662 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||
E749A05E4E5F36757FB9399C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
9267558086B89E5F350ADDC4 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A0FCB25FCDAE129BB6369957 /* libfilament.xcframework in Frameworks */,
|
||||
7032AB98BE03DFE8E3071FD0 /* libbackend.xcframework in Frameworks */,
|
||||
616A1B9A177BA2F02C920165 /* libfilaflat.xcframework in Frameworks */,
|
||||
243D3B219322B6BD829F39F8 /* libktxreader.xcframework in Frameworks */,
|
||||
527FF7B484BA83BCC248B097 /* libfilabridge.xcframework in Frameworks */,
|
||||
23318D8F70A6E13214CF15E0 /* libutils.xcframework in Frameworks */,
|
||||
C8F443E4A5064C2D1F755954 /* libsmol-v.xcframework in Frameworks */,
|
||||
1277F800D6D46E364FC36888 /* libgeometry.xcframework in Frameworks */,
|
||||
593638720D5E6F09E52ECB01 /* libibl.xcframework in Frameworks */,
|
||||
852D4BD096E865D7263928C8 /* libabseil.xcframework in Frameworks */,
|
||||
1E31EA1A79A550407E4A39BB /* libzstd.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
0B098038EF2CFAC88AFE0F18 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
@@ -122,7 +44,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6E33B6C4EE9FFF8BBCE5DD20 /* transparent-rendering */,
|
||||
C5AF8AD86B58EF5D0BD7B0B2 /* Frameworks */,
|
||||
0B098038EF2CFAC88AFE0F18 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -136,33 +57,15 @@
|
||||
BD21E933E2F77EE5ACBCDD5F /* FilamentView.h */,
|
||||
1A807B46A326F19ABCEE0D62 /* FilamentView.mm */,
|
||||
952B0BE8EFAEF9B6FCB77798 /* Info.plist */,
|
||||
96B770972E0F353852755AB3 /* LaunchScreen.storyboard */,
|
||||
AA728ADDAAE09D3A5FD80C82 /* main.m */,
|
||||
959043C1F56EAAE872B0FF05 /* Main.storyboard */,
|
||||
2F32AE4C99AA8AE39BB09F0A /* ViewController.h */,
|
||||
E6D9072BB2A497EEE9A7B662 /* ViewController.m */,
|
||||
96B770972E0F353852755AB3 /* LaunchScreen.storyboard */,
|
||||
959043C1F56EAAE872B0FF05 /* Main.storyboard */,
|
||||
);
|
||||
path = "transparent-rendering";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C5AF8AD86B58EF5D0BD7B0B2 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B254EC414E4905EC4CA22173 /* libabseil.xcframework */,
|
||||
6EB7C2D5C91942D2B1EA056D /* libbackend.xcframework */,
|
||||
393E02B47C7710AB8B1F257A /* libfilabridge.xcframework */,
|
||||
0202CBA0AE1EAA3EE3DE0FFC /* libfilaflat.xcframework */,
|
||||
DF18A248DCF11412DDFAB5AE /* libfilament.xcframework */,
|
||||
567E8EB7B4914540B082DA80 /* libgeometry.xcframework */,
|
||||
E1C8DFBE4D515753D5B51FF1 /* libibl.xcframework */,
|
||||
A6D7469820FD760B1040BFD2 /* libktxreader.xcframework */,
|
||||
26B0C9089541BEB14FE28934 /* libsmol-v.xcframework */,
|
||||
91DE2DCC79C7DD9D830D883B /* libutils.xcframework */,
|
||||
E2AF349D32EBA154923EABB5 /* libzstd.xcframework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -173,8 +76,6 @@
|
||||
31596072423F6FB0A84C97A0 /* Build Materials */,
|
||||
EE3B63E6A11EDDBC48502B27 /* Sources */,
|
||||
A676D3A853739CDAB454587E /* Resources */,
|
||||
9267558086B89E5F350ADDC4 /* Frameworks */,
|
||||
89F6975F74EBC72BCCA1074F /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -195,10 +96,9 @@
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = YES;
|
||||
LastUpgradeCheck = 1430;
|
||||
TargetAttributes = {
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 8A22BD23DB15965551506480 /* Build configuration list for PBXProject "transparent-rendering" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -207,8 +107,7 @@
|
||||
);
|
||||
mainGroup = 4C27390036DEB15C67D5A664;
|
||||
minimizedProjectReferenceProxies = 1;
|
||||
preferredProjectObjectVersion = 77;
|
||||
productRefGroup = 0B098038EF2CFAC88AFE0F18 /* Products */;
|
||||
preferredProjectObjectVersion = 54;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -247,7 +146,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find -L ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/transparent-rendering/FilamentView.mm\"\n";
|
||||
shellScript = "# Compile bakedColor material.\n\nHOST_TOOLS_PATH=\"${HOST_TOOLS_PATH:-../../../out/release/filament/bin}\"\nmatc_path=`find ${HOST_TOOLS_PATH} -name matc -type f | head -n 1`\n\nif [[ ! -e \"${matc_path}\" ]]; then\n echo \"No matc binary could be found in ${HOST_TOOLS_PATH}.\"\n echo \"Ensure Filament has been built/installed before building this app.\"\n exit 1\nfi\n\nmkdir -p \"${PROJECT_DIR}/generated/\"\n\"${matc_path}\" \\\n --api all \\\n -f header \\\n -o \"${PROJECT_DIR}/generated/bakedColor.inc\" \\\n \"${PROJECT_DIR}/Materials/bakedColor.mat\"\n\n# FilamentView.mm includes bakedColor.filamat, so touch it to force Xcode to\n# recompile it.\ntouch \"${PROJECT_DIR}/transparent-rendering/FilamentView.mm\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -291,7 +190,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -346,7 +245,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -408,7 +307,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
@@ -464,17 +363,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "transparent-rendering/Info.plist";
|
||||
@@ -483,6 +377,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -497,17 +408,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "transparent-rendering/Info.plist";
|
||||
@@ -516,6 +422,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -530,17 +453,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-debug";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_OPENGL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-debug/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "transparent-rendering/Info.plist";
|
||||
@@ -549,6 +467,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-debug/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-debug/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -563,17 +498,12 @@
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
ENABLE_BITCODE = NO;
|
||||
FILAMENT_OUT_NAME = "ios-release";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"../../../out/$(FILAMENT_OUT_NAME)/filament/lib\"",
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"FILAMENT_APP_USE_METAL=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../../../out/$(FILAMENT_OUT_NAME)/filament/include",
|
||||
"../../../out/ios-release/filament/include",
|
||||
generated,
|
||||
);
|
||||
INFOPLIST_FILE = "transparent-rendering/Info.plist";
|
||||
@@ -582,6 +512,23 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"../../../out/ios-release/filament/lib/$(CURRENT_ARCH)",
|
||||
"../../../out/ios-release/filament/lib/universal",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-lfilament",
|
||||
"-lbackend",
|
||||
"-lfilaflat",
|
||||
"-lktxreader",
|
||||
"-lfilabridge",
|
||||
"-lutils",
|
||||
"-lsmol-v",
|
||||
"-lgeometry",
|
||||
"-libl",
|
||||
"-labseil",
|
||||
"-lzstd",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${SAMPLE_CODE_DISAMBIGUATOR}.google.filament.transparent-rendering";
|
||||
SAMPLE_CODE_DISAMBIGUATOR = "${DEVELOPMENT_TEAM}";
|
||||
SDKROOT = iphoneos;
|
||||
@@ -595,7 +542,7 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
|
||||
@@ -50,7 +50,7 @@ install(DIRECTORY ${PUBLIC_HDR_DIR}/camutils DESTINATION include)
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
add_executable(test_${TARGET} tests/test_camutils.cpp)
|
||||
target_link_libraries(test_${TARGET} PRIVATE camutils gtest)
|
||||
set_target_properties(test_${TARGET} PROPERTIES FOLDER Tests)
|
||||
|
||||
@@ -881,6 +881,14 @@ utils::io::sstream& CodeGenerator::generateSpecializationConstant(utils::io::sst
|
||||
|
||||
static const char* types[] = { "int", "float", "bool" };
|
||||
|
||||
// Spec constants aren't fully supported in Tint,
|
||||
// workaround until https://issues.chromium.org/issues/42250586 is resolved
|
||||
if (mTargetApi == TargetApi::WEBGPU) {
|
||||
std::string const variableName = "FILAMENT_SPEC_CONST_" + std::to_string(id) + "_" + name;
|
||||
out << " const " << types[value.index()] << " " << variableName << " = " << constantString << ";\n";
|
||||
out << types[value.index()] << " " << name << " = " << variableName << ";\n";
|
||||
return out;
|
||||
}
|
||||
if (mTargetLanguage == MaterialBuilderBase::TargetLanguage::SPIRV) {
|
||||
out << "layout (constant_id = " << id << ") const "
|
||||
<< types[value.index()] << " " << name << " = " << constantString << ";\n";
|
||||
|
||||
@@ -37,7 +37,7 @@ install(FILES ${DIST_HDRS} DESTINATION include/${TARGET})
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (FILAMENT_BUILD_TESTING AND NOT IOS AND NOT WASM AND NOT ANDROID)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT IOS AND NOT WEBGL AND NOT ANDROID)
|
||||
add_executable(test_${TARGET} tests/test_filamesh.cpp )
|
||||
target_link_libraries(test_${TARGET} PRIVATE filameshio gtest)
|
||||
set_target_properties(test_${TARGET} PROPERTIES FOLDER Tests)
|
||||
|
||||
@@ -46,7 +46,7 @@ if (MSVC)
|
||||
set(OPTIMIZATION_FLAGS
|
||||
/fp:fast
|
||||
)
|
||||
elseif (WASM)
|
||||
elseif(WEBGL)
|
||||
# Avoid strict-vtable-pointers here, it is broken in WebAssembly.
|
||||
set(OPTIMIZATION_FLAGS -fvisibility-inlines-hidden)
|
||||
else()
|
||||
|
||||
@@ -73,7 +73,7 @@ install(FILES "${GEOMETRY_COMBINED_OUTPUT}" DESTINATION lib/${DIST_DIR} RENAME $
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
set(TARGET test_transcoder)
|
||||
add_executable(${TARGET} tests/test_transcoder.cpp)
|
||||
target_link_libraries(${TARGET} PRIVATE geometry gtest)
|
||||
|
||||
@@ -198,13 +198,13 @@ set_target_properties(gltfio_core PROPERTIES FOLDER Libs)
|
||||
target_compile_definitions(gltfio_core PUBLIC -DGLTFIO_DRACO_SUPPORTED=1)
|
||||
target_link_libraries(gltfio_core PUBLIC dracodec meshoptimizer ${WEBP_DECODER_LIB_TARGET})
|
||||
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
target_compile_definitions(gltfio_core PUBLIC -DFILAMENT_WASM_THREADS)
|
||||
endif()
|
||||
|
||||
target_compile_options(gltfio_core PRIVATE ${FILAMENT_WARNINGS})
|
||||
|
||||
if (NOT WASM AND NOT ANDROID AND NOT IOS)
|
||||
if (NOT WEBGL AND NOT ANDROID AND NOT IOS)
|
||||
|
||||
# ==================================================================================================
|
||||
# Link the core library with additional dependencies to create the "full" library
|
||||
@@ -246,7 +246,7 @@ if (FILAMENT_BUILD_TESTING)
|
||||
|
||||
# The following tests rely on private APIs that are stripped
|
||||
# away in Release builds
|
||||
if (TNT_DEV AND NOT WASM AND NOT ANDROID AND NOT IOS)
|
||||
if (TNT_DEV AND NOT WEBGL AND NOT ANDROID AND NOT IOS)
|
||||
set(TEST_TARGET test_gltfio)
|
||||
|
||||
add_executable(${TEST_TARGET} test/gltfio_test.cpp)
|
||||
|
||||
@@ -99,7 +99,7 @@ if (MSVC)
|
||||
set(OPTIMIZATION_FLAGS
|
||||
/fp:fast
|
||||
)
|
||||
elseif (WASM)
|
||||
elseif(WEBGL)
|
||||
# Avoid strict-vtable-pointers here, it is broken in WebAssembly.
|
||||
set(OPTIMIZATION_FLAGS -fvisibility-inlines-hidden)
|
||||
else()
|
||||
|
||||
@@ -53,7 +53,7 @@ install(DIRECTORY ${PUBLIC_HDR_DIR}/image DESTINATION include)
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WASM AND NOT IOS AND NOT FILAMENT_SKIP_SDL2)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WEBGL AND NOT IOS AND NOT FILAMENT_SKIP_SDL2)
|
||||
add_executable(test_${TARGET} tests/test_image.cpp)
|
||||
target_link_libraries(test_${TARGET} PRIVATE imageio gtest)
|
||||
set_target_properties(test_${TARGET} PROPERTIES FOLDER Tests)
|
||||
|
||||
@@ -17,9 +17,9 @@ target_link_libraries(imagediff PRIVATE
|
||||
)
|
||||
|
||||
|
||||
if (NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
add_executable(test_imagediff tests/test_ImageDiff.cpp)
|
||||
target_link_libraries(test_imagediff PRIVATE imagediff gtest image utils)
|
||||
endif()
|
||||
|
||||
install(TARGETS imagediff ARCHIVE DESTINATION lib/${DIST_DIR} LIBRARY DESTINATION lib/${DIST_DIR})
|
||||
install(TARGETS imagediff ARCHIVE DESTINATION lib/${DIST_ARCH} LIBRARY DESTINATION lib/${DIST_ARCH})
|
||||
|
||||
@@ -45,7 +45,7 @@ install(DIRECTORY ${PUBLIC_HDR_DIR}/imageio-lite DESTINATION include)
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
add_executable(test_${TARGET} tests/test_imageio-lite.cpp)
|
||||
target_link_libraries(test_${TARGET} PRIVATE ${TARGET} image gtest)
|
||||
set_target_properties(test_${TARGET} PROPERTIES FOLDER Tests)
|
||||
|
||||
@@ -60,7 +60,7 @@ endfunction()
|
||||
add_testfile(color_grid_uastc_zstd.ktx2)
|
||||
add_testfile(lightroom_ibl.ktx)
|
||||
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
add_executable(test_ktxreader tests/test_ktxreader.cpp ${TESTFILES})
|
||||
target_link_libraries(test_ktxreader PRIVATE ${TARGET} gtest)
|
||||
set_target_properties(test_ktxreader PROPERTIES FOLDER Tests)
|
||||
|
||||
@@ -115,7 +115,7 @@ if (APPLE)
|
||||
list(APPEND SRCS src/darwin/Systrace.cpp)
|
||||
list(APPEND SRCS src/darwin/Tracing.cpp)
|
||||
endif()
|
||||
if (WASM)
|
||||
if (WEBGL)
|
||||
list(APPEND SRCS src/web/Path.cpp)
|
||||
endif()
|
||||
|
||||
@@ -208,12 +208,12 @@ if (FILAMENT_BUILD_TESTING)
|
||||
test/test_Status.cpp
|
||||
)
|
||||
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
target_compile_definitions(${TARGET} PUBLIC -DFILAMENT_WASM_THREADS)
|
||||
endif()
|
||||
|
||||
# The Path tests are platform-specific
|
||||
if (NOT WASM)
|
||||
if (NOT WEBGL)
|
||||
if (WIN32)
|
||||
list(APPEND TEST_SRCS test/test_WinPath.cpp)
|
||||
else()
|
||||
@@ -231,7 +231,7 @@ endif()
|
||||
# Benchmarks
|
||||
# ==================================================================================================
|
||||
|
||||
if (FILAMENT_BUILD_TESTING AND NOT WASM)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT WEBGL)
|
||||
|
||||
add_library(benchmark_${TARGET}_callee SHARED benchmark/benchmark_callee.cpp)
|
||||
set_target_properties(benchmark_${TARGET}_callee PROPERTIES FOLDER Benchmarks)
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
virtual ~Listener() noexcept;
|
||||
};
|
||||
|
||||
using ChangeCallback = std::function<void(Slice<const Entity>)>;
|
||||
using ChangeCallback = std::function<void(utils::Slice<const Entity>)>;
|
||||
|
||||
/**
|
||||
* Registers a callback to be triggered when entities are destroyed.
|
||||
@@ -105,7 +105,10 @@ public:
|
||||
|
||||
// Return whether the given Entity has been destroyed (false) or not (true).
|
||||
// Thread safe.
|
||||
bool isAlive(Entity e) const noexcept;
|
||||
bool isAlive(Entity const e) const noexcept {
|
||||
assert(getIndex(e) < RAW_INDEX_COUNT);
|
||||
return (!e.isNull()) && (getGeneration(e) == mGens[getIndex(e)]);
|
||||
}
|
||||
|
||||
// Registers a listener to be called when an entity is destroyed. Thread safe.
|
||||
// If the listener is already registered, this method has no effect.
|
||||
@@ -115,9 +118,13 @@ public:
|
||||
void unregisterListener(Listener* l) noexcept;
|
||||
|
||||
|
||||
|
||||
/* no user serviceable parts below */
|
||||
|
||||
// current generation of the given index. Use for debugging and testing.
|
||||
uint8_t getGenerationForIndex(size_t const index) const noexcept {
|
||||
return mGens[index];
|
||||
}
|
||||
|
||||
// singleton, can't be copied
|
||||
EntityManager(const EntityManager& rhs) = delete;
|
||||
EntityManager& operator=(const EntityManager& rhs) = delete;
|
||||
@@ -150,6 +157,9 @@ private:
|
||||
static Entity::Type makeIdentity(Entity::Type const g, Entity::Type const i) noexcept {
|
||||
return (g << GENERATION_SHIFT) | (i & INDEX_MASK);
|
||||
}
|
||||
|
||||
// stores the generation of each index.
|
||||
uint8_t* const mGens;
|
||||
};
|
||||
|
||||
} // namespace utils
|
||||
|
||||
@@ -55,19 +55,10 @@ public:
|
||||
static constexpr size_t getArrayCount() noexcept { return kArrayCount; }
|
||||
|
||||
// Size needed to store "size" array elements
|
||||
static size_t getNeededSize(size_t const size) noexcept {
|
||||
static size_t getNeededSize(size_t size) noexcept {
|
||||
return getOffset(kArrayCount - 1, size) + sizeof(TypeAt<kArrayCount - 1>) * size;
|
||||
}
|
||||
|
||||
template<typename OtherAllocator>
|
||||
void copyRange(size_t destOffset,
|
||||
const StructureOfArraysBase<OtherAllocator, Elements...>& src, size_t srcOffset, size_t count) {
|
||||
assert(destOffset + count <= mCapacity);
|
||||
assert(srcOffset + count <= src.mSize);
|
||||
Copier<OtherAllocator> copier{this, src, destOffset, srcOffset, count};
|
||||
const_cast<StructureOfArraysBase*>(this)->for_each_index(mArrays, copier);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------
|
||||
|
||||
class IteratorValue;
|
||||
@@ -86,28 +77,21 @@ public:
|
||||
friend class IteratorValue;
|
||||
friend iterator;
|
||||
friend const_iterator;
|
||||
friend class StructureOfArraysBase;
|
||||
StructureOfArraysBase* const UTILS_RESTRICT soa;
|
||||
size_t const index;
|
||||
|
||||
IteratorValueRef(StructureOfArraysBase* soa, size_t const index) : soa(soa), index(index) { }
|
||||
IteratorValueRef(StructureOfArraysBase* soa, size_t index) : soa(soa), index(index) { }
|
||||
|
||||
// assigns a value_type to a reference (i.e. assigns to what's pointed to by the reference)
|
||||
template<size_t ... Is>
|
||||
IteratorValueRef& assign(IteratorValue const& rhs, std::index_sequence<Is...>);
|
||||
|
||||
template<size_t ... Is>
|
||||
IteratorValueRef& assign(Structure const& rhs, std::index_sequence<Is...>);
|
||||
|
||||
template<size_t ... Is>
|
||||
IteratorValueRef& assign(Structure&& rhs, std::index_sequence<Is...>) noexcept;
|
||||
|
||||
// assigns a value_type to a reference (i.e. assigns to what's pointed to by the reference)
|
||||
template<size_t ... Is>
|
||||
IteratorValueRef& assign(IteratorValue&& rhs, std::index_sequence<Is...>) noexcept;
|
||||
|
||||
// objects pointed to by reference can be swapped, so provide the special swap() function.
|
||||
friend void swap(IteratorValueRef const lhs, IteratorValueRef const rhs) {
|
||||
friend void swap(IteratorValueRef lhs, IteratorValueRef rhs) {
|
||||
lhs.soa->swap(lhs.index, rhs.index);
|
||||
}
|
||||
|
||||
@@ -115,9 +99,6 @@ public:
|
||||
// references can be created by copy-assignment only
|
||||
IteratorValueRef(IteratorValueRef const& rhs) noexcept : soa(rhs.soa), index(rhs.index) { }
|
||||
|
||||
IteratorValueRef& operator=(Structure const& rhs);
|
||||
IteratorValueRef& operator=(Structure&& rhs) noexcept;
|
||||
|
||||
// copy the content of a reference to the content of this one
|
||||
IteratorValueRef& operator=(IteratorValueRef const& rhs);
|
||||
|
||||
@@ -139,10 +120,6 @@ public:
|
||||
template<size_t I> TypeAt<I>& get() { return soa->elementAt<I>(index); }
|
||||
};
|
||||
|
||||
IteratorValueRef operator[](size_t index) noexcept {
|
||||
return {this, index};
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* The value_type of iterator. This is basically the "structure" of the SoA.
|
||||
@@ -198,7 +175,7 @@ public:
|
||||
CVQualifiedSOAPointer soa; // don't use restrict, can have aliases if multiple iterators are created
|
||||
size_t index;
|
||||
|
||||
Iterator(CVQualifiedSOAPointer soa, size_t const index) : soa(soa), index(index) {}
|
||||
Iterator(CVQualifiedSOAPointer soa, size_t index) : soa(soa), index(index) {}
|
||||
|
||||
public:
|
||||
using value_type = IteratorValue;
|
||||
@@ -219,10 +196,10 @@ public:
|
||||
|
||||
Iterator& operator++() { ++index; return *this; }
|
||||
Iterator& operator--() { --index; return *this; }
|
||||
Iterator& operator+=(size_t const n) { index += n; return *this; }
|
||||
Iterator& operator-=(size_t const n) { index -= n; return *this; }
|
||||
Iterator operator+(size_t const n) const { return { soa, index + n }; }
|
||||
Iterator operator-(size_t const n) const { return { soa, index - n }; }
|
||||
Iterator& operator+=(size_t n) { index += n; return *this; }
|
||||
Iterator& operator-=(size_t n) { index -= n; return *this; }
|
||||
Iterator operator+(size_t n) const { return { soa, index + n }; }
|
||||
Iterator operator-(size_t n) const { return { soa, index - n }; }
|
||||
difference_type operator-(Iterator const& rhs) const { return index - rhs.index; }
|
||||
bool operator==(Iterator const& rhs) const { return (index == rhs.index); }
|
||||
bool operator!=(Iterator const& rhs) const { return (index != rhs.index); }
|
||||
@@ -245,7 +222,7 @@ public:
|
||||
|
||||
StructureOfArraysBase() = default;
|
||||
|
||||
explicit StructureOfArraysBase(size_t const capacity) {
|
||||
explicit StructureOfArraysBase(size_t capacity) {
|
||||
setCapacity(capacity);
|
||||
}
|
||||
|
||||
@@ -293,7 +270,7 @@ public:
|
||||
// set the capacity of the array. the capacity cannot be smaller than the current size,
|
||||
// the call is a no-op in that case.
|
||||
UTILS_NOINLINE
|
||||
void setCapacity(size_t const capacity) {
|
||||
void setCapacity(size_t capacity) {
|
||||
// allocate enough space for "capacity" elements of each array
|
||||
// capacity cannot change when optional storage is specified
|
||||
if (capacity >= mSize) {
|
||||
@@ -315,7 +292,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void ensureCapacity(size_t const needed) {
|
||||
void ensureCapacity(size_t needed) {
|
||||
if (UTILS_UNLIKELY(needed > mCapacity)) {
|
||||
// not enough space, increase the capacity
|
||||
const size_t capacity = (needed > SIZE_MAX / 3) ? needed : (needed * 3 + 1) / 2;
|
||||
@@ -328,7 +305,7 @@ public:
|
||||
// If the arrays don't have enough capacity, the capacity is increased accordingly
|
||||
// (the capacity is set to 3/2 of the asked size).
|
||||
UTILS_NOINLINE
|
||||
void resize(size_t const needed) {
|
||||
void resize(size_t needed) {
|
||||
ensureCapacity(needed);
|
||||
resizeNoCheck(needed);
|
||||
if (needed <= mCapacity) {
|
||||
@@ -341,7 +318,7 @@ public:
|
||||
}
|
||||
|
||||
|
||||
void swap(size_t i, size_t j) noexcept {
|
||||
inline void swap(size_t i, size_t j) noexcept {
|
||||
forEach([i, j](auto p) {
|
||||
using std::swap;
|
||||
swap(p[i], p[j]);
|
||||
@@ -349,7 +326,7 @@ public:
|
||||
}
|
||||
|
||||
// remove and destroy the last element of each array
|
||||
void pop_back() noexcept {
|
||||
inline void pop_back() noexcept {
|
||||
if (mSize) {
|
||||
destroy_each(mSize - 1, mSize);
|
||||
mSize--;
|
||||
@@ -506,97 +483,80 @@ public:
|
||||
using Type = typename SoA::template TypeAt<E>;
|
||||
|
||||
UTILS_ALWAYS_INLINE Field& operator = (Field&& rhs) noexcept {
|
||||
soa.template elementAt<E>(i) = soa.template elementAt<E>(rhs.i);
|
||||
soa.elementAt<E>(i) = soa.elementAt<E>(rhs.i);
|
||||
return *this;
|
||||
}
|
||||
|
||||
// auto-conversion to the field's type
|
||||
UTILS_ALWAYS_INLINE operator Type&() noexcept {
|
||||
return soa.template elementAt<E>(i);
|
||||
return soa.elementAt<E>(i);
|
||||
}
|
||||
UTILS_ALWAYS_INLINE operator Type const&() const noexcept {
|
||||
return soa.template elementAt<E>(i);
|
||||
return soa.elementAt<E>(i);
|
||||
}
|
||||
// dereferencing the selected field
|
||||
UTILS_ALWAYS_INLINE Type& operator ->() noexcept {
|
||||
return soa.template elementAt<E>(i);
|
||||
return soa.elementAt<E>(i);
|
||||
}
|
||||
UTILS_ALWAYS_INLINE Type const& operator ->() const noexcept {
|
||||
return soa.template elementAt<E>(i);
|
||||
return soa.elementAt<E>(i);
|
||||
}
|
||||
// address-of the selected field
|
||||
UTILS_ALWAYS_INLINE Type* operator &() noexcept {
|
||||
return &soa.template elementAt<E>(i);
|
||||
return &soa.elementAt<E>(i);
|
||||
}
|
||||
UTILS_ALWAYS_INLINE Type const* operator &() const noexcept {
|
||||
return &soa.template elementAt<E>(i);
|
||||
return &soa.elementAt<E>(i);
|
||||
}
|
||||
// assignment to the field
|
||||
UTILS_ALWAYS_INLINE Type const& operator = (Type const& other) noexcept {
|
||||
return (soa.template elementAt<E>(i) = other);
|
||||
return (soa.elementAt<E>(i) = other);
|
||||
}
|
||||
UTILS_ALWAYS_INLINE Type const& operator = (Type&& other) noexcept {
|
||||
return (soa.template elementAt<E>(i) = std::forward<Type>(other));
|
||||
return (soa.elementAt<E>(i) = std::forward<Type>(other));
|
||||
}
|
||||
// comparisons
|
||||
UTILS_ALWAYS_INLINE bool operator==(Type const& other) const {
|
||||
return (soa.template elementAt<E>(i) == other);
|
||||
return (soa.elementAt<E>(i) == other);
|
||||
}
|
||||
UTILS_ALWAYS_INLINE bool operator!=(Type const& other) const {
|
||||
return (soa.template elementAt<E>(i) != other);
|
||||
return (soa.elementAt<E>(i) != other);
|
||||
}
|
||||
// calling the field
|
||||
template <typename ... ARGS>
|
||||
UTILS_ALWAYS_INLINE decltype(auto) operator()(ARGS&& ... args) noexcept {
|
||||
return soa.template elementAt<E>(i)(std::forward<ARGS>(args)...);
|
||||
return soa.elementAt<E>(i)(std::forward<ARGS>(args)...);
|
||||
}
|
||||
template <typename ... ARGS>
|
||||
UTILS_ALWAYS_INLINE decltype(auto) operator()(ARGS&& ... args) const noexcept {
|
||||
return soa.template elementAt<E>(i)(std::forward<ARGS>(args)...);
|
||||
return soa.elementAt<E>(i)(std::forward<ARGS>(args)...);
|
||||
}
|
||||
};
|
||||
|
||||
private:
|
||||
template<typename OtherAllocator>
|
||||
struct Copier {
|
||||
StructureOfArraysBase* dest;
|
||||
const StructureOfArraysBase<OtherAllocator, Elements...>& src;
|
||||
size_t destOffset;
|
||||
size_t srcOffset;
|
||||
size_t count;
|
||||
|
||||
template<size_t I>
|
||||
void operator()(TypeAt<I>* destPtr) const {
|
||||
using ElementType = TypeAt<I>;
|
||||
ElementType const* const s = std::get<I>(src.mArrays) + srcOffset;
|
||||
ElementType* const d = destPtr + destOffset;
|
||||
std::copy_n(s, count, d);
|
||||
}
|
||||
};
|
||||
|
||||
template<std::size_t I = 0, typename FuncT, typename... Tp>
|
||||
std::enable_if_t<I == sizeof...(Tp), void>
|
||||
inline std::enable_if_t<I == sizeof...(Tp), void>
|
||||
for_each(std::tuple<Tp...>&, FuncT) {}
|
||||
|
||||
template<std::size_t I = 0, typename FuncT, typename... Tp>
|
||||
std::enable_if_t<I < sizeof...(Tp), void>
|
||||
inline std::enable_if_t<I < sizeof...(Tp), void>
|
||||
for_each(std::tuple<Tp...>& t, FuncT f) {
|
||||
f(I, std::get<I>(t));
|
||||
for_each<I + 1, FuncT, Tp...>(t, f);
|
||||
}
|
||||
|
||||
template<std::size_t I = 0, typename FuncT, typename... Tp>
|
||||
std::enable_if_t<I == sizeof...(Tp), void>
|
||||
inline std::enable_if_t<I == sizeof...(Tp), void>
|
||||
for_each_index(std::tuple<Tp...>&, FuncT) {}
|
||||
|
||||
template<std::size_t I = 0, typename FuncT, typename... Tp>
|
||||
std::enable_if_t<I < sizeof...(Tp), void>
|
||||
inline std::enable_if_t<I < sizeof...(Tp), void>
|
||||
for_each_index(std::tuple<Tp...>& t, FuncT f) {
|
||||
f.template operator()<I>(std::get<I>(t));
|
||||
for_each_index<I + 1, FuncT, Tp...>(t, f);
|
||||
}
|
||||
|
||||
void resizeNoCheck(size_t const needed) noexcept {
|
||||
inline void resizeNoCheck(size_t needed) noexcept {
|
||||
assert(mCapacity >= needed);
|
||||
if (needed < mSize) {
|
||||
// we shrink the arrays
|
||||
@@ -610,12 +570,12 @@ private:
|
||||
}
|
||||
|
||||
// this calculates the offset adjusted for all data alignment of a given array
|
||||
static size_t getOffset(size_t index, size_t const capacity) noexcept {
|
||||
static inline size_t getOffset(size_t index, size_t capacity) noexcept {
|
||||
auto offsets = getOffsets(capacity);
|
||||
return offsets[index];
|
||||
}
|
||||
|
||||
static std::array<size_t, kArrayCount> getOffsets(size_t capacity) noexcept {
|
||||
static inline std::array<size_t, kArrayCount> getOffsets(size_t capacity) noexcept {
|
||||
// compute the required size of each array
|
||||
const size_t sizes[] = { (sizeof(Elements) * capacity)... };
|
||||
|
||||
@@ -658,7 +618,7 @@ private:
|
||||
});
|
||||
}
|
||||
|
||||
void move_each(void* buffer, size_t const capacity) noexcept {
|
||||
void move_each(void* buffer, size_t capacity) noexcept {
|
||||
auto offsets = getOffsets(capacity);
|
||||
size_t index = 0;
|
||||
if (mSize) {
|
||||
@@ -693,7 +653,7 @@ private:
|
||||
// update the pointers
|
||||
for_each(mArrays, [buffer, &offsets](size_t i, auto&& p) {
|
||||
using Type = std::remove_reference_t<decltype(p)>;
|
||||
p = Type(static_cast<char*>(buffer) + offsets[i]);
|
||||
p = Type((char*)buffer + offsets[i]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -708,6 +668,7 @@ private:
|
||||
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
inline
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::operator=(
|
||||
IteratorValueRef const& rhs) {
|
||||
@@ -715,28 +676,16 @@ StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::operator=(
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
inline
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::operator=(
|
||||
IteratorValueRef&& rhs) noexcept {
|
||||
return operator=(IteratorValue(rhs));
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::operator=(
|
||||
Structure const& rhs) {
|
||||
return assign(rhs, std::make_index_sequence<kArrayCount>());
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::operator=(
|
||||
Structure&& rhs) noexcept {
|
||||
return assign(std::move(rhs), std::make_index_sequence<kArrayCount>());
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
template<size_t... Is>
|
||||
inline
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::assign(
|
||||
IteratorValue const& rhs, std::index_sequence<Is...>) {
|
||||
@@ -747,24 +696,7 @@ StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::assign(
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
template<size_t... Is>
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::assign(
|
||||
Structure const& rhs, std::index_sequence<Is...>) {
|
||||
auto UTILS_UNUSED l = {(soa->template elementAt<Is>(index) = std::get<Is>(rhs), 0)...};
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
template<size_t... Is>
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::assign(
|
||||
Structure&& rhs, std::index_sequence<Is...>) noexcept {
|
||||
auto UTILS_UNUSED l = {(soa->template elementAt<Is>(index) = std::move(std::get<Is>(rhs)), 0)...};
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename Allocator, typename... Elements>
|
||||
template<size_t... Is>
|
||||
inline
|
||||
typename StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef&
|
||||
StructureOfArraysBase<Allocator, Elements...>::IteratorValueRef::assign(
|
||||
IteratorValue&& rhs, std::index_sequence<Is...>) noexcept {
|
||||
|
||||
@@ -18,21 +18,21 @@
|
||||
|
||||
#include "EntityManagerImpl.h"
|
||||
|
||||
#include <utils/Entity.h>
|
||||
|
||||
#include <cassert>
|
||||
#include <cstddef>
|
||||
#include <mutex>
|
||||
#include <new>
|
||||
#include <utility>
|
||||
|
||||
namespace utils {
|
||||
|
||||
EntityManager::Listener::~Listener() noexcept = default;
|
||||
|
||||
EntityManager::EntityManager() = default;
|
||||
EntityManager::EntityManager()
|
||||
: mGens(new uint8_t[RAW_INDEX_COUNT]) {
|
||||
// initialize all the generations to 0
|
||||
std::fill_n(mGens, RAW_INDEX_COUNT, 0);
|
||||
}
|
||||
|
||||
EntityManager::~EntityManager() = default;
|
||||
EntityManager::~EntityManager() {
|
||||
delete [] mGens;
|
||||
}
|
||||
|
||||
EntityManager& EntityManager::get() noexcept {
|
||||
// note: we leak the EntityManager because it's more important that it survives everything else
|
||||
@@ -41,11 +41,11 @@ EntityManager& EntityManager::get() noexcept {
|
||||
return *instance;
|
||||
}
|
||||
|
||||
void EntityManager::create(size_t const n, Entity* entities) {
|
||||
void EntityManager::create(size_t n, Entity* entities) {
|
||||
static_cast<EntityManagerImpl *>(this)->create(n, entities);
|
||||
}
|
||||
|
||||
void EntityManager::destroy(size_t const n, Entity* entities) noexcept {
|
||||
void EntityManager::destroy(size_t n, Entity* entities) noexcept {
|
||||
static_cast<EntityManagerImpl *>(this)->destroy(n, entities);
|
||||
}
|
||||
|
||||
@@ -84,8 +84,4 @@ void EntityManager::dumpActiveEntities(utils::io::ostream& out) const {
|
||||
|
||||
#endif
|
||||
|
||||
bool EntityManager::isAlive(Entity const e) const noexcept {
|
||||
return static_cast<EntityManagerImpl const *>(this)->isAlive(e);
|
||||
}
|
||||
|
||||
} // namespace utils
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <deque>
|
||||
#include <memory>
|
||||
#include <mutex> // for std::lock_guard
|
||||
#include <new>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
@@ -50,38 +49,15 @@ static constexpr size_t MIN_FREE_INDICES = 1024;
|
||||
|
||||
class UTILS_PRIVATE EntityManagerImpl : public EntityManager {
|
||||
public:
|
||||
friend class EntityManager;
|
||||
|
||||
using EntityManager::getGeneration;
|
||||
using EntityManager::getIndex;
|
||||
using EntityManager::makeIdentity;
|
||||
using EntityManager::create;
|
||||
using EntityManager::destroy;
|
||||
|
||||
EntityManagerImpl() noexcept
|
||||
: mGens(new(std::nothrow) uint8_t[RAW_INDEX_COUNT]) {
|
||||
// initialize all the generations to 0
|
||||
std::fill_n(mGens, RAW_INDEX_COUNT, 0);
|
||||
}
|
||||
|
||||
~EntityManagerImpl() noexcept {
|
||||
delete [] mGens;
|
||||
}
|
||||
|
||||
bool isAlive(Entity const e) const noexcept {
|
||||
assert(getIndex(e) < RAW_INDEX_COUNT);
|
||||
if (e.isNull()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::lock_guard const lock(mFreeListLock);
|
||||
bool const alive = (getGeneration(e) == mGens[getIndex(e)]);
|
||||
return alive;
|
||||
}
|
||||
|
||||
UTILS_NOINLINE
|
||||
size_t getEntityCount() const noexcept {
|
||||
std::lock_guard const lock(mFreeListLock);
|
||||
std::lock_guard<Mutex> const lock(mFreeListLock);
|
||||
if (mCurrentIndex < RAW_INDEX_COUNT) {
|
||||
return (mCurrentIndex - 1) - mFreeList.size();
|
||||
} else {
|
||||
@@ -90,13 +66,13 @@ public:
|
||||
}
|
||||
|
||||
UTILS_NOINLINE
|
||||
void create(size_t const n, Entity* entities) {
|
||||
void create(size_t n, Entity* entities) {
|
||||
Entity::Type index{};
|
||||
auto& freeList = mFreeList;
|
||||
uint8_t const* const gens = mGens;
|
||||
|
||||
// this must be thread-safe, acquire the free-list mutex
|
||||
std::lock_guard const lock(mFreeListLock);
|
||||
std::lock_guard<Mutex> const lock(mFreeListLock);
|
||||
Entity::Type currentIndex = mCurrentIndex;
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
if (UTILS_UNLIKELY(currentIndex >= RAW_INDEX_COUNT || freeList.size() >= MIN_FREE_INDICES)) {
|
||||
@@ -122,11 +98,11 @@ public:
|
||||
}
|
||||
|
||||
UTILS_NOINLINE
|
||||
void destroy(size_t const n, Entity* entities) noexcept {
|
||||
void destroy(size_t n, Entity* entities) noexcept {
|
||||
auto& freeList = mFreeList;
|
||||
uint8_t* const gens = mGens;
|
||||
|
||||
std::unique_lock lock(mFreeListLock);
|
||||
std::unique_lock<Mutex> lock(mFreeListLock);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
if (!entities[i]) {
|
||||
// behave like free(), ok to free null Entity.
|
||||
@@ -134,15 +110,19 @@ public:
|
||||
}
|
||||
|
||||
// it's an error to delete an Entity twice...
|
||||
bool const isAlive = getGeneration(entities[i]) == mGens[getIndex(entities[i])];
|
||||
assert(isAlive);
|
||||
assert(isAlive(entities[i]));
|
||||
|
||||
// ... deleting a dead Entity will corrupt the internal state, so we protect ourselves
|
||||
// against it. We don't guarantee anything about external state -- e.g. the listeners
|
||||
// will be called.
|
||||
if (UTILS_LIKELY(isAlive)) {
|
||||
if (isAlive(entities[i])) {
|
||||
Entity::Type const index = getIndex(entities[i]);
|
||||
freeList.push_back(index);
|
||||
|
||||
// The generation update doesn't require the lock because it's only used for isAlive()
|
||||
// and entities work as weak references -- it just means that isAlive() could return
|
||||
// true a little longer than expected in some other threads.
|
||||
// We do need a memory fence though, it is provided by the mFreeListLock.unlock() below.
|
||||
gens[index]++;
|
||||
|
||||
#if FILAMENT_UTILS_TRACK_ENTITIES
|
||||
@@ -171,22 +151,22 @@ public:
|
||||
}
|
||||
|
||||
void registerListener(Listener* l) noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
mListeners.insert(l);
|
||||
}
|
||||
|
||||
void unregisterListener(Listener* l) noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
mListeners.erase(l);
|
||||
}
|
||||
|
||||
void registerChangeCallback(void const* token, ChangeCallback callback) noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
mChangeCallbacks.push_back({token, std::move(callback)});
|
||||
}
|
||||
|
||||
void unregisterChangeCallback(void const* token) noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
mChangeCallbacks.erase(
|
||||
std::remove_if(mChangeCallbacks.begin(), mChangeCallbacks.end(),
|
||||
[token](auto const& info) { return info.token == token; }),
|
||||
@@ -194,7 +174,7 @@ public:
|
||||
}
|
||||
|
||||
void flushNotifications() noexcept {
|
||||
std::unique_lock lock(mFreeListLock);
|
||||
std::unique_lock<Mutex> lock(mFreeListLock);
|
||||
if (mDirtyCount > 0) {
|
||||
Entity localBuffer[MAX_DIRTY_COUNT];
|
||||
assert_invariant(mDirtyCount <= MAX_DIRTY_COUNT);
|
||||
@@ -228,7 +208,7 @@ public:
|
||||
|
||||
private:
|
||||
std::vector<ChangeCallback> getChangeCallbacks() const noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
std::vector<ChangeCallback> result;
|
||||
result.reserve(mChangeCallbacks.size());
|
||||
for (auto const& info : mChangeCallbacks) {
|
||||
@@ -237,7 +217,7 @@ private:
|
||||
return result;
|
||||
}
|
||||
|
||||
void triggerChangeCallbacks(Entity const* entities, size_t const n) const noexcept {
|
||||
void triggerChangeCallbacks(Entity const* entities, size_t n) const noexcept {
|
||||
auto const callbacks = getChangeCallbacks();
|
||||
Slice const slice(entities, n);
|
||||
for (auto const& callback : callbacks) {
|
||||
@@ -246,7 +226,7 @@ private:
|
||||
}
|
||||
|
||||
FixedCapacityVector<Listener*> getListeners() const noexcept {
|
||||
std::lock_guard const lock(mListenerLock);
|
||||
std::lock_guard<Mutex> const lock(mListenerLock);
|
||||
tsl::robin_set<Listener*> const& listeners = mListeners;
|
||||
FixedCapacityVector<Listener*> result(listeners.size());
|
||||
result.resize(result.capacity()); // unfortunately this memset()
|
||||
@@ -254,20 +234,22 @@ private:
|
||||
return result; // the c++ standard guarantees a move
|
||||
}
|
||||
|
||||
static constexpr size_t MAX_DIRTY_COUNT = 16;
|
||||
uint32_t mCurrentIndex = 1;
|
||||
|
||||
// stores indices that got freed
|
||||
mutable Mutex mFreeListLock;
|
||||
std::deque<Entity::Type> mFreeList;
|
||||
|
||||
mutable Mutex mListenerLock;
|
||||
tsl::robin_set<Listener*> mListeners;
|
||||
|
||||
struct CallbackInfo {
|
||||
void const* token;
|
||||
ChangeCallback callback;
|
||||
};
|
||||
|
||||
mutable Mutex mFreeListLock;
|
||||
uint32_t mCurrentIndex = 1;
|
||||
std::deque<Entity::Type> mFreeList; // stores indices that got freed
|
||||
uint8_t* const mGens; // stores the generation of each index.
|
||||
|
||||
mutable Mutex mListenerLock;
|
||||
tsl::robin_set<Listener*> mListeners;
|
||||
std::vector<CallbackInfo> mChangeCallbacks;
|
||||
|
||||
static constexpr size_t MAX_DIRTY_COUNT = 16;
|
||||
Entity mDirtyEntities[MAX_DIRTY_COUNT];
|
||||
size_t mDirtyCount = 0;
|
||||
|
||||
|
||||
@@ -19,11 +19,6 @@
|
||||
#include <utils/StructureOfArrays.h>
|
||||
#include <math/vec4.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
using namespace filament::math;
|
||||
using namespace utils;
|
||||
|
||||
@@ -76,7 +71,7 @@ TEST(StructureOfArraysTest, Iterator) {
|
||||
EXPECT_EQ(soa.elementAt<0>(2), 3.0f);
|
||||
|
||||
for (size_t i = 0; i < 8; i++) {
|
||||
soa.elementAt<0>(i) = float(std::rand());
|
||||
soa.elementAt<0>(i) = (float)std::rand();
|
||||
soa.elementAt<1>(i) = soa.elementAt<0>(i) * 2;
|
||||
soa.elementAt<2>(i) = soa.elementAt<0>(i) * 4;
|
||||
}
|
||||
@@ -108,7 +103,7 @@ TEST(StructureOfArraysTest, Simple) {
|
||||
soa.elementAt<2>(i) = i * 4;
|
||||
}
|
||||
|
||||
size_t const capacity = soa.capacity();
|
||||
size_t capacity = soa.capacity();
|
||||
|
||||
// check that each array doesn't overlap the previous one
|
||||
EXPECT_TRUE((void*)soa.data<1>() >= (void*)(soa.data<0>() + capacity));
|
||||
@@ -188,42 +183,3 @@ TEST(StructureOfArraysTest, MoveOnly) {
|
||||
EXPECT_EQ(*soa.elementAt<1>(1).get(), 2);
|
||||
}
|
||||
|
||||
TEST(StructureOfArraysTest, CopyRange) {
|
||||
StructureOfArrays<float, double, TestFloat4> soa1;
|
||||
StructureOfArrays<float, double, TestFloat4> soa2;
|
||||
|
||||
soa1.setCapacity(10);
|
||||
soa1.resize(5);
|
||||
for (size_t i = 0; i < 5; i++) {
|
||||
soa1.elementAt<0>(i) = i;
|
||||
soa1.elementAt<1>(i) = i * 2;
|
||||
soa1.elementAt<2>(i) = i * 4;
|
||||
}
|
||||
|
||||
soa2.setCapacity(10);
|
||||
soa2.resize(5);
|
||||
|
||||
soa2.copyRange(1, soa1, 1, 3);
|
||||
|
||||
EXPECT_EQ(soa2.elementAt<0>(1), 1.0f);
|
||||
EXPECT_EQ(soa2.elementAt<1>(1), 2.0);
|
||||
EXPECT_EQ(soa2.elementAt<2>(1), TestFloat4{ 4.0f });
|
||||
|
||||
EXPECT_EQ(soa2.elementAt<0>(3), 3.0f);
|
||||
EXPECT_EQ(soa2.elementAt<1>(3), 6.0);
|
||||
EXPECT_EQ(soa2.elementAt<2>(3), TestFloat4{ 12.0f });
|
||||
}
|
||||
|
||||
TEST(StructureOfArraysTest, AssignTuple) {
|
||||
StructureOfArrays<float, double, TestFloat4> soa;
|
||||
soa.setCapacity(10);
|
||||
soa.resize(5);
|
||||
|
||||
auto tuple = std::make_tuple(1.0f, 2.0, TestFloat4{4.0f});
|
||||
soa[2] = tuple;
|
||||
|
||||
EXPECT_EQ(soa.elementAt<0>(2), 1.0f);
|
||||
EXPECT_EQ(soa.elementAt<1>(2), 2.0);
|
||||
EXPECT_EQ(soa.elementAt<2>(2), TestFloat4{ 4.0f });
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ install(DIRECTORY ${PUBLIC_HDR_DIR}/viewer DESTINATION include)
|
||||
# ==================================================================================================
|
||||
# Tests
|
||||
# ==================================================================================================
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WASM AND NOT IOS)
|
||||
if (FILAMENT_BUILD_TESTING AND NOT ANDROID AND NOT WEBGL AND NOT IOS)
|
||||
add_executable(test_settings tests/test_settings.cpp)
|
||||
target_link_libraries(test_settings PRIVATE ${TARGET} gtest)
|
||||
set_target_properties(test_settings PROPERTIES FOLDER Tests)
|
||||
|
||||
4
third_party/abseil/tnt/CMakeLists.txt
vendored
4
third_party/abseil/tnt/CMakeLists.txt
vendored
@@ -3,10 +3,6 @@ option(FILAMENT_USE_EXTERNAL_ABSL "Use find_package to locate an external Abseil
|
||||
if (FILAMENT_USE_EXTERNAL_ABSL)
|
||||
find_package(absl CONFIG QUIET)
|
||||
else()
|
||||
# This will skip checks that sometimes fail due to enviornment incompatibility on Linxu. Abseil can
|
||||
# still be built without this.
|
||||
set(ABSL_INTERNAL_AT_LEAST_CXX17 TRUE CACHE BOOL "Forced in wrapper")
|
||||
set(ABSL_INTERNAL_AT_LEAST_CXX20 TRUE CACHE BOOL "Forced in wrapper")
|
||||
add_subdirectory(../ "${CMAKE_CURRENT_BINARY_DIR}/abseil")
|
||||
endif()
|
||||
|
||||
|
||||
2
third_party/clang/iOS.cmake
vendored
2
third_party/clang/iOS.cmake
vendored
@@ -21,8 +21,6 @@ if(PLATFORM_NAME STREQUAL "iphonesimulator")
|
||||
add_definitions(-DFILAMENT_IOS_SIMULATOR)
|
||||
# The simulator only supports iOS >= 13.0
|
||||
set(IOS_MIN_TARGET "13.0")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -target ${IOS_ARCH}-apple-ios${IOS_MIN_TARGET}-simulator")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -target ${IOS_ARCH}-apple-ios${IOS_MIN_TARGET}-simulator")
|
||||
endif()
|
||||
|
||||
SET(CMAKE_SYSTEM_NAME Darwin)
|
||||
|
||||
3
third_party/dawn/tnt/CMakeLists.txt
vendored
3
third_party/dawn/tnt/CMakeLists.txt
vendored
@@ -52,6 +52,8 @@ if (ANDROID AND FILAMENT_BUILD_FILAMAT)
|
||||
tint_lang_spirv_intrinsic
|
||||
tint_lang_spirv_ir
|
||||
tint_lang_spirv_reader
|
||||
tint_lang_spirv_reader_ast_lower
|
||||
tint_lang_spirv_reader_ast_parser
|
||||
tint_lang_spirv_reader_common
|
||||
tint_lang_spirv_reader_lower
|
||||
tint_lang_spirv_reader_parser
|
||||
@@ -75,7 +77,6 @@ if (ANDROID AND FILAMENT_BUILD_FILAMAT)
|
||||
tint_utils_rtti
|
||||
tint_utils_strconv
|
||||
tint_utils_symbol
|
||||
tint_utils_system
|
||||
tint_utils_text
|
||||
tint_utils_text_generator
|
||||
)
|
||||
|
||||
4
third_party/libwebp/tnt/CMakeLists.txt
vendored
4
third_party/libwebp/tnt/CMakeLists.txt
vendored
@@ -15,11 +15,11 @@ set(WEBP_BUILD_WEBPMUX OFF)
|
||||
set(WEBP_BUILD_EXTRAS OFF)
|
||||
set(WEBP_BUILD_FUZZTEST OFF)
|
||||
|
||||
if (WASM)
|
||||
if (WEBGL)
|
||||
set(WEBP_BUILD_WEBP_JS ON)
|
||||
set(WEBP_ENABLE_SIMD OFF)
|
||||
# ensure non-empty config var value
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
set(WEBP_USE_THREAD ON)
|
||||
else()
|
||||
set(WEBP_USE_THREAD OFF)
|
||||
|
||||
@@ -5,7 +5,7 @@ This directory contains the web-based samples, tutorials, and the JavaScript wra
|
||||
## Structure
|
||||
|
||||
- `examples/`
|
||||
Contains the source for the Web tutorials, HTML samples, materials, and assets.
|
||||
Contains the source for the WebGL tutorials, HTML samples, materials, and assets.
|
||||
These examples use `filament.js` and `filament.wasm` to demonstrate various features of the engine.
|
||||
|
||||
- `filament-js/`
|
||||
@@ -13,7 +13,7 @@ This directory contains the web-based samples, tutorials, and the JavaScript wra
|
||||
|
||||
## Building the Web Examples
|
||||
|
||||
To build the Web targets and compile all required materials and assets, you will need the Emscripten SDK installed and activated.
|
||||
To build the WebGL targets and compile all required materials and assets, you will need the Emscripten SDK installed and activated.
|
||||
|
||||
1. **Activate Emscripten SDK:**
|
||||
Make sure you have `EMSDK` in your environment.
|
||||
@@ -24,15 +24,15 @@ To build the Web targets and compile all required materials and assets, you will
|
||||
```
|
||||
|
||||
2. **Run the Build Script:**
|
||||
From the root directory of the repository, execute the build script targeting Web:
|
||||
From the root directory of the repository, execute the build script targeting WebGL:
|
||||
```bash
|
||||
./build.sh -p wasm release
|
||||
./build.sh -p webgl release
|
||||
```
|
||||
|
||||
This will:
|
||||
- Compile the C++ engine to `filament.wasm` and `filament.js`.
|
||||
- Build all materials (`.mat` to `.filamat`) and process textures required by the examples.
|
||||
- Output everything into `out/cmake-wasm-release/examples/`.
|
||||
- Output everything into `out/cmake-webgl-release/examples/`.
|
||||
|
||||
## Running the Examples
|
||||
|
||||
@@ -71,7 +71,7 @@ If you want your web sample or tutorial to appear on the official Filament docum
|
||||
Add your generated `.html` or `.md` file to the mapping in `docs_src/build/duplicates.json`. This
|
||||
tells the documentation build script to copy your sample into the `mdbook` structure.
|
||||
```json
|
||||
"out/cmake-wasm-release/web/examples/examples/your_sample/your_sample.html": {
|
||||
"out/cmake-webgl-release/web/examples/examples/your_sample/your_sample.html": {
|
||||
"dest": "samples/web/your_sample.md"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -4,8 +4,7 @@ material {
|
||||
color
|
||||
],
|
||||
shadingModel : unlit,
|
||||
culling : none,
|
||||
featureLevel: 0
|
||||
culling : none
|
||||
}
|
||||
|
||||
fragment {
|
||||
|
||||
@@ -42,7 +42,7 @@ def find_examples_dir():
|
||||
examples_dir = find_examples_dir()
|
||||
|
||||
if not examples_dir:
|
||||
print("Could not find the built examples directory in out/. Please build the wasm target first.", file=sys.stderr)
|
||||
print("Could not find the built examples directory in out/. Please build the webgl target first.", file=sys.stderr)
|
||||
# fallback to web/examples for testing, though it won't have the built assets
|
||||
examples_dir = str(SCRIPT_DIR)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ set(CPP_SRC
|
||||
# The emcc options are not documented well, the best place to find them is the source:
|
||||
# https://github.com/kripken/emscripten/blob/main/src/settings.js
|
||||
|
||||
if (WASM_PTHREADS)
|
||||
if (WEBGL_PTHREADS)
|
||||
set(COPTS "${COPTS} -pthread")
|
||||
set(LOPTS "${LOPTS} -pthread")
|
||||
endif()
|
||||
@@ -31,7 +31,6 @@ set(COPTS "${COPTS} -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0")
|
||||
set(LOPTS "${LOPTS} --bind")
|
||||
set(LOPTS "${LOPTS} -s ALLOW_MEMORY_GROWTH=1")
|
||||
set(LOPTS "${LOPTS} -s EXPORTED_FUNCTIONS=['_malloc','_free']")
|
||||
set(LOPTS "${LOPTS} -s EXPORTED_RUNTIME_METHODS=['HEAP8','HEAP16','HEAP32','HEAPU8','HEAPU16','HEAPU32','HEAPF32','HEAPF64']")
|
||||
set(LOPTS "${LOPTS} -s MODULARIZE=1")
|
||||
set(LOPTS "${LOPTS} -s EXPORT_NAME=Filament")
|
||||
set(LOPTS "${LOPTS} -s USE_WEBGL2=1")
|
||||
|
||||
@@ -22,7 +22,7 @@ To publish a new package to npm, do the following.
|
||||
3. Edit the version number in `package.json`. You cannot publish the same version more than once.
|
||||
4. From the root folder in your Filament repo, do:
|
||||
```
|
||||
./build.sh -ap wasm release
|
||||
./build.sh -ap webgl release
|
||||
./build.sh -ap all release
|
||||
```
|
||||
5. Make a commit and a tag whose label is the 3-tiered version number prefixed with a `v`:
|
||||
@@ -36,7 +36,7 @@ git commit && git tag -a v{XX}.{YY}.{ZZ}
|
||||
:---: | :---
|
||||
|
||||
```
|
||||
cd out/cmake-wasm-release/web/filament-js
|
||||
cd out/cmake-webgl-release/web/filament-js
|
||||
npm publish --dry-run
|
||||
```
|
||||
8. If the output of the dry run looks okay to you (double check the version number!), then finally
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "filament",
|
||||
"version": "1.71.2",
|
||||
"version": "1.71.3",
|
||||
"description": "Real-time physically based rendering engine",
|
||||
"main": "filament.js",
|
||||
"module": "filament.js",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/*
|
||||
* This file exists only to test the buildability of our TypeScript annotations, To run the test,
|
||||
* invoke Filament's easy build script with "./build.sh -up wasm release", or do:
|
||||
* invoke Filament's easy build script with "./build.sh -up webgl release", or do:
|
||||
*
|
||||
* npx tsc --noEmit \
|
||||
* ../../third_party/gl-matrix/gl-matrix.d.ts \
|
||||
|
||||
Reference in New Issue
Block a user