glDrawPixels вызывает AccessViolationException - PullRequest
1 голос
/ 31 октября 2008

Я использую glDrawPixels для отображения изображения. Я знаю, наверное, мне следует использовать текстуры, но есть причины, по которым я не являюсь. Ну, по крайней мере, пока. В любом случае, отображаемое изображение часто обновляется, как будто оно сканируется. Это работает нормально, если я оставлю его и закончу «сканирование», однако, если я нажму на экран, пока «сканирование еще продолжается Я получаю исключение AccessViolation на моем glDrawPixels.

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

mImageWidth и mImageHeight - ожидаемые значения, поэтому они не являются проблемой.

Я поместил цикл for, который просматривает каждый элемент в mDisplayBuffer непосредственно перед вызовом glDrawPixels. Здесь не возникло никаких проблем, поэтому нарушение прав доступа, похоже, не происходит от mDisplayBuffer.

Значит, это должно быть что-то в glDrawPixels, верно?

Я использую инфраструктуру TAO, чтобы я мог использовать C # и OpenGl.

1 Ответ

1 голос
/ 31 октября 2008

Какой тип mDisplayBuffer? Может ли он быть обновлен другим потоком во время выполнения glDrawPixels или перемещен сборщиком мусора (попробуйте блокировку с ограничением по объему при вызове DrawPixels)?

...