Mail Archives: cygwin/2010/12/08/12:33:56
Klaus Ramst=F6ck wrote:
=20
> Dear list,
=20
Hi Klaus,
=20
>=20
> I tried to compile f90gl under a current cygwin. With some grey hair, I
> succeded, but my programs dont start.=20
=20
"Dont start". What does that mean? Your programs crash? You get an error me=
ssage? Please be more
explicit.
=20
> I analysed the problem an can
> reproduce it with this modified example glut program.
> >From /usr/share/doc/opengl-1.1.0/GLUTexamples/helloGlut.c:
> ----cut
> #include <stdio.h>
> #include <GL/glut.h>
> #include <GL/glutf90.h>
=20
What is glutf90.h ? It is not part of the OpenGL package.
=20
>=20
> ...
>=20
> #define GLUTCALLBACKFCB
> typedef void (GLUTCALLBACKFCB *GLUTbuttonBoxFCBUSR) (int *, int *);
> int main(int argc, char* argv[])
> {
> atexit(exit_func);
> glutInit(&argc, argv);
> glutCreateWindow("Hello GLUT!");
> glutDisplayFunc(display_func);
> glutKeyboardFunc(keyboard_func);
> printf("Press any key to toggle color.\n");
> printf("Press Esc to end.\n");
> glutMainLoop();
=20
glutMainLoop loops forever (up to program exit). Code after it will never g=
et executed.
> int button, state;
> ((GLUTbuttonBoxFCBUSR)__glutGetFCB(GLUT_FCB_BUTTON_BOX))(&button, &state=
);
=20
These 2 lines are total nonsense. FCB stands for Fortran CallBack.
=20
- Fortran is unsupported by the OpenGL package. I am not interrested in add=
ing that support,=20
but I would accept patches that do.
=20
- Even if it was supported, you cannot blindly insert a call to a Fortran f=
unction into a C function.
=20
- glutGetFCB is called to know the function associated with some callback, =
in the case above,
the callback for the button box. You try to call the callback function di=
rectly, but you have not
set such a callback function previously (in C, with glutButtonBoxFunc, in=
Fortran, presumably with
glutSetFCB).
=20
- I don't think that button boxes are supported on Windows. They were some =
Silicon Graphics things.
=20
- Calling things begining by __glut makes no sense. The functions names in =
the Glut library begin
by glut. The linker is responsible for finding the internal name of the c=
orresponding function.
> return 0;
> }
> ----cut
=20
> The only relevant difference is this line:
> ((GLUTbuttonBoxFCBUSR)__glutGetFCB(GLUT_FCB_BUTTON_BOX))(&button, &state)
>=20
> Without this line, the program compiles and works as expected.
> It seems there is a mismatch between the definition of __glutGetFCB
> in the .a and in the .dll file.
=20
I think your problem is deeper than that. You need to explain what you are =
trying to do. If you
are trying to port some Fortran program that was meant to run on Silicon Gr=
aphics to Windows=20
you will have a hard time.
=20
>=20
> Can anybody confirm this and help me fix it?
>=20
> Thank you.
>=20
> Klaus
=20
Andr=E9 Bleau, Cygwin's OpenGL package maintainer.
Please send any question or comment about the OpenGL package to cygwin at c=
ygwin dot com,=20
not directly to me.
=20=20=09=09=20=09=20=20=20=09=09=20=20
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -