2008-10-30 4 views
1

J'utilise glDrawPixels pour afficher une image. Je sais, je devrais probablement utiliser des textures mais il y a des raisons pour lesquelles je ne le suis pas. Du moins pas pour l'instant. Quoi qu'il en soit, l'image affichée est fréquemment mise à jour comme si elle était scannée. Cela fonctionne bien tant que je la laisse s'asseoir et terminer la "numérisation", cependant, si je clique sur l'écran alors que la "numérisation continue" Je reçois une exception AccessViolation à mes glDrawPixels.glDrawPixels provoque AccessViolationException

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

mImageWidth et mImageHeight sont les valeurs attendues ne sont donc pas cette question.

Je mis une boucle qui ressemble à tous les éléments de mDisplayBuffer juste avant glDrawPixels appeler Aucun problème n'est survenu ici, donc la violation d'accès ne semble pas provenir du mDisplayBuffer

Donc ça doit être quelque chose dans le glDrawPixels non? J'utilise le framework TAO pour utiliser C# et OpenGl.

Répondre

1

Quel est le type de mDisplayBuffer? Pourrait-il être mis à jour par un autre thread pendant que le glDrawPixels est en cours, ou déplacé par le garbage collector (essayez un verrou de portée autour de l'appel DrawPixels)?

Questions connexes