//
// ViewController.m
// CJHRecorder
//
// Created by 曹敬贺 on 2017/8/29.
// Copyright © 2017年 上海欢岳网络科技有限公司. All rights reserved.
//
#import "ViewController.h"
#import <Metal/Metal.h>
#include <dlfcn.h>
//定义函数指针
typedef id<MTLDevice> (*CJH_Device)();
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// https://www.dwheeler.com/program-library/Program-Library-HOWTO/x172.html
// id<MTLDevice> (*CJH_Device)();
//获取MTLCreateSystemDefaultDevice函数
//注意:函数指针接收的MTLCreateSystemDefaultDevice函数有几个参数和什么返回类型要一致
CJH_Device device = dlsym(dlopen(0, RTLD_LOCAL | RTLD_LAZY), "MTLCreateSystemDefaultDevice");
id<MTLDevice> d = device();
id<MTLDevice> d1 = MTLCreateSystemDefaultDevice();
NSLog(@"Device:%@ - %@",d,d1);
char * err;
if ((err = dlerror()) != NULL) {
NSLog(@"TTT");
} else {
NSLog(@"FFFF");
}
}
@end