首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EAGLContext与CIContext在MacOS上的应用

EAGLContext与CIContext在MacOS上的应用
EN

Stack Overflow用户
提问于 2016-11-02 09:05:00
回答 2查看 1.3K关注 0票数 2

我有一个简单的Swift命令行MacOS应用程序,我很难设置EAGLContext

代码语言:javascript
复制
let openGLContext = EAGLContext(API: .OpenGLES3)
let context = CIContext(EAGLContext: openGLContext)

上面的代码给了我:

代码语言:javascript
复制
Use of unresolved identifier 'EAGLContext'

不管我加载了什么模块:

代码语言:javascript
复制
import CoreImage
import OpenGL
import QuartzCore
import GLKit

现在的问题是:CIContext默认使用OpenGL呈现吗?

当我初始化一个没有任何选项的新CIContext时:

代码语言:javascript
复制
let context = CIContext()

并将env变量CI_PRINT_TREE设置为1控制台输出给我:

代码语言:javascript
复制
initial graph image_get_cgimage (opengl context 1 frame 1)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^

所以它会在GPU上下文中处理我的过滤器,对吗?是否有显式设置GPU呈现的方法,还是GPU是默认上下文?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-02 10:33:18

在可用的这里苹果文档中找到了答案

使用自动上下文进行呈现 如果您没有限制您的应用程序如何与其他图形技术交互,创建核心图像上下文很简单:只需使用基本的initinitWithOptions:初始化器即可。这样做时,Core会自动管理内部资源,根据当前设备和指定的任何选项选择适当或最佳可用的CPU或GPU呈现技术

票数 1
EN

Stack Overflow用户

发布于 2016-11-02 09:14:36

根据Docs

有一种方法可以显式地在CPU或GPU上初始化CIContext

此外,还可以指定金属或OpenGL

为基于CPU的呈现创建上下文。

代码语言:javascript
复制
init(cgContext: CGContext, options: [String : Any]? = nil)

使用指定的选项从Quartz上下文创建核心图像上下文。

使用OpenGL:为基于GPU的呈现创建上下文

代码语言:javascript
复制
init(cglContext: CGLContextObj, pixelFormat: CGLPixelFormatObj?, colorSpace: CGColorSpace?, options: [String : Any]? = nil)

使用指定的选项、颜色空间和像素格式对象,从CGL上下文创建核心图像上下文。

代码语言:javascript
复制
init(eaglContext: EAGLContext)

从EAGL上下文创建核心图像上下文。

代码语言:javascript
复制
init(eaglContext: EAGLContext, options: [String : Any]? = nil)

使用指定的选项从EAGL上下文创建核心图像上下文。

代码语言:javascript
复制
init?(forOfflineGPUAt: UInt32)

使用当前不驱动显示器的GPU创建基于OpenGL的核心图像上下文。

代码语言:javascript
复制
init?(forOfflineGPUAt: UInt32, colorSpace: CGColorSpace?, options: [String : Any]? = nil, sharedContext: CGLContextObj?)

使用当前不驱动显示器的GPU创建一个基于OpenGL的核心图像上下文,并具有指定的选项。

为基于GPU的金属渲染创建上下文

代码语言:javascript
复制
init(mtlDevice: MTLDevice)

使用指定的金属设备创建核心图像上下文。

代码语言:javascript
复制
init(mtlDevice: MTLDevice, options: [String : Any]? = nil)

使用指定的金属设备和选项创建核心图像上下文。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40375998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档