Пример #1
0
        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());
            }
        }
Пример #2
0
        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);
        }