1. Re: OpenGl again.
- Posted by Chris Hickman <cdh at MAIL.ALA.NET> Jun 17, 1999
- 468 views
Hello, I've managed to narrow down the point of crash in the Cube.exw demo in Paul Martin's OpenGL porting project. The mechanics of *why* it was crashing still escapes me... The project files can be obtained at Paul's site: cube.zip: http://www.geocities.com/CapeCanaveral/Campus/8684/Cube.zip mesa dlls: http://www.geocities.com/CapeCanaveral/Campus/8684/mesa3dll.zip The program stops crashing with the following modification to his code: -------------------------------------------------------------- -- reshape() re-coded by me to ignore the parameters function my_reshape() glViewport (0,0,500,500) glMatrixMode(GL_PROJECTION) glLoadIdentity() glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0) glMatrixMode(GL_MODELVIEW) return 0 end function function reshape (atom w, atom h) glViewport (0,0,w,h) glMatrixMode(GL_PROJECTION) glLoadIdentity() glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0) glMatrixMode(GL_MODELVIEW) return 0 end function -- constant creshape = call_back(routine_id("reshape")) constant creshape = call_back(routine_id("my_reshape")) -------------------------------------------------------------- As you can see, my_reshape() is the same as reshape() except that it doesn't accept the parameters. The 500's plugged into glViewport are what's normally passed in by w and h until the window is resized. Examinining w and h when they are passed to reshape() shows that they are indeed passed in correctly. Only some time after returning from reshape() does the program crash. reshape() is *supposed* to take the two integer parameters tho. The C header has the following: GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height)); glutReshapeFunc() is to be initialized with a pointer to a call_back function. Paul has it coded as follows: in GLUT2.ew: constant glut_ReshapeFunc = define_proc(glut,"glutReshapeFunc",{C_POINTER}) global procedure glutReshapeFunc(atom callback) c_proc( glut_ReshapeFunc,{callback}) end procedure in Cube.exw: glutReshapeFunc(creshape) Can anyone shed some light on what's happening here? Thanks, Christopher D. Hickman