Compiling hopengl apps?

"Hugh Perkins" <[email protected]>
Newsgroups gmane.comp.lang.haskell.hopengl
Message-ID <[email protected]>
Started to play with hopengl.  It's pretty cool :-) Very easy to use, quite
cool :-)

Started to look at perf.  What interests me most is to see how fast we can
make vertex3f calls.  Basically, we're testing the speed of the haskell/c
boundary, where security(?) and marshalling are going to occur.

Yes, we can send the vertices to a vertexarray and not have to handle
vertex3f calls, but that's not what I want to measure ;-)

So, have a really rough and ready application that draws 45000 triangles a
frame, then measures the framerate.  Thats about 150,000 calls to vertex3f
per frame.

The application runs in Java, C#, and now Haskell.

Running in ghci, this runs at about 1.5 fps, really ballpark, havent checked
I'm really drawing the number of triangles I think I'm drawing, or settings
such as backface-culling or shademodel.  That's not too bad.

I'd like to compile to an executable to increase the framerate, but it's
giving me the following output:

J:\dev\haskell>ghc -fglasgow-exts -O2 -o OglPerf.exe OglPerf.hs
OglPerf.o(.text+0x1f4):ghc3668_0.hc: undefined reference to
`glutPostRedisplay@0
'
OglPerf.o(.text+0x255):ghc3668_0.hc: undefined reference to `glVertex3f@12'
OglPerf.o(.text+0x1148):ghc3668_0.hc: undefined reference to `glViewport@16'
OglPerf.o(.text+0x1157):ghc3668_0.hc: undefined reference to
`glMatrixMode@4'
OglPerf.o(.text+0x115f):ghc3668_0.hc: undefined reference to
`glLoadIdentity@0'
OglPerf.o(.text+0x11cc):ghc3668_0.hc: undefined reference to `glFrustum@48'
OglPerf.o(.text+0x11db):ghc3668_0.hc: undefined reference to
`glMatrixMode@4'
OglPerf.o(.text+0x11e3):ghc3668_0.hc: undefined reference to
`glLoadIdentity@0'
OglPerf.o(.text+0x11fd):ghc3668_0.hc: undefined reference to
`glTranslatef@12'
OglPerf.o(.text+0x1672):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziVertexSpec_Vertex3_con_info'
OglPerf.o(.text+0x1764):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziVertexSpec_Vertex3_con_info'
OglPerf.o(.text+0x1856):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziVertexSpec_Vertex3_con_info'
OglPerf.o(.text+0x1948):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziVertexSpec_Vertex3_con_info'
OglPerf.o(.text+0x1b56):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziPrimitiveMode_Quads_closure'
OglPerf.o(.text+0x1de9):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziFramebuffer_marshalClearBuffer_closure'
OglPerf.o(.text+0x1e00):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziFramebuffer_sum_closure'
OglPerf.o(.text+0x1e42):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziFramebuffer_sum_closure'
[...]
aphicsziRenderingziOpenGLziGLziStringQueries_Vendor_closure'
OglPerf.o(.text+0x340f):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziStringQueries_Renderer_closure'
OglPerf.o(.text+0x3634):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziBasicTypes_Enabled_closure'
OglPerf.o(.text+0x3668):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziCoordTrans_normalizze_closure'
OglPerf.o(.text+0x36c1):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziBasicTypes_Enabled_closure'
OglPerf.o(.text+0x3716):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziBasicTypes_Enabled_closure'
OglPerf.o(.text+0x374a):ghc3668_0.hc: undefined reference to
`OpenGLzm2zi2zi1_Gr
aphicsziRenderingziOpenGLziGLziColors_lighting_closure'
[...]
collect2: ld returned 1 exit status

What am I missing?

_______________________________________________
HOpenGL mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/hopengl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.