OpenGl again.

new topic     » topic index » view thread      » older message » newer message

Hello everyone.

If any of you have read my previous postings you'll know that I'm working
on wrappers for OpenGL/GLUT. OpenGL is a 3D graphics API and GLUT is
similar to Win32lib, except designed for OpenGL. You can find out more from
<www.opengl.org>. I have for the last four weeks been pulling my hair out
trying to get it to work. I've been plagued by one problem that I
absolutely can not track down, because windows returns an encryptic error
message that does not point to any place in my program. I believe the
problem may lie in GLUT and the callbacks, but I cannot be sure.

I was hoping a few of you would mind downloading what I have, taking a look
at it, and see what you can come up with. I really  wanted to get this to
work on my own, but I'm missing some critical piece of the puzzle.

So far GLUT opens a window, clears it and then bombs with the error message:

>EXW caused an invalid page fault in
>module EXW.EXE at 023f:00405053.
>Registers:
>EAX=00000000 CS=023f EIP=00405053 EFLGS=00210216
>EBX=0000000f SS=0247 ESP=0056fb88 EBP=00000654
>ECX=00000000 DS=0247 ESI=005806fc FS=420f
>EDX=00000000 ES=0247 EDI=0056fba2 GS=0000
>Bytes at CS:EIP:
>8b 55 76 81 e2 ff 00 00 00 89 45 72 83 fa 04 75
>Stack dump:
>000001f6 0058040c 00000000 00000001 00000200 000001f6 00000201 00f30247
00000200 000001f6 0058040c 00000002 00000202 00f30247 00ec0000 00000040

 and then

>EXW caused an invalid page fault in
>module <unknown> at 0000:0b75fc5d.
>Registers:
>EAX=bff87fc0 CS=023f EIP=0b75fc5d EFLGS=00210246
>EBX=bff87fc0 SS=0247 ESP=005600f8 EBP=00560118
>ECX=0056019c DS=0247 ESI=81760af0 FS=420f
>EDX=bff76859 ES=0247 EDI=00560290 GS=0000
>Bytes at CS:EIP:
>
>Stack dump:
>bff7684d 00560290 bff87fc0 005601c4 0056019c 0056057c bff76859 bff87fc0
005601ac bff87fc0 00560290 bff87fc0 005601c4 0056019c 0b75fc5d 00560304

This means apparently I'm passing a bad value to GLUT. I've run a trace on
the program and it occurs when it's in glutMainLoop() which is C procedure.

If you are willing to take a look you will need Euphoria 2.1, because it
requires multiple callbacks. You will also need the Mesa dll's. I have
posted the wrappers (56k) at
<http://www.geocities.com/CapeCanaveral/Campus/8684/Cube.zip>. I have
provided two demo programs cube.exw and simple.exw, both return with the
same errors. The Mesa dll's (352k) can be download here
<http://www.geocities.com/CapeCanaveral/Campus/8684/mesa3dll.zip>. DO NOT
put them in your windows\system directory, make a new directory elsewhere,
and put them there. Mesa is not 100% OpenGL compliant so if you overwrite
the ones in your windows\system directory other programs may break. If you
want more documentation on Opengl and GLUT you can visit <www.opengl.org>.
I've also include the C programs that I used for the demos, and the
libraries for OpenGL/GLUT.

You will probably need to edit the sequence "prefix" in each of the
libraries (glu.ew, glut2.ew, and opengl3.ew), to tell it where you placed
the Mesa dll's. Other than that they should run (sorta).

Even if you are not successful at figuring out what's wrong, I'd also
appreciate any feedback.

Thanks
Paul Martin

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu