gpt4 book ai didi

swift - 在 MacOS 上使用 EAGLContext 和 CIContext

转载 作者:可可西里 更新时间:2023-11-01 01:28:07 28 4
gpt4 key购买 nike

我有一个简单的 Swift 命令行 MacOS 应用程序,我正在努力设置 EAGLContext:

let openGLContext = EAGLContext(API: .OpenGLES3)
let context = CIContext(EAGLContext: openGLContext)

上面的代码给了我:

Use of unresolved identifier 'EAGLContext'

无论我加载什么模块:

import CoreImage
import OpenGL
import QuartzCore
import GLKit

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

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

let context = CIContext()

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

initial graph image_get_cgimage (opengl context 1 frame 1)
^^^^^^^^^^^^^^^^^^^^^^^^

所以它确实在 GPU 上下文中处理我的过滤器,对吗?有没有办法显式设置 GPU 渲染或 GPU 是默认上下文?

最佳答案

According to Docs

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

您也可以指定 Metal 或 OpenGL

为基于 CPU 的渲染创建上下文

init(cgContext: CGContext, options: [String : Any]? = nil)

Creates a Core Image context from a Quartz context, using the specified options.

使用 OpenGL 为基于 GPU 的渲染创建上下文:

init(cglContext: CGLContextObj, pixelFormat: CGLPixelFormatObj?, colorSpace: CGColorSpace?, options: [String : Any]? = nil)

Creates a Core Image context from a CGL context, using the specified options, color space, and pixel format object.

init(eaglContext: EAGLContext)

Creates a Core Image context from an EAGL context.

init(eaglContext: EAGLContext, options: [String : Any]? = nil)

Creates a Core Image context from an EAGL context using the specified options.

init?(forOfflineGPUAt: UInt32)

Creates an OpenGL-based Core Image context using a GPU that is not currently driving a display.

init?(forOfflineGPUAt: UInt32, colorSpace: CGColorSpace?, options: [String : Any]? = nil, sharedContext: CGLContextObj?)

Creates an OpenGL-based Core Image context using a GPU that is not currently driving a display, with the specified options.

使用 Metal 为基于 GPU 的渲染创建上下文

init(mtlDevice: MTLDevice)

Creates a Core Image context using the specified Metal device.

init(mtlDevice: MTLDevice, options: [String : Any]? = nil)

Creates a Core Image context using the specified Metal device and options.

关于swift - 在 MacOS 上使用 EAGLContext 和 CIContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com