[iOS] merge shader header and disable cpp-interp in example project (#2808)

* [iOS] disable objc-interp in example project & reuse struct header inside shader

* [iOS] support sharing Shader Header on both cocoapods and SPM
This commit is contained in:
Byeong Gwan 2025-04-10 18:27:24 +09:00 committed by GitHub
parent e10a9f04c5
commit 88230582c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 24 deletions

View File

@ -18,7 +18,8 @@ Spine runtimes for iOS.
s.platform = :ios, '13.0' s.platform = :ios, '13.0'
s.xcconfig = { s.xcconfig = {
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp/include" "$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp-lite"' 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp/include" "$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp-lite"',
'MTL_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineShadersStructs"'
} }
s.resource_bundles = { s.resource_bundles = {

View File

@ -462,7 +462,7 @@
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "Spine iOS Example/Spine iOS Example-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Spine iOS Example/Spine iOS Example-Bridging-Header.h";
SWIFT_OBJC_INTEROP_MODE = objcxx; SWIFT_OBJC_INTEROP_MODE = objc;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
@ -506,7 +506,7 @@
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OBJC_BRIDGING_HEADER = "Spine iOS Example/Spine iOS Example-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Spine iOS Example/Spine iOS Example-Bridging-Header.h";
SWIFT_OBJC_INTEROP_MODE = objcxx; SWIFT_OBJC_INTEROP_MODE = objc;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
}; };

View File

@ -2,27 +2,15 @@
#include <simd/simd.h> #include <simd/simd.h>
using namespace metal; using namespace metal;
typedef enum SpineVertexInputIndex { #if __has_include("spine-ios/Sources/SpineShadersStructs/SpineShadersStructs.h")
SpineVertexInputIndexVertices = 0, // Cocoapods Target
SpineVertexInputIndexTransform = 1, #include "spine-ios/Sources/SpineShadersStructs/SpineShadersStructs.h"
SpineVertexInputIndexViewportSize = 2, #elif __has_include("../../SpineShadersStructs/SpineShadersStructs.h")
} SpineVertexInputIndex; // Swift Package target
#include "../../SpineShadersStructs/SpineShadersStructs.h"
typedef enum SpineTextureIndex { #else
SpineTextureIndexBaseColor = 0, #error "Header not found. Please correct Header search path"
} SpineTextureIndex; #endif
typedef struct {
simd_float2 position;
simd_float4 color;
simd_float2 uv;
} SpineVertex;
typedef struct {
simd_float2 translation;
simd_float2 scale;
simd_float2 offset;
} SpineTransform;
struct RasterizerData { struct RasterizerData {
simd_float4 position [[position]]; simd_float4 position [[position]];