GTK + Canvas: How to???
BlitzMax Forums/Brucey's Modules/GTK + Canvas: How to???
| ||
| hello! just go and try the following code:
Framework bah.gtkmaxgui
Import brl.eventqueue
Import brl.max2d
Local window:Tgadget = CreateWindow("test", 0, 0, 300, 300)
Local canvas:tgadget = CreateCanvas(10, 10, 200, 200, window)
SetGraphics(CanvasGraphics(canvas))
Repeat
WaitEvent()
Select EventID()
Case EVENT_GADGETPAINT
Cls()
Flip()
End Select
Until KeyDown(key_escape)
for me it does not work at all. error message: cls() tries to access to a null object...?? |
| ||
| You need to import one of the max2d drivers: e.g. use... Framework bah.gtkmaxgui Import brl.eventqueue Import brl.glmax2d... for the OpenGL graphics driver. |
| ||
| ah yes thank you that worked for me :) :) |
| ||
| no gtk + canvas does not work :-\ this here is just a sample code:
Framework bah.gtkmaxgui
'Framework brl.fltkmaxgui
Import brl.glmax2d
Import brl.eventqueue
Local window:TGadget = CreateWindow("Minesweeper vX", 100, 100, 500, 500)
Local canvas:Tgadget = CreateCanvas(10, 10, 450, 450, window)
Local tiles:TImage = LoadAnimImage("media\default.png", 24, 24, 0, 4)
Local map:TBlock[20,30]
If tiles=Null Then Print "NOFILE"; End
For Local i% = 0 To 19
For Local k% = 0 To 29
map[i, k] = New TBlock
Next
Next
SetGraphics CanvasGraphics(canvas)
Repeat
WaitEvent()
Select EventID()
Case EVENT_WINDOWCLOSE
End
Case EVENT_GADGETPAINT
Cls()
For i = 0 To 19
For k = 0 To 29
If map[i, k].Open = True Then DrawImage tiles, 24*i, 24*k, 1 Else DrawImage tiles, 24*i, 24*k, 0
Next
Next
Flip()
End Select
Forever
Type TBlock
Field Open% = False
Field Bomb% = False
Field Flag% = False
End Type
in fltk it works for me, it loads my png file and prints it to the canvas. in gtk it just draws a black screen :(. |
| ||
| What about the glcube.bmx test that you can find in the tests folder of the module? There's also one called createcanvas.bmx in there. |
| ||
yes and no. i had to import eventqueue in both of them. glcube.bmx does work for me, but it is using glgraphics and i want to use max2d. though i tried createcanvas.bmx and i did not work for me. it starts, outputs some debug info and thats all...:... TimerTick: data=480, mods=0, x=0, y=0, extra="" GadgetPaint: data=0, mods=0, x=0, y=0, extra="" TimerTick: data=481, mods=0, x=0, y=0, extra="" GadgetPaint: data=0, mods=0, x=0, y=0, extra="" TimerTick: data=482, mods=0, x=0, y=0, extra="" GadgetPaint: data=0, mods=0, x=0, y=0, extra="" TimerTick: data=483, mods=0, x=0, y=0, extra="" GadgetPaint: data=0, mods=0, x=0, y=0, extra="" TimerTick: data=484, mods=0, x=0, y=0, extra="" GadgetPaint: data=0, mods=0, x=0, y=0, extra="" TimerTick: data=485, mods=0, x=0, y=0, extra="" ... and so on. it opens up a very very small "window" (it so small, that you cant even talk of a window), just 1x4 pixels or so. |
| ||
| it opens up a very very small "window" (it so small, that you cant even talk of a window), just 1x4 pixels or so. I too have noticed this behaviour with the GTKMaxGUI module - I reported it a while back with a few other bugs in this thread *click*. |