瀏覽代碼

Fixed Linux build.

woollybah 6 年之前
父節點
當前提交
ae26ccc2d2
共有 2 個文件被更改,包括 301 次插入389 次删除
  1. 294 295
      bgfxsdlgraphics.mod/bgfxsdlgraphics.bmx
  2. 7 94
      bgfxsdlgraphics.mod/glue.c

+ 294 - 295
bgfxsdlgraphics.mod/bgfxsdlgraphics.bmx

@@ -1,295 +1,294 @@
-' Copyright (c) 2015-2019 Bruce A Henderson
-' All rights reserved.
-' 
-' Redistribution and use in source and binary forms, with or without
-' modification, are permitted provided that the following conditions are met:
-' 
-' * Redistributions of source code must retain the above copyright notice, this
-'   list of conditions and the following disclaimer.
-' 
-' * Redistributions in binary form must reproduce the above copyright notice,
-'   this list of conditions and the following disclaimer in the documentation
-'   and/or other materials provided with the distribution.
-' 
-' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-' IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-' FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-' DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-' CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-' OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-' OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-'
-SuperStrict
-
-Module gfx.bgfxsdlgraphics
-
-
-Import "common.bmx"
-
-Private
-Global _currentContext:TGraphicsContext
-Public
-
-Type TGraphicsContext
-	Field Mode:Int
-	Field width:Int
-	Field height:Int
-	Field depth:Int
-	Field hertz:Int
-	Field flags:Int
-	Field sync:Int
-
-	Field window:TSDLWindow
-'	Field context:TSDLGLContext
-	Field info:Byte Ptr
-	Field data:Object
-End Type
-
-Private
-
-Extern
-	Function bbGfxGraphicsShareContexts()
-	Function bbGfxGraphicsGraphicsModes:Int( display:Int, buf:Byte Ptr, size:Int )
-	Function bbGfxGraphicsAttachGraphics:Byte Ptr( widget:Byte Ptr,flags:Int )
-	Function bbGfxGraphicsCreateGraphics:Byte Ptr( width:Int, height:Int, depth:Int, hertz:Int, flags:Int )
-	Function bbGfxGraphicsGetSettings( context:Byte Ptr, width:Int Var, height:Int Var, depth:Int Var, hertz:Int Var, flags:Int Var )
-	Function bbGfxGraphicsClose( context:Byte Ptr )	
-	Function bbGfxGraphicsSetGraphics( context:Byte Ptr )
-	Function bbGfxGraphicsFlip( sync:Int )
-	Function bbGfxGraphicsCls()
-	Function bbGfxSetPlatformData(handle:Byte Ptr)
-End Extern
-
-Public
-
-Type TGfxGraphics Extends TGraphics
-
-	Method Driver:TGfxGraphicsDriver()
-		Assert _context
-		Return GfxGraphicsDriver()
-	End Method
-	
-	Method GetSettings:Int( width:Int Var,height:Int Var,depth:Int Var,hertz:Int Var,flags:Int Var )
-		Assert _context
-		width=_context.width
-		height=_context.height
-		depth=_context.depth
-		hertz=_context.hertz
-		flags=_context.flags
-	End Method
-	
-	Method Close:Int()
-		If Not _context Return 0
-
-		If _currentContext = _context Then
-			_currentContext = Null
-		End If
-
-		If _context.window Then
-			_context.window.Destroy()
-		End If
-		_context=Null
-	End Method
-
-	Method GetHandle:Byte Ptr()
-		If _context Then
-			Return _context.window.GetWindowHandle()
-		End If
-	End Method
-
-	Method Resize:Int(width:Int, height:Int)
-		TBGFX.Reset(width, height, BGFX_RESET_VSYNC | BGFX_RESET_HIDPI)
-	End Method
-
-	Field _context:TGraphicsContext
-	
-End Type
-
-Type TGfxGraphicsDriver Extends TGraphicsDriver
-
-	Global _inited:Int
-
-	Method GraphicsModes:TGraphicsMode[]()
-		Local buf:Int[1024*4]
-		Local count:Int=bbGfxGraphicsGraphicsModes( 0,buf,1024 )
-		Local modes:TGraphicsMode[count],p:Int Ptr=buf
-		For Local i:Int=0 Until count
-			Local t:TGraphicsMode=New TGraphicsMode
-			t.width=p[0]
-			t.height=p[1]
-			t.depth=p[2]
-			t.hertz=p[3]
-			modes[i]=t
-			p:+4
-		Next
-		Return modes
-	End Method
-	
-	Method AttachGraphics:TGfxGraphics( widget:Byte Ptr,flags:Int )
-		'Local t:TGfxGraphics=New TGfxGraphics
-		't._context=bbGLGraphicsAttachGraphics( widget,flags )
-		'Return t
-	End Method
-	
-	Method CreateGraphics:TGfxGraphics( width:Int, height:Int, depth:Int, hertz:Int, flags:Int )
-		Local t:TGfxGraphics=New TGfxGraphics
-		t._context=GfxGraphicsCreateGraphics( width,height,depth,hertz,flags )
-
-		If Not _inited Then
-			Local rtype:EBGFXRenderType
-?win32
-			' hard coded for now until I can work out how to get the others to render correctly...
-			rtype = EBGFXRenderType.DIRECT3D9
-?Not win32
-			rtype = EBGFXRenderType.OPENGL
-?		
-			InitGraphics(width, height, rtype)
-		End If
-
-		Return t
-	End Method
-
-	Method GfxGraphicsCreateGraphics:TGraphicsContext(width:Int,height:Int,depth:Int,hertz:Int,flags:Int)
-		Local context:TGraphicsContext = New TGraphicsContext
-
-		Local windowFlags:UInt '= SDL_WINDOW_ALLOW_HIGHDPI
-		Local gFlags:UInt
-		Local glFlags:UInt = flags
-Rem
-		If flags & SDL_GRAPHICS_NATIVE Then
-
-			flags :~ SDL_GRAPHICS_NATIVE
-
-			gFlags = flags & (SDL_GRAPHICS_BACKBUFFER | SDL_GRAPHICS_ALPHABUFFER | SDL_GRAPHICS_DEPTHBUFFER | SDL_GRAPHICS_STENCILBUFFER | SDL_GRAPHICS_ACCUMBUFFER)
-
-			flags :~ SDL_GRAPHICS_GL
-
-			flags :~ (SDL_GRAPHICS_BACKBUFFER | SDL_GRAPHICS_ALPHABUFFER | SDL_GRAPHICS_DEPTHBUFFER | SDL_GRAPHICS_STENCILBUFFER | SDL_GRAPHICS_ACCUMBUFFER)
-
-			windowFlags :| flags
-
-			If glFlags Then
-				If gFlags & SDL_GRAPHICS_BACKBUFFER Then SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
-				If gFlags & SDL_GRAPHICS_ALPHABUFFER Then SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1)
-				If gFlags & SDL_GRAPHICS_DEPTHBUFFER Then SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24)
-				If gFlags & SDL_GRAPHICS_STENCILBUFFER Then SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
-			End If
-
-		Else
-
-			If depth Then
-				windowFlags :| SDL_WINDOW_FULLSCREEN
-				' mode = MODE_DISPLAY
-			Else
-				If flags & $80000000 Then
-					windowFlags :| SDL_WINDOW_FULLSCREEN_DESKTOP
-				End If
-				' mode = MODE_WINDOW
-			End If
-
-			gFlags = flags & (GRAPHICS_BACKBUFFER | GRAPHICS_ALPHABUFFER | GRAPHICS_DEPTHBUFFER | GRAPHICS_STENCILBUFFER | GRAPHICS_ACCUMBUFFER)
-
-			If glFlags Then
-				If gFlags & GRAPHICS_BACKBUFFER Then SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
-				If gFlags & GRAPHICS_ALPHABUFFER Then SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1)
-				If gFlags & GRAPHICS_DEPTHBUFFER Then SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24)
-				If gFlags & GRAPHICS_STENCILBUFFER Then SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
-			End If
-		End If
-
-End Rem
-		'End If
-
-		context.window = TSDLWindow.Create(AppTitle, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, windowFlags)
-		'If glFlags Then
-		'	context.context = context.window.GLCreateContext()
-		'	SDL_GL_SetSwapInterval(-1)
-		'	context.sync = -1
-		'End If
-
-		context.width = width
-		context.height = height
-		context.depth = depth
-		context.hertz = hertz
-		context.flags = flags
-		
-		bbGfxSetPlatformData(context.window.WindowPtr)
-		
-		TBGFX.RenderFrame()
-
-		AddHook EmitEventHook,GraphicsHook,context,0
-
-		Return context
-	End Method
-
-	Method SetGraphics:Int( g:TGraphics )
-		Local context:Byte Ptr
-		Local t:TGfxGraphics=TGfxGraphics( g )
-		If t context=t._context
-		bbGfxGraphicsSetGraphics context
-	End Method
-	
-	Method Flip:Int( sync:Int )
-		bbGfxGraphicsFlip sync
-	End Method
-	
-	Method SetViewRect()
-		TBGFX.SetViewRectRatio(0, 0, 0, 0)
-	End Method
-	
-	Rem
-	bbdoc: 
-	End Rem
-	Method InitGraphics(width:Int, height:Int, rendererType:EBGFXRenderType = EBGFXRenderType.COUNT)
-		If Not TBGFX.Init(width, height, rendererType) Then
-			Throw "Failed to initialise graphics"
-		End If
-		_inited = True
-	End Method
-
-	Function GraphicsHook:Object( id:Int,data:Object,context:Object )
-		Local ev:TEvent=TEvent(data)
-		If Not ev Return data
-
-		Select ev.id
-			Case EVENT_WINDOWSIZE
-				Local ctxt:TGraphicsContext = TGraphicsContext(context)
-				If ctxt Then
-					If ctxt.window.GetID() = ev.data Then
-						ctxt.width = ev.x
-						ctxt.height = ev.y
-						GraphicsResize(ev.x, ev.y)
-					End If
-				End If
-		End Select
-
-		Return data
-	End Function
-
-	Method CanResize:Int()
-		Return True
-	End Method
-
-End Type
-
-
-Function GfxGraphicsDriver:TGfxGraphicsDriver()
-	Global _driver:TGfxGraphicsDriver=New TGfxGraphicsDriver
-	Return _driver
-End Function
-
-Rem
-bbdoc: Create graphics
-returns: A graphics object
-about:
-This is a convenience function that allows you to easily create a graphics context.
-End Rem
-Function GfxGraphics:TGraphics( width:Int, height:Int, depth:Int = 0, hertz:Int = 60, flags:Int = 0 )
-	SetGraphicsDriver GfxGraphicsDriver()
-	Return Graphics( width,height,depth,hertz,flags )
-End Function
-	
-SetGraphicsDriver GfxGraphicsDriver()
+' Copyright (c) 2015-2019 Bruce A Henderson
+' All rights reserved.
+' 
+' Redistribution and use in source and binary forms, with or without
+' modification, are permitted provided that the following conditions are met:
+' 
+' * Redistributions of source code must retain the above copyright notice, this
+'   list of conditions and the following disclaimer.
+' 
+' * Redistributions in binary form must reproduce the above copyright notice,
+'   this list of conditions and the following disclaimer in the documentation
+'   and/or other materials provided with the distribution.
+' 
+' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+' IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+' FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+' DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+' CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+' OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+' OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+'
+SuperStrict
+
+Module gfx.bgfxsdlgraphics
+
+
+Import "common.bmx"
+
+Private
+Global _currentContext:TGraphicsContext
+Public
+
+Type TGraphicsContext
+	Field Mode:Int
+	Field width:Int
+	Field height:Int
+	Field depth:Int
+	Field hertz:Int
+	Field flags:Int
+	Field sync:Int
+
+	Field window:TSDLWindow
+'	Field context:TSDLGLContext
+	Field info:Byte Ptr
+	Field data:Object
+End Type
+
+Private
+
+Extern
+	Function bbGfxGraphicsShareContexts()
+	Function bbGfxGraphicsGraphicsModes:Int( display:Int, buf:Byte Ptr, size:Int )
+	Function bbGfxGraphicsAttachGraphics:Byte Ptr( widget:Byte Ptr,flags:Int )
+	Function bbGfxGraphicsGetSettings( context:Byte Ptr, width:Int Var, height:Int Var, depth:Int Var, hertz:Int Var, flags:Int Var )
+	Function bbGfxGraphicsClose( context:Byte Ptr )	
+	Function bbGfxGraphicsSetGraphics( context:Byte Ptr )
+	Function bbGfxGraphicsFlip( sync:Int )
+	Function bbGfxGraphicsCls()
+	Function bbGfxSetPlatformData(handle:Byte Ptr)
+End Extern
+
+Public
+
+Type TGfxGraphics Extends TGraphics
+
+	Method Driver:TGfxGraphicsDriver()
+		Assert _context
+		Return GfxGraphicsDriver()
+	End Method
+	
+	Method GetSettings:Int( width:Int Var,height:Int Var,depth:Int Var,hertz:Int Var,flags:Int Var )
+		Assert _context
+		width=_context.width
+		height=_context.height
+		depth=_context.depth
+		hertz=_context.hertz
+		flags=_context.flags
+	End Method
+	
+	Method Close:Int()
+		If Not _context Return 0
+
+		If _currentContext = _context Then
+			_currentContext = Null
+		End If
+
+		If _context.window Then
+			_context.window.Destroy()
+		End If
+		_context=Null
+	End Method
+
+	Method GetHandle:Byte Ptr()
+		If _context Then
+			Return _context.window.GetWindowHandle()
+		End If
+	End Method
+
+	Method Resize:Int(width:Int, height:Int)
+		TBGFX.Reset(width, height, BGFX_RESET_VSYNC | BGFX_RESET_HIDPI)
+	End Method
+
+	Field _context:TGraphicsContext
+	
+End Type
+
+Type TGfxGraphicsDriver Extends TGraphicsDriver
+
+	Global _inited:Int
+
+	Method GraphicsModes:TGraphicsMode[]()
+		Local buf:Int[1024*4]
+		Local count:Int=bbGfxGraphicsGraphicsModes( 0,buf,1024 )
+		Local modes:TGraphicsMode[count],p:Int Ptr=buf
+		For Local i:Int=0 Until count
+			Local t:TGraphicsMode=New TGraphicsMode
+			t.width=p[0]
+			t.height=p[1]
+			t.depth=p[2]
+			t.hertz=p[3]
+			modes[i]=t
+			p:+4
+		Next
+		Return modes
+	End Method
+	
+	Method AttachGraphics:TGfxGraphics( widget:Byte Ptr,flags:Int )
+		'Local t:TGfxGraphics=New TGfxGraphics
+		't._context=bbGLGraphicsAttachGraphics( widget,flags )
+		'Return t
+	End Method
+	
+	Method CreateGraphics:TGfxGraphics( width:Int, height:Int, depth:Int, hertz:Int, flags:Int )
+		Local t:TGfxGraphics=New TGfxGraphics
+		t._context=GfxGraphicsCreateGraphics( width,height,depth,hertz,flags )
+
+		If Not _inited Then
+			Local rtype:EBGFXRenderType
+?win32
+			' hard coded for now until I can work out how to get the others to render correctly...
+			rtype = EBGFXRenderType.DIRECT3D9
+?Not win32
+			rtype = EBGFXRenderType.OPENGL
+?		
+			InitGraphics(width, height, rtype)
+		End If
+
+		Return t
+	End Method
+
+	Method GfxGraphicsCreateGraphics:TGraphicsContext(width:Int,height:Int,depth:Int,hertz:Int,flags:Int)
+		Local context:TGraphicsContext = New TGraphicsContext
+
+		Local windowFlags:UInt '= SDL_WINDOW_ALLOW_HIGHDPI
+		Local gFlags:UInt
+		Local glFlags:UInt = flags
+Rem
+		If flags & SDL_GRAPHICS_NATIVE Then
+
+			flags :~ SDL_GRAPHICS_NATIVE
+
+			gFlags = flags & (SDL_GRAPHICS_BACKBUFFER | SDL_GRAPHICS_ALPHABUFFER | SDL_GRAPHICS_DEPTHBUFFER | SDL_GRAPHICS_STENCILBUFFER | SDL_GRAPHICS_ACCUMBUFFER)
+
+			flags :~ SDL_GRAPHICS_GL
+
+			flags :~ (SDL_GRAPHICS_BACKBUFFER | SDL_GRAPHICS_ALPHABUFFER | SDL_GRAPHICS_DEPTHBUFFER | SDL_GRAPHICS_STENCILBUFFER | SDL_GRAPHICS_ACCUMBUFFER)
+
+			windowFlags :| flags
+
+			If glFlags Then
+				If gFlags & SDL_GRAPHICS_BACKBUFFER Then SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
+				If gFlags & SDL_GRAPHICS_ALPHABUFFER Then SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1)
+				If gFlags & SDL_GRAPHICS_DEPTHBUFFER Then SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24)
+				If gFlags & SDL_GRAPHICS_STENCILBUFFER Then SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
+			End If
+
+		Else
+
+			If depth Then
+				windowFlags :| SDL_WINDOW_FULLSCREEN
+				' mode = MODE_DISPLAY
+			Else
+				If flags & $80000000 Then
+					windowFlags :| SDL_WINDOW_FULLSCREEN_DESKTOP
+				End If
+				' mode = MODE_WINDOW
+			End If
+
+			gFlags = flags & (GRAPHICS_BACKBUFFER | GRAPHICS_ALPHABUFFER | GRAPHICS_DEPTHBUFFER | GRAPHICS_STENCILBUFFER | GRAPHICS_ACCUMBUFFER)
+
+			If glFlags Then
+				If gFlags & GRAPHICS_BACKBUFFER Then SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
+				If gFlags & GRAPHICS_ALPHABUFFER Then SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1)
+				If gFlags & GRAPHICS_DEPTHBUFFER Then SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24)
+				If gFlags & GRAPHICS_STENCILBUFFER Then SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
+			End If
+		End If
+
+End Rem
+		'End If
+
+		context.window = TSDLWindow.Create(AppTitle, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, windowFlags)
+		'If glFlags Then
+		'	context.context = context.window.GLCreateContext()
+		'	SDL_GL_SetSwapInterval(-1)
+		'	context.sync = -1
+		'End If
+
+		context.width = width
+		context.height = height
+		context.depth = depth
+		context.hertz = hertz
+		context.flags = flags
+		
+		bbGfxSetPlatformData(context.window.WindowPtr)
+		
+		TBGFX.RenderFrame()
+
+		AddHook EmitEventHook,GraphicsHook,context,0
+
+		Return context
+	End Method
+
+	Method SetGraphics:Int( g:TGraphics )
+		Local context:Byte Ptr
+		Local t:TGfxGraphics=TGfxGraphics( g )
+		If t context=t._context
+		bbGfxGraphicsSetGraphics context
+	End Method
+	
+	Method Flip:Int( sync:Int )
+		bbGfxGraphicsFlip sync
+	End Method
+	
+	Method SetViewRect()
+		TBGFX.SetViewRectRatio(0, 0, 0, 0)
+	End Method
+	
+	Rem
+	bbdoc: 
+	End Rem
+	Method InitGraphics(width:Int, height:Int, rendererType:EBGFXRenderType = EBGFXRenderType.COUNT)
+		If Not TBGFX.Init(width, height, rendererType) Then
+			Throw "Failed to initialise graphics"
+		End If
+		_inited = True
+	End Method
+
+	Function GraphicsHook:Object( id:Int,data:Object,context:Object )
+		Local ev:TEvent=TEvent(data)
+		If Not ev Return data
+
+		Select ev.id
+			Case EVENT_WINDOWSIZE
+				Local ctxt:TGraphicsContext = TGraphicsContext(context)
+				If ctxt Then
+					If ctxt.window.GetID() = ev.data Then
+						ctxt.width = ev.x
+						ctxt.height = ev.y
+						GraphicsResize(ev.x, ev.y)
+					End If
+				End If
+		End Select
+
+		Return data
+	End Function
+
+	Method CanResize:Int()
+		Return True
+	End Method
+
+End Type
+
+
+Function GfxGraphicsDriver:TGfxGraphicsDriver()
+	Global _driver:TGfxGraphicsDriver=New TGfxGraphicsDriver
+	Return _driver
+End Function
+
+Rem
+bbdoc: Create graphics
+returns: A graphics object
+about:
+This is a convenience function that allows you to easily create a graphics context.
+End Rem
+Function GfxGraphics:TGraphics( width:Int, height:Int, depth:Int = 0, hertz:Int = 60, flags:Int = 0 )
+	SetGraphicsDriver GfxGraphicsDriver()
+	Return Graphics( width,height,depth,hertz,flags )
+End Function
+	
+SetGraphicsDriver GfxGraphicsDriver()

