Changed: Partially abstracted the windows version of OpenArena::Window CreateGLWindow and KillGLWindow are now part of the Window class ResizeGLScene and InitGL are now callbacks

This commit is contained in:
2005-06-26 10:55:03 -04:00
parent 14407e8103
commit 6e11904c95
4 changed files with 48 additions and 8 deletions

View File

@@ -43,8 +43,8 @@ static float currentTime;
void InitControls(); // Sets up player controls
int InitGL(); // All setup for OpenGL goes here
GLvoid ReSizeGLScene(GLsizei width, GLsizei height); // Resize and initialize the GL window
GLvoid KillGLWindow(GLvoid); //Properly kill the window
bool CreateGLWindow(string title, int width, int height, int bits, bool fullscreenflag);
void ReSizeGLScene(GLsizei width, GLsizei height); // Resize and initialize the GL window
#endif

View File

@@ -18,9 +18,7 @@
using namespace std;
#ifdef WIN32
//These three are windows specific
static HDC hDC=NULL; // Private GDI device context
static HGLRC hRC=NULL; // Permanent rendering context
//These this is windows specific
static HINSTANCE hInstance; // Application instance
#endif
extern OpenArena::Window g_Screen;

View File

@@ -3,17 +3,26 @@
#include "screen.h"
#ifdef __linux
#include <GL/gl.h>
#include <GL/glx.h>
#include <X11/extensions/xf86vmode.h>
#include <X11/keysym.h>
#endif
#ifdef WIN32
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#endif
namespace OpenArena
{
typedef void (*ResizeFunc)(GLsizei width, GLsizei height);
typedef int (*InitFunc)();
class Window: public SCREEN
{
public:
#ifdef __linux
#ifdef __linux
Display* display;
int screen;
::Window window;
@@ -22,8 +31,38 @@ namespace OpenArena
bool doubleBuffered;
XF86VidModeModeInfo vidMode;
int x, y;
#endif
private:
#endif
#ifdef WIN32
HGLRC glContext;
HWND window;
private:
HDC deviceContext;
HINSTANCE instance;
#endif
public:
Window();
~Window();
void Close();
bool Open();
bool Open(string title, int width, int height, int bits, bool fullscreenflag); //make that string a const char* after this works
void SetOnInit(InitFunc function);
void SetOnResize(ResizeFunc function);
void SwapBuffers();
private:
ResizeFunc OnResize;
InitFunc OnInit;
};
void DefaultResize(GLsizei width, GLsizei height);
int DefaultInit();
};
#ifdef WIN32
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
#endif
#endif