180 lines
2.6 KiB
C
180 lines
2.6 KiB
C
/*
|
|
* This file is automaticaly generated, Please dont edit this file!
|
|
*/
|
|
#include <engine/windowManager.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int DoubleBufferAttributes[] = {
|
|
GLX_RGBA,
|
|
GLX_RED_SIZE, 1,
|
|
GLX_GREEN_SIZE, 1,
|
|
GLX_BLUE_SIZE, 1,
|
|
GLX_DEPTH_SIZE, 12,
|
|
GLX_DOUBLEBUFFER,
|
|
None,
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void windowManager_setupDisplay( windowManager * this ) {
|
|
|
|
this->mainDisplay = XOpenDisplay( 0 );
|
|
|
|
this->MainScreen = XDefaultScreen( this->mainDisplay );
|
|
|
|
}
|
|
|
|
void windowManager_setupWindow( windowManager * this ) {
|
|
|
|
|
|
this->RootWindow = XDefaultRootWindow( this->mainDisplay );
|
|
|
|
|
|
int empty;
|
|
|
|
int ResultStatus = glXQueryExtension( this->mainDisplay, &empty, &empty );
|
|
|
|
XVisualInfo* VisualInfo = glXChooseVisual( this->mainDisplay, this->MainScreen, DoubleBufferAttributes );
|
|
|
|
GLXContext ShareList = None;
|
|
|
|
int IsDirectRendering = True;
|
|
|
|
|
|
|
|
|
|
|
|
GLXContext OpenGLContext = glXCreateContext( this->mainDisplay, VisualInfo, ShareList, IsDirectRendering );
|
|
|
|
|
|
|
|
int WindowX = 0;
|
|
|
|
int WindowY = 0;
|
|
|
|
int WindowWidth = 1000;
|
|
|
|
int WindowHeight = 1024;
|
|
|
|
int BorderWidth = 0;
|
|
|
|
int WindowClass = InputOutput;
|
|
|
|
int WindowDepth = VisualInfo->depth;
|
|
|
|
|
|
Visual* WindowVisual = VisualInfo->visual;
|
|
|
|
int AttributeValueMask = CWBackPixel | CWEventMask | CWColormap;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
XSetWindowAttributes WindowAttributes = {};
|
|
|
|
WindowAttributes.colormap = XCreateColormap( this->mainDisplay, this->RootWindow, VisualInfo->visual, AllocNone );
|
|
|
|
|
|
|
|
WindowAttributes.background_pixel = 0;
|
|
|
|
|
|
WindowAttributes.event_mask = StructureNotifyMask | KeyPressMask | KeyReleaseMask | PointerMotionMask;
|
|
|
|
this->mainWindow = XCreateWindow( this->mainDisplay, this->RootWindow,
|
|
WindowX, WindowY, WindowWidth, WindowHeight,
|
|
BorderWidth, WindowDepth, WindowClass, WindowVisual,
|
|
AttributeValueMask, &WindowAttributes);
|
|
|
|
|
|
|
|
|
|
XMoveWindow( this->mainDisplay, this->mainWindow, -400, 0 );
|
|
|
|
XStoreName( this->mainDisplay, this->mainWindow, "Opengl: Fixed function pipeline" );
|
|
|
|
glXMakeCurrent( this->mainDisplay, this->mainWindow, OpenGLContext );
|
|
|
|
XMapWindow( this->mainDisplay, this->mainWindow );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Atom WM_DELETE_WINDOW = XInternAtom( this->mainDisplay, "WM_DELETE_WINDOW", False );
|
|
|
|
|
|
if( !XSetWMProtocols( this->mainDisplay, this->mainWindow, &WM_DELETE_WINDOW, 1) ) {
|
|
|
|
printf( "Couldn't register WM_DELETE_WINDOW\n" );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
windowManager windowManager_new() {
|
|
|
|
windowManager instance;
|
|
|
|
return instance;
|
|
|
|
}
|
|
|
|
windowManager * windowManager_newPointer() {
|
|
|
|
struct windowManager * pointer = malloc( sizeof ( struct windowManager ) );
|
|
|
|
return pointer;
|
|
|
|
}
|
|
|