1. win32lib & a double buffer
- Posted by Grape_ Vine_ <g__vine at HOTMAIL.COM> Nov 02, 1999
- 480 views
I know how to double buffer...but i dont see how to do it with win32lib(at least not correctly) here's what i did <code> include Win32Lib.ew without warning --create the main window global constant GW = create( Window,"Omega",0,0,0,0,0, 0) global constant PW = create( Pixmap,"",GW,5,5,485,485, 0) -- load the bitmaps global constant Blank = loadBitmapFromFile("d:/omega/gas01.bmp") global constant Map = loadBitmapFromFile("d:/omega/map.bmp") --create the command buttons <snip> removed all the buttons for working with just the pixmap procedure paint_play_window() -- fill with the 48x48 bitmaps for x = 5 to 485 by 48 do for y = 5 to 485 by 48 do drawBitmap(PW, Blank, x, y ) !~~~ Here is where it starts to go bad...drawBitmap doesn't seam draw to the pixmap... end for end for end procedure procedure paint_scanner_window() -- fill with the 48x48 bitmaps for x = 538 to 762 by 32 do for y = 5 to 230 by 32 do drawBitmap(GW, Map, x, y ) end for end for end procedure procedure paint_map_window() -- fill with the 48x48 bitmaps for x = 538 to 762 by 32 do for y = 266 to 490 by 32 do drawBitmap(GW, Map, x, y ) end for end for end procedure procedure Main_Paint(integer x1, integer y1, integer x2, integer y2) paint_play_window() paint_scanner_window() paint_map_window() bitBlt( GW, 5, 5, PW, 0, 0, 485, 485, 0) !~~~ Just draws a big black square... end procedure onPaint[GW] = routine_id("Main_Paint") <end code> What little thing am i missing?(it has to be little...only the little things get ya..you never see them coming...) J Reeves Grape Vine ICQ# 13728824 ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com
2. Re: win32lib & a double buffer
- Posted by "Cuny, David at DSS" <David.Cuny at DSS.CA.GOV> Nov 02, 1999
- 494 views
GrapeVine wrote: > bitBlt( GW, 5, 5, PW, 0, 0, 485, 485, 0) The arguments to bitBlt look backwards - the first value should be the destination, not the source. In this case, the destintation is the window (GW) and the source is the pixmap (PW). In addition, you need to specify a raster operation - probably SRCCOPY, if you are just copying the image: bitBlt( PW, 0, 0, 485, 485, GW, 5, 5, SRCCOPY ) If you are copying the entire bitmap to some point in the destination, you might try using the copyBlt() routine, which is a lot like drawBitmap. Hope this helps! -- David Cuny
3. Re: win32lib & a double buffer
- Posted by Grape_ Vine_ <g__vine at HOTMAIL.COM> Nov 02, 1999
- 461 views
>GrapeVine wrote: > > > bitBlt( GW, 5, 5, PW, 0, 0, 485, 485, 0) > >The arguments to bitBlt look backwards - the first value should be the >destination, not the source. In this case, the destintation is the window >(GW) and the source is the pixmap (PW). Its not backwards..GW is the main window and PW is the buffer > >In addition, you need to specify a raster operation - probably SRCCOPY, if >you are just copying the image: Ah..I looked for the ROP defines but could not find them... > bitBlt( PW, 0, 0, 485, 485, GW, 5, 5, SRCCOPY ) > >If you are copying the entire bitmap to some point in the destination, you >might try using the copyBlt() routine, which is a lot like drawBitmap. I am going to copy the entire pixmap to the screen..Thanx for your help(i am sure this will fix it) >Hope this helps! > >-- David Cuny ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com