gpt4 book ai didi

macos - 什么会阻止 OpenGL glDrawPixels 在某些视频卡上工作?

转载 作者:行者123 更新时间:2023-12-01 00:26:51 24 4
gpt4 key购买 nike

以下代码不向 Intel 集成视频卡(例如 MacBook)的后台缓冲区写入任何数据。在 ATI 卡上,例如在 iMac 上,它绘制到后台缓冲区。宽度和高度正确(和 800x600 缓冲区)并且 m_PixelBuffer 正确填充了 0xAA00AA00。

到目前为止,我最好的猜测是需要设置 glWindowPos 有问题。我目前没有设置它(或光栅位置),当我得到 GL_CURRENT_RASTER_POSITION 时,我注意到 ATI 卡上的默认值是 0,0,0,0 而 Intel 是 0,0,0,1。当我将 ATI 卡上的光栅位置设置为 0,0,0,1 时,我得到与 Intel 卡相同的结果,没有任何内容被绘制到后台缓冲区。我缺少一些转换状态吗?这是一个 2D 应用程序,因此 View 变换是一个非常简单的 glOrtho。

glDrawPixels(GetBufferWidth(), GetBufferHeight(), GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, m_PixelBuffer);

我可以提供任何更多信息,请询问。我几乎是 OpenGL 和 Mac 新手,所以我不知道我是否提供了足够的信息。

最佳答案

我一直对 Intel 的 OpenGL 实现有疑问,但我不确定这一次是否是您的问题。我认为您遇到了一些字节顺序问题。阅读本文并随意尝试不同的包装和颜色顺序常量。

http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_tips/chapter_5_section_25.html

我知道这是 OSX 指南,您可能可以在其他网站上找到针对其他平台的类似 OpenGL 文章。这应该是适用的。

关于macos - 什么会阻止 OpenGL glDrawPixels 在某些视频卡上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646/

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