Corrupted Graphics
BlitzPlus Forums/BlitzPlus Programming/Corrupted Graphics
| ||
Hi, for some reason when I maximize and minimize, Blitz Plus itself, not me, is not updating/redrawing the gadgets correctly. This example code below can only show when I minimize from a full maximized state that the "button" button gets left a left-over image of itself in the panel beneath it. Ofcoarse, when I simply barely resize the app's window, the app get's redrawn and everything is nice looking again. With my OpenGL application, when I full maximize the app, the big blitz-blue panel somehow corrupts half the "button" button and the little panel beneath it. Unfortunitly, I can not reproduce that I suppose because it had something to do with refreshing the openGL window.Global winwidth=620 Global winheight=470 Global window=CreateWindow("Window",(ClientWidth(Desktop())/2)-(winwidth/2),(ClientHeight(Desktop())/2)-(winheight/2),winwidth,winheight) SetMinWindowSize window,winwidth,winheight Global mainpanel=CreatePanel(2,30,ClientWidth(window)-134,ClientHeight(window)-32,window,1) SetGadgetLayout mainpanel,1,1,1,1 SetPanelColor mainpanel,34,85,119 Global thisbutton=CreateButton("button",ClientWidth(window)-130,30,128,18,window) Global thispanel=CreatePanel(ClientWidth(window)-130,50,128,128,window,1) SetPanelColor thispanel,34,85,119 Global menu=WindowMenu(window) Global file=CreateMenu("&File",0,menu) CreateMenu "&New",FILENEW,file CreateMenu "&Load...",FILELOAD,file CreateMenu "&Save",FILESAVE,file CreateMenu "Save &As...",FILESAVEAS,file CreateMenu "&Close",FILECLOSE,file CreateMenu "",0,file CreateMenu "&Quit",FILEQUIT,file UpdateWindowMenu window Const FILEQUIT=6 ; ------------------ ; Main ; ------------------ editor_exit=False While editor_exit=False Select WaitEvent(10) Case $802 ReSize() Case $803 ;close window event Select EventSource() Case window editor_exit=True End Select Case $1001 ;menu event Select EventData() Case FILEQUIT editor_exit=True End Select End Select ;DrawScene() Wend End Function ReSize() SetGadgetShape thisbutton,ClientWidth(window)-130,30,128,18 SetGadgetShape thispanel,ClientWidth(window)-130,50,128,128 End Function Mabie I'm doing something wrong or missing how to do something. Any suggestion or ideas would be apprieciated to help fix this. Here's what it looks like after when I click the minimize button from the app being in a full maximize state: [img deleted] Here's what I can't reproduce without all my opengl code. This happens simply after a click to full maximize state: [img deleted] |
| ||
Nevermind... I used this at the window sizing event to hack-fix it: Case $802 HideGadget thisbutton HideGadget thispanel HideGadget mainpanel ReSize() ShowGadget thisbutton ShowGadget thispanel ShowGadget mainpanel Since BlitzPlus, itself, fails to redraw correctly in situations like this, I figured out the Hide/ShowGadget trick so it will force a redraw to not get corrupted graphics. Edit: Actaully, to keep things even more simplier, I can use the the Hide/ShowGadgets on the main window by itself in this case and not on any other gadgets like I did above. But, it will cause more of a annoying flicker when minimizing, maximizing and sizing. |