Hello Todd,
thank you for your reply.
All interactions with the scene and all painting operations are done in the EDT thread in my application.
Also, I have checked the Thread ID in the native debugger, and the calls to vtkTextureObject::Bind() are always done on the same thread, both in the cases when Bind() succeeds and in the cases when Bind() crashes.
However, I’ve made an interesting discovery. If I switch to a more “basic” orientation marker, then my program does not crash and works normally (although with a too-low update rate) even when I interact with my scene. In particular, I modified my buildOrientationMarkerWidget() method like this:
> ======================
>
> protected void buildOrientationMarkerWidgetSimpler()
> {
> // Orientation marker
> orientMarkerWidget = new vtkOrientationMarkerWidget();
>
> vtkAnnotatedCubeActor orientMarkerCubeProp = new vtkAnnotatedCubeActor();
> orientMarkerCubeProp.SetXMinusFaceText("R");
> orientMarkerCubeProp.SetXPlusFaceText("L");
> orientMarkerCubeProp.SetYMinusFaceText("A");
> orientMarkerCubeProp.SetYPlusFaceText("P");
> orientMarkerCubeProp.SetZMinusFaceText("I");
> orientMarkerCubeProp.SetZPlusFaceText("S");
>
> orientMarkerWidget.SetOutlineColor( 0.9300, 0.5700, 0.1300 );
> orientMarkerWidget.SetOrientationMarker(orientMarkerCubeProp);
> orientMarkerWidget.SetInteractor(getRenderWindowInteractor());
> orientMarkerWidget.SetViewport(0, 0.4, 0.2, 0.6);
> orientMarkerWidget.SetEnabled(1);
> orientMarkerWidget.InteractiveOff();
> }
>
> ======================
So, maybe in my original version there is something wrong with my vtkPropAssembly, which causes issues to JOGL?
Also, the slowness / low update rate issue remains. Basically, it looks like my JOGL view only gets updated when the EDT thread is not busy. For instance, while I drag my scene, the JOGL canvas only gets updated when I move my mouse very slowly. On the other side, if I continue moving/dragging my mouse very quickly without pauses, my JOGL canvas never gets updated.
Do you have suggestions about this?
Thanks in advance for all your feedback.
Best regards,
Marco Sambin