Yeah, using openGL Points to draw 2D images will probably be pretty slow. However, if you don't need to change your points every frame, a display list might improve the speed quite a bit (you could still transform the points as a whole).
Also, you could try the SDL bindings for haskell: http://hackage.haskell.org/package/SDL SDL is better suited for 2D drawing (IMHO). http://www.libsdl.org/ - Job On Thu, Jul 29, 2010 at 6:51 AM, Vo Minh Thu <not...@gmail.com> wrote: > 2010/7/29 Eitan Goldshtrom <thesource...@gmail.com>: > > I'm having an unusual problem with OpenGL. To be honest I probably > shouldn't > > be using OpenGL for this, as I'm just doing 2D and only drawing Points, > but > > I don't know about any other display packages, so I'm making due. If this > is > > a problem because of OpenGL however, then I'll have to learn another > > package. The problem is speed. I have a list of points representing the > > color of 800x600 pixels. All I'm trying to do is display the pixels on > the > > screen. I use the following: > > > > renderPrimitive Points $ mapM_ display list > > flush > > where > > display [] = return () > > display ((x,y,i):n) = do > > color $ Color3 i i i > > vertex $ Vertex2 x y > > display n > > > > But, for some reason this takes FOREVER. I don't know how to use > debugging > > hooks yet without an IDE -- and I don't use an IDE -- but I used a > cleverly > > placed putStrLn to see that it was actually working, just really really > > slowly. Is there a solution to this speed problem or should I use a > package > > that's more suited to 2D applications like this? Also, if I should use > > another package, are there any suggestions for which to use? Thanks for > any > > help. > > Hi, > > Although you can use Vertex* to put a single Point on the screen, it > is not meant to be used as some kind of setPixel function. > > If your goal is simply to set pixels' value of a raster, you can still > use OpenGL but should use a single textured quad (and thus manipulate > the texture's pixels). > > There other possibilities to deal with raster graphics: > - Use gtk; i.e. something like > http://hackage.haskell.org/package/AC-EasyRaster-GTK > - Output the data in some image format (if you want to do it yourself, > the most simple is PPM) > - Use X11 directly (if you're on unix) > - ... > > HTH, > Thu > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe