1

我正在使用 glDrawPixels 来显示图像。我知道,我可能应该使用纹理,但我没有这样做是有原因的。至少现在不是。无论如何,正在显示的图像经常被更新,就好像它正在被扫描一样。只要我让它坐下来完成“扫描”,它就可以正常工作,但是,如果我在“扫描仍在进行中”时单击屏幕我的 glDrawPixels 出现 AccessViolation 异常。

Gl.glDrawPixels(mImageWidth, mImageHeight, Gl.GL_LUMINANCE, Gl.GL_UNSIGNED_SHORT, mDisplayBuffer);

mImageWidth 和 mImageHeight 是预期值,因此它们不是这个问题。

在 glDrawPixels 调用之前,我放置了一个 for 循环来查看 mDisplayBuffer 中的每个元素。这里没有发生任何问题,因此访问冲突似乎不是来自 mDisplayBuffer。

所以它一定是 glDrawPixels 中的东西吧?

我正在使用 TAO 框架,以便可以使用 C# 和 OpenGl。

4

1 回答 1

1

mDisplayBuffer 的类型是什么?它是否在 glDrawPixels 正在进行时被另一个线程更新,或者被垃圾收集器重新定位(尝试在 DrawPixels 调用周围使用范围锁)?

于 2008-10-31T14:00:26.863 回答