不支持的体系结构-Metal和Swift之间的共享枚举
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不支持的体系结构-Metal和Swift之间的共享枚举相关的知识,希望对你有一定的参考价值。
我尝试在metal和我的swift项目之间共享我在头文件中定义的枚举:
#ifndef SharedIndizes_h
#define SharedIndizes_h
#import <Foundation/Foundation.h>
#endif /* SharedIndizes_h */
typedef NS_ENUM(NSInteger, VertexAttribute)
VertexAttributePosition = 0,
VertexAttributeNormal = 1,
;
#include <metal_stdlib>
#import "ExchangeTypes/SharedIndizes.h"
using namespace metal;
struct VertexIn
float3 position [[ attribute(VertexAttributePosition) ]];
float3 normal [[ attribute(VertexAttributeNormal) ]];
;
vertexDescriptor.attributes[VertexAttribute.position.rawValue]
vertexDescriptor.attributes[VertexAttribute.normal.rawValue]
但是我得到的是一些意外的错误:
不支持的架构
未知类型名称'_int64_t'
未知类型名称'_int32_t'
...
从我的金属文件中删除#import "ExchangeTypes/SharedIndizes.h"
也会删除错误。
#ifndef SharedIndizes_h
#define SharedIndizes_h
#ifdef __METAL_VERSION__
#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#define NSInteger metal::int32_t
#else
#import <Foundation/Foundation.h>
#endif /* SharedIndizes_h */
typedef NS_ENUM(NSInteger, VertexAttribute)
VertexAttributePosition = 0,
VertexAttributeNormal = 1,
;
以上是关于不支持的体系结构-Metal和Swift之间的共享枚举的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 iPad Swift Playground 中使用 Metal 着色器代码?
如何使用 mmap 在用户空间和内核之间共享内存并且数据没有文件支持
论文阅读《Supporting Security Sensitive Tenants in a Bare-Metal Cloud 》