
Tue, 03/15/2011 - 18:31
Forums:
Hello.
I use multiple views V3d_View. If view is not empty, when calling Redraw () (either directly or during the creation of view in SetWindow (...)), second view is always crashing.
Exception occurs in OpenGl_PrimitiveArray.cxx on line 642:
glDrawElements (draw_mode, p-> num_edges, GL_UNSIGNED_INT, 0);
"Access violation reading location 0x00000000."
Everything works fine, only when there is one (first) view.
In OCC6.3.0 this problem did not exist.
Tue, 03/15/2011 - 18:58
Hi int,
Could you provide a short sample to reproduce the crash ?
Regards
Wed, 03/16/2011 - 11:49
Test sample in the attached file. (The sample uses wxWidgets)
There are two windows (view). Use: Right click, select menu, repeat twice.
-----
Also there is another problem. When WNT_Window not associated with a view, it is not filled with the background color.
Thu, 03/17/2011 - 17:36
Hi Sergey,
Are you able to reproduce the crash?
Fri, 03/18/2011 - 09:36
Hi int,
I can't run your sample, because you are using wxWidgets (and I am not).
If you can redesign your sample on the basis of MFC or Qt I would tried it.
Regards
Fri, 03/18/2011 - 10:58
Well. I made a console example. Look at it please.
Usage: press any key on the console. After that, I have an error occurs.
Fri, 03/18/2011 - 12:19
Hi int,
I checked your sample.
I don't have a crash or any other mistake.
See the attached log file and a little bit modified main.cpp (just for warning messages).
Try it in your environment.
Regards
Fri, 03/18/2011 - 17:58
Thank you, Sergey. I tried, but nothing changed. Probably the reason somewhere in my environment.
Mon, 03/21/2011 - 17:25
Hello int,
I have tested the sample from sergey and did not observe any crash.
Pawel
Wed, 03/16/2011 - 11:56
Another small improvement. In TPrsStd_AISPresentation.cxx have two lines
if (! ctx.IsNull ()) ctx-> Remove (myAIS);
and
myAIS-> GetContext () -> Remove (myAIS);
I think there should be
if (! ctx.IsNull ()) ctx-> Remove (myAIS, Standard_False);
and
myAIS-> GetContext () -> Remove (myAIS, Standard_False);