+ 7 - 94
bgfxsdlgraphics.mod/glue.c

@@ -68,7 +68,6 @@ void bbGfxGraphicsClose( BBGfxContext *context );
 void bmx_SDL_Poll();
 void bmx_SDL_WaitEvent();
 void * bbSDLGraphicsGetHandle(BBGfxContext *context);
-BBGfxContext *bbGfxGraphicsCreateGraphics( int width,int height,int depth,int hz,int flags );
 void bbGfxGraphicsCls();
 void bbGfxSetPlatformData(SDL_Window * window);
 
@@ -98,7 +97,6 @@ static void * bbGfxGetWindowHandle(SDL_Window * window) {
 	if (!SDL_GetWindowWMInfo(window, &wmi) ) {
 		return NULL;
 	}
-
 #if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
 #if ENTRY_CONFIG_USE_WAYLAND
 	wl_egl_window *win_impl = (wl_egl_window*)SDL_GetWindowData(window, "wl_egl_window");
@@ -125,110 +123,26 @@ static void * bbGfxGetWindowHandle(SDL_Window * window) {
 #endif // BX_PLATFORM_
 }
 
-BBGfxContext *bbGfxGraphicsCreateGraphics( int width,int height,int depth,int hz,int flags ) {
-
-	int mode;
-	char * appTitle = bbStringToUTF8String( bbAppTitle );
-	
-	int windowFlags = 0;
-
-//	if ((flags & FLAGS_DX) == 0) {
-//		windowFlags = SDL_WINDOW_OPENGL;
-//	}
-	
-	if (flags & FLAGS_BORDERLESS) windowFlags |= SDL_WINDOW_BORDERLESS;
-	
-	if( depth ){
-		windowFlags |= SDL_WINDOW_FULLSCREEN;
-		mode=MODE_DISPLAY;
-	} else {
-		if (flags & FLAGS_FULLSCREEN) {
-			windowFlags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
-		}
-		mode=MODE_WINDOW;
-	}
-/*
-	if ((flags & FLAGS_DX) == 0) {
-		if (flags & FLAGS_BACKBUFFER) SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
-		if (flags & FLAGS_ALPHABUFFER) SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1);
-		if (flags & FLAGS_DEPTHBUFFER) SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
-		if (flags & FLAGS_STENCILBUFFER) SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1);
-	}
-*/
-	SDL_Window *window = SDL_CreateWindow(appTitle, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
-		width, height, windowFlags | SDL_WINDOW_ALLOW_HIGHDPI);
-		
-	if (window == NULL) {
-printf("error... %s\n", SDL_GetError());fflush(stdout);
-		return NULL;
-	}
-
-	//SDL_GLContext context = 0;
-	
-//	if ((flags & FLAGS_DX) == 0) {
-	//	SDL_GL_SetSwapInterval(-1);
-	//
-		//context = SDL_GL_CreateContext(window);
-	//}
-
-	BBGfxContext *bbcontext=(BBGfxContext*)malloc( sizeof(BBGfxContext) );
-	memset( bbcontext,0,sizeof(BBGfxContext) );
-	bbcontext->mode=mode;	
-	bbcontext->width=width;	
-	bbcontext->height=height;
-#ifdef __RASPBERRYPI__
-	bbcontext->depth=16;
-#else
-	bbcontext->depth=24;	
-#endif
-	bbcontext->hertz=hz;
-	bbcontext->flags=flags;
-	bbcontext->sync=-1;	
-	bbcontext->window=window;
-	//bbcontext->context=context;
-	SDL_GetWindowWMInfo(window, &bbcontext->info);
-
-printf("HAH\n");fflush(stdout);
-	bgfx_platform_data_t pd;
-#if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
-#if ENTRY_CONFIG_USE_WAYLAND
-	pd.ndt          = wmi.info.wl.display;
-#else
-	pd.ndt          = wmi.info.x11.display;
-#endif
-#elif BX_PLATFORM_OSX
-	pd.ndt          = NULL;
-#elif BX_PLATFORM_WINDOWS
-	pd.ndt          = NULL;
-#elif BX_PLATFORM_STEAMLINK
-	pd.ndt          = wmi.info.vivante.display;
-#endif // BX_PLATFORM_
-	pd.nwh          = bbGfxGetWindowHandle(window);
-	pd.context      = NULL;
-	pd.backBuffer   = NULL;
-	pd.backBufferDS = NULL;
-	bgfx_set_platform_data(&pd);
-
-	return bbcontext;
-}
-
 void bbGfxSetPlatformData(SDL_Window * window) {
 	SDL_SysWMinfo info;
-	SDL_GetWindowWMInfo(window, &info);
+	SDL_VERSION(&info.version);
+	if (!SDL_GetWindowWMInfo(window, &info)) {
+		bbExThrow("Error getting window info");
+	}
 
 	bgfx_platform_data_t pd;
 #if BX_PLATFORM_LINUX || BX_PLATFORM_BSD
 #if ENTRY_CONFIG_USE_WAYLAND
-	pd.ndt          = wmi.info.wl.display;
+	pd.ndt          = info.info.wl.display;
 #else
-	pd.ndt          = wmi.info.x11.display;
+	pd.ndt          = info.info.x11.display;
 #endif
 #elif BX_PLATFORM_OSX
 	pd.ndt          = NULL;
 #elif BX_PLATFORM_WINDOWS
 	pd.ndt          = NULL;
 #elif BX_PLATFORM_STEAMLINK
-	pd.ndt          = wmi.info.vivante.display;
+	pd.ndt          = info.info.vivante.display;
 #endif // BX_PLATFORM_
 	pd.nwh          = bbGfxGetWindowHandle(window);
 	pd.context      = NULL;
@@ -289,7 +203,6 @@ void bbGfxGraphicsGetSettings( BBGfxContext *context, int * width,int * height,i
 }
 
 void bbGfxGraphicsCls() {
-printf("bbGfxGraphicsCls\n");fflush(stdout);
 	bgfx_encoder_t* encoder = bgfx_encoder_begin(true);
 	bgfx_encoder_touch(encoder, 0);
 	bgfx_encoder_end(encoder);