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*. |