static void ShowError_SDL(string title, string text, Window parent = null) { if (!SDL2.Loaded) { SDL2.Load(); } var result = SDL2.SDL_ShowSimpleMessageBox(SDL2.SDL_MESSAGEBOX_ERROR, title, text, parent == null ? IntPtr.Zero : parent.Handle); if (result < 0) { throw new Exception(SDL2.GetErrorString()); } }
void Init() { //open SDL2 SDL2.Load(); //initialise SDL2 if (SDL2.SDL_Init(SDL2.SDL_INIT_VIDEO) != 0) { SDL2.SDL_ShowSimpleMessageBox( SDL2.SDL_MESSAGEBOX_ERROR, "Error", "SDL_Init failed, exiting.", IntPtr.Zero ); return; } //context attributes SDL2.SDL_GL_SetAttribute(SDL2.SDL_GLattr.SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL2.SDL_GL_SetAttribute(SDL2.SDL_GLattr.SDL_GL_CONTEXT_MINOR_VERSION, 2); SDL2.SDL_GL_SetAttribute(SDL2.SDL_GLattr.SDL_GL_CONTEXT_PROFILE_MASK, (int)SDL2.SDL_GLprofile.SDL_GL_CONTEXT_PROFILE_CORE); //create window fullscreen = GraphicsSettings.Fullscreen; var flags = GraphicsSettings.Fullscreen ? SDL2.SDL_WindowFlags.SDL_WINDOW_FULLSCREEN_DESKTOP | SDL2.SDL_WindowFlags.SDL_WINDOW_OPENGL : SDL2.SDL_WindowFlags.SDL_WINDOW_OPENGL; var sdlWin = SDL2.SDL_CreateWindow( Window.Title, SDL2.SDL_WINDOWPOS_CENTERED, SDL2.SDL_WINDOWPOS_CENTERED, GraphicsSettings.RequestedWidth, GraphicsSettings.RequestedHeight, flags ); Window.Width = GraphicsSettings.RequestedWidth; Window.Height = GraphicsSettings.RequestedHeight; Mouse = new Mouse(); Keyboard = new Keyboard(); if (sdlWin == IntPtr.Zero) { SDL2.SDL_ShowSimpleMessageBox( SDL2.SDL_MESSAGEBOX_ERROR, "Error", "SDL_CreateWindow failed, exiting.", IntPtr.Zero ); return; } Window.Handle = sdlWin; //create gl context var glcontext = SDL2.SDL_GL_CreateContext(sdlWin); if (glcontext == IntPtr.Zero) { SDL2.SDL_ShowSimpleMessageBox( SDL2.SDL_MESSAGEBOX_ERROR, "Error", "Failed to get GL context, exiting.", IntPtr.Zero ); SDL2.SDL_Quit(); return; } //Load libraries GL.Load(); FT.Load(); //Base gl state GL.glEnable(GL.GL_BLEND); GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); }