Scalable canvas / Graphics mode 3
BlitzPlus Forums/BlitzPlus Programming/Scalable canvas / Graphics mode 3
| ||
I've forgotten how to do this. Or, rather, I've done what I thought should do it, but it's not happenning =] I'm trying to set up a 800x600 canvas on a window that covers the full screen:Global dw=GadgetWidth(Desktop()) Global dh=GadgetHeight(Desktop()) Global pWindow=CreateWindow("",0,0,800,600,0,16+3) Global menubuffer=CreateCanvas(0,0,800,600,pWindow) SetGadgetLayout menubuffer,1,1,1,1 SetGadgetShape pWindow,0,0,dw,dh SetBuffer CanvasBuffer(menubuffer) ClsColor 0,0,0 Cls FlipCanvas menubuffer MouseWait End But as you can see, it remains an 800x600 canvas with the remaining space acting as a dead zone. |
| ||
It seems to work fine for me. |
| ||
Works fine for me too, but heres a better method that gets above the taskbar for true full screen in windowed mode: userlib entry: .lib "user32.dll" SetWindowPos%(hWnd%,hAfter%,x%,y%,cx%,cy%,flags%)B+ Code: Window = CreateWindow("Full screen window", ClientWidth(Desktop())/2 - 403, ClientHeight(Desktop())/2 - 312, 806, 625, 0, 1) Canvas = CreateCanvas(0, 0, 800, 600, Window) SetGadgetLayout Canvas, 1, 2, 1, 2 SetBuffer CanvasBuffer(Canvas) AutoSuspend 1 CreateTimer 60 Repeat Select WaitEvent() Case $803: End ; X Case $101 ; Keydown If EventData() = 1 Then ; ESC End ElseIf EventData() = 57 Then ; Full screen SetWindowPos QueryObject(Window, 1), -1, 0, 0, ClientWidth(Desktop()), ClientHeight(Desktop()), 0 EndIf Case $4001 ; Tick Cls If GadgetWidth(Window) <> ClientWidth(Desktop()) Then Text 1, 1, "Press SPACE to go full screen" VWait 1: FlipCanvas Canvas, 0 End Select Forever |
| ||
Then, OK, my machine is doing stupid things. Time for a reset again probably. Thanks for the code Eikon, I'll take a look at that right now in fact. |
| ||
Oh, I know what's going on. I had my program running in Native mode. It only works in DX mode. That screws up my plans for down the track then... OpenGL mode actually crashes on exit. I'll report that. |
| ||
OK Eikon, or somebody, how do I use SetWindowPos to stop the window from being forced ontop of all other windows? I'm much too lazy to look it up myself. Currently I'm just destroying/rebuilding the window. =] |