MiniB3D MaxGUI Max2D

BlitzMax Forums/MiniB3D Module/MiniB3D MaxGUI Max2D

BLaBZ(Posted 2010) [#1]
I can't seem to get Max2D to work with minib3d while using a MaxGUI canvas.

It seems it's dependent upon which graphics driver I set, If I set it to GLGraphicsDriver() then the Max2D functions don't work, If I set it to GLMax2DDrivers() then specifically, RenderWorld doesn't seem to work.

All help is appreciated!


BLaBZ(Posted 2010) [#2]
Renderworld seems to work once, then errors



SuperStrict

Import sidesign.minib3d
Import MaxGui.Drivers

'?Not win32			'Uncomment (3-lines) when using multiple canvases and BMax 1.32b and up
'GLShareContexts
'?
SetGraphicsDriver GLGraphicsDriver(),GRAPHICS_BACKBUFFER|GRAPHICS_DEPTHBUFFER
'SetGraphicsDriver(GLMax2DDriver())
'Graphics3D(800,600,0,2,60)

Global Camera:TCamera 


Global Cube:TMesh
Global Light:TLight 

Global Initialized:Int = 0 

'End Of external Header File


Global	Timer1:TTimer
Timer1:TTimer = CreateTimer:TTimer( 16 )



Global	Canvas1:TGadget

Local Window1:TGadget = CreateWindow:TGadget("Window1",583,139,587,433,Null,WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS |WINDOW_CENTER)
	Canvas1:TGadget = CreateCanvas:TGadget(0,0,587,433,Window1:TGadget,Null)
		ActivateGadget( Canvas1:TGadget )
		SetGadgetLayout( Canvas1:TGadget,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )

Repeat
	WaitEvent()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			Select EventSource()
				Case Window1	Window1_WC( Window1:TGadget )
			End Select

		Case EVENT_MOUSEDOWN
			Select EventSource()
				Case Canvas1	Canvas1_MD( Canvas1:TGadget , EventData() , Window1:TGadget )
			End Select

		Case EVENT_GADGETPAINT
			Select EventSource()
				Case Canvas1	Canvas1_GP( Canvas1:TGadget )
			End Select

		Case EVENT_TIMERTICK
			Select EventSource()
				Case Timer1	Timer1_Timer( Timer1:TTimer )
			End Select

	End Select
Forever

Function Window1_WC( Window:TGadget )
	DebugLog "Window Window1 wants to be closed"

	End
End Function

Function Canvas1_MD( Canvas:TGadget , MouseButton:Int , Window:TGadget=Null )
	DebugLog "Canvas Canvas1 detected Mouse Button "+ MouseButton +" pressed down"
	
End Function

Function Canvas1_GP( Canvas:TGadget )
	DebugLog "Canvas Canvas1 needs to be redrawn"
	SetGraphics CanvasGraphics ( Canvas )
	'SetViewport 0,0,GadgetWidth( Canvas ),GadgetHeight( Canvas )
	RenderWorld
	Flip
	'Cls
End Function

Function Timer1_Timer( Timer:TTimer )
	DebugLog "Timer Timer1 ticked"
	If Initialized =0
		Initialized =1
		SetGraphics CanvasGraphics(Canvas1)
		camera=CreateCamera()
		CameraViewport(camera,0,0,ClientWidth(Canvas1),ClientHeight(Canvas1))
		CameraRange camera,.1,1000
		CameraZoom camera,1.5
		CameraClsColor camera,0,0,0
		MoveEntity(Camera,0,0,-8)
		cube=CreateCube()
		Light=CreateLight()
	EndIf 
	UpdateWorld
	
	RedrawGadget(Canvas1)
End Function



BLaBZ(Posted 2010) [#3]
nvm! Figured it out, Had to call TGlobal functions