gpt4 book ai didi

macos - 核心显卡和 cocoa 闪烁

转载 作者:行者123 更新时间:2023-12-03 17:50:39 29 4
gpt4 key购买 nike

我最近从 Carbon 32 位切换到 Cocoa 64 位。

当使用 ctrl-MouseWheel 放大和缩小时,我的窗口中出现白色闪烁。此外,图形性能较低。

在 Carbon 中,我通过以下方式获得了图形上下文

CGrafPtr port = GetWindowPort(window);
QDBeginCGContext(port, &contextRef);

对于 cocoa ,我使用

CGContextRef myContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];

drawRect方法中。

此外,我设置了一个 25 fps 的计时器:

runLoopTimerRef = CFRunLoopTimerCreate(...);
CFRunLoopAddTimer(CFRunLoopGetCurrent(), runLoopTimerRef, kCFRunLoopCommonModes);

通过setNeedsDisplay:YES重复绘制。我每次都需要重新绘制整个内容。

几乎所有绘图都是使用 CoreGraphics 进行的(CGContext...调用等)。

与 Carbon 相比,Cocoa 的速度确实很慢(对鼠标点击的 react 有延迟)。

当我设置时

[self setOpaque:YES];

在我的drawRect方法中,闪烁颜色变成黑色而不是白色。

没有层或后台缓冲区。

知道可能出了什么问题吗?我的 drawRect 方法中缺少一些设置/状态调用?

最佳答案

好的,这是解决方案:我绘制了很多位图。这些位图必须在 drawRect 调用期间针对视网膜显示进行缩放。

为视网膜显示器提供高分辨率位图解决了这个问题。

关于macos - 核心显卡和 cocoa 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407196/

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