Skip to content

Commit cba7fe1

Browse files
committed
load mtllib from C array
1 parent dad2290 commit cba7fe1

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Sources/vger/vgerRenderer.mm

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#import "paint.h"
55
#import "prim.h"
66

7+
#ifdef SWIFTPM_MODULE_BUNDLE
78
static id<MTLLibrary> GetMetalLibrary(id<MTLDevice> device) {
89

910
auto bundle = SWIFTPM_MODULE_BUNDLE;
@@ -20,6 +21,22 @@
2021
assert(lib);
2122
return lib;
2223
}
24+
#else
25+
extern unsigned char vger_metallib[];
26+
extern unsigned int vger_metallib_len;
27+
static id<MTLLibrary> GetMetalLibrary(id<MTLDevice> device) {
28+
29+
NSData *data = [NSData dataWithBytes:vger_metallib length:vger_metallib_len];
30+
NSError *error = nil;
31+
auto library = [device newLibraryWithData:data error:&error];
32+
if(error) {
33+
NSLog(@"error creating metal library: %@", lib);
34+
}
35+
36+
assert(lib);
37+
return library;
38+
}
39+
#endif
2340

2441
@interface vgerRenderer() {
2542
id<MTLRenderPipelineState> pipeline;

0 commit comments

Comments
 (0)