/* * Creates a window, initializes OpenGl settings, and updates the current height and width of the window. */ private void initializeOpenGL() { //Center the window Sdl.SDL_putenv("SDL_VIDEO_CENTERED=center"); //Create the window Debug.WriteLine("SDL_SetVideoMode Called"); vidSurface = Sdl.SDL_SetVideoMode(((fullscreen) ? 1 : windowWidth), ((fullscreen) ? 0 : windowHeight), 32, Sdl.SDL_OPENGL | Sdl.SDL_DOUBLEBUF | Sdl.SDL_HWSURFACE | ((fullscreen) ? Sdl.SDL_FULLSCREEN : 0)); if (vidSurface == null) { throw new Exception("Error, could not set video mode."); } //Marshal in surface to obtain info Sdl.SDL_Surface managedSurface = (Sdl.SDL_Surface)Marshal.PtrToStructure(vidSurface, typeof(Sdl.SDL_Surface)); pixFmt = managedSurface.format; //Current Dimensions of the window. this.width = (short)managedSurface.w; this.height = (short)managedSurface.h; camera.setView(); //Settings Sdl.SDL_GL_SetAttribute(Sdl.SDL_GL_DOUBLEBUFFER, 1); Gl.glEnable(Gl.GL_TEXTURE_2D); Gl.glClearColor(0, 0, 0, 1); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT); Gl.glViewport(0, 0, width, height); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Gl.glOrtho(0.0f, width, height, 0.0f, -1.0f, 1.0f); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glEnable(Gl.GL_BLEND); Gl.glDisable(Gl.GL_DEPTH_TEST); Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA); }