glDrawPixels causes AccessViolationException

本文关键字:AccessViolationException causes glDrawPixels | 更新日期: 2023-09-27 17:47:47

我正在使用glDrawPixels来显示图像。我知道,我可能应该使用纹理,但有一些原因我没有。至少现在不是。无论如何,显示的图像经常被更新,就好像它正在被扫描一样。只要我让它坐着并完成"扫描",这就可以很好地工作,然而,如果我在"扫描仍在进行"的时候点击屏幕,我会在我的glDrawPixels处收到访问违规异常。

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

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

在glDrawPixels调用之前,我放置了一个for循环,用于查看mDisplayBuffer中的每个元素。这里没有出现问题,所以访问冲突似乎不是来自mDisplayBuffer。

所以它一定是glDrawPixels内部的东西,对吧?

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

glDrawPixels causes AccessViolationException

mDisplayBuffer的类型是什么?它可能是在glDrawPixels正在进行时由另一个线程更新的,还是由垃圾收集器重新定位的(尝试在DrawPixel调用周围使用作用域锁定)?