Yes, there was a blind glutInit() in the new method.

I protected it with an 'unless OpenGL::done_glutInit()' check.
Did not test so if there is anything I missed, please
continue to let me know.  Thanks!

--Chris

Sisyphus wrote:
> 
> ----- Original Message ----- From: "Chris Marshall" <[email protected]>
> 
>> win32 users, please test and report.
> 
> Nearly nice.
> 
> ###################################
> C:\temp\temp\PDL>perl -Mblib t/opengl.t
> 1..4
> # Running under perl version 5.010001 for MSWin32
> # Current time local: Thu Oct  1 09:19:39 2009
> # Current time GMT:   Wed Sep 30 23:19:39 2009
> # Using Test.pm version 1.25_02
> ok 1
> ok 2
> Creating GLUT OO window
> ok 3
> Creating GLUT OO window
> illegal glutInit() reinitialization attempt at
> C:\temp\temp\PDL\blib\lib/PDL/Graphics/OpenGL/Perl/OpenGL.pm line 152.
> ###################################
> 
> When we exit the foreach loop (in t/opengl.t) for the first time, the 
> window
> that was created should go out of scope and be cleaned up. But that doesn't
> happen - the window continues to exist. Furthermore, in the second 
> iteration
> of the foreach loop, "my $win=new PDL::Graphics::OpenGL::OO($opt);"
> apparently calls glutInit() again.
> 
> In my playing around with OpenGL, it seems that glutInit() can be called
> only once. If you want to open a second window you just call
> glutCreateWindow() again. The following creates one window, then a 2nd
> window one second later:
> 
> #####################
> use warnings;
> use OpenGL qw(:all);
> 
>     glutInit();
> 
> for(1 .. 2) {
>     glutInitWindowSize(150 * $_, 200 * $_);
>     glutCreateWindow("Test $_");
>     sleep 1;
> }
> #####################
> 
> I haven't yet worked out how to destroy an exisiting window. (Do you know
> how ?) The function that should do it is glutDestroyWindow(), but I haven't
> worked out how to provide that function with the appropriate argument - in
> either freeglut or OpenGL.
> 
> In feeglut you'd expect the following to work:
> 
> int windowID;
> glutInit(&argc, argv);
> glutInitWindowSize(200, 300);
> windowID = glutCreateWindow("TEST");
> glutDestroyWindow(windowID);
> 
> but the window persists ... apparently the return value of
> glutCreateWindow() is *not* the appropriate argument to hand over to
> glutDestroyWindow().
> 
> Similarly in OpenGL, if I do:
> 
> $handle = glutCreateWindow("TEST");
> glutDestroyWindow($handle);
> 
> the window stays open.
> 
> Cheers,
> Rob
> 
> 
> ------------------------------------------------------------------------
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.5.409 / Virus Database: 270.14.0/2406 - Release Date: 09/30/09 
> 18:56:00
> 


_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to