revert changes to CreateWindow function
This commit is contained in:
parent
a67814cc89
commit
47c3ee8576
105
dlib/platform.d
105
dlib/platform.d
@ -641,12 +641,7 @@ WindowError()
|
|||||||
enum i32 GL_CORE_PROFILE = 0x00000001;
|
enum i32 GL_CORE_PROFILE = 0x00000001;
|
||||||
|
|
||||||
bool
|
bool
|
||||||
CreateWindow(
|
CreateWindow(PlatformWindow* window, string name, u32 width, u32 height)
|
||||||
bool create_gl_context = false,
|
|
||||||
i32 gl_major_version = 4,
|
|
||||||
i32 gl_minor_version = 6,
|
|
||||||
i32 gl_profile = GL_CORE_PROFILE
|
|
||||||
)(PlatformWindow* window, string name, u32 width, u32 height)
|
|
||||||
{
|
{
|
||||||
PlatformWindow wnd = {
|
PlatformWindow wnd = {
|
||||||
w: width,
|
w: width,
|
||||||
@ -691,68 +686,6 @@ CreateWindow(
|
|||||||
StructureNotifyMask |
|
StructureNotifyMask |
|
||||||
PropertyChangeMask;
|
PropertyChangeMask;
|
||||||
|
|
||||||
static if(create_gl_context)
|
|
||||||
{
|
|
||||||
import opengl;
|
|
||||||
const i32[] visual_attributes = [
|
|
||||||
GLX_X_RENDERABLE, true,
|
|
||||||
GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
|
|
||||||
GLX_RENDER_TYPE, GLX_RGBA_BIT,
|
|
||||||
GLX_X_VISUAL_TYPE, GLX_TRUE_COLOR,
|
|
||||||
GLX_RED_SIZE, 8,
|
|
||||||
GLX_GREEN_SIZE, 8,
|
|
||||||
GLX_BLUE_SIZE, 8,
|
|
||||||
GLX_ALPHA_SIZE, 8,
|
|
||||||
GLX_DEPTH_SIZE, 24,
|
|
||||||
GLX_STENCIL_SIZE, 8,
|
|
||||||
GLX_DOUBLEBUFFER, true,
|
|
||||||
None,
|
|
||||||
];
|
|
||||||
|
|
||||||
i32 fb_count;
|
|
||||||
GLXFBConfig* fb_config = glXChooseFBConfig(window.display, window.screen_id, visual_attributes.ptr, &fb_count);
|
|
||||||
|
|
||||||
if(fb_config == null || fb_count == 0)
|
|
||||||
{
|
|
||||||
Errf("Failed to retrieve GL framebuffer config");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
GLXFBConfig chosen_fb_config = fb_config[0];
|
|
||||||
XFree(fb_config);
|
|
||||||
|
|
||||||
XVisualInfo* visual_info = glXGetVisualFromFBConfig(window.display, chosen_fb_config);
|
|
||||||
if(visual_info == null)
|
|
||||||
{
|
|
||||||
Errf("Failed to get GL visual");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
XSetWindowAttributes set_window_attrs = {
|
|
||||||
colormap: XCreateColormap(window.display, RootWindow(window.display, visual_info.screen), visual_info.visual, AllocNone),
|
|
||||||
border_pixel: 0,
|
|
||||||
event_mask: event_mask,
|
|
||||||
};
|
|
||||||
|
|
||||||
window.window = XCreateWindow(
|
|
||||||
window.display,
|
|
||||||
window.root_window,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
0,
|
|
||||||
visual_info.depth,
|
|
||||||
InputOutput,
|
|
||||||
visual_info.visual,
|
|
||||||
value_mask | CWColormap,
|
|
||||||
&set_window_attrs
|
|
||||||
);
|
|
||||||
|
|
||||||
XFree(visual_info);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
window.window = XCreateSimpleWindow(
|
window.window = XCreateSimpleWindow(
|
||||||
window.display,
|
window.display,
|
||||||
window.root_window,
|
window.root_window,
|
||||||
@ -764,7 +697,6 @@ CreateWindow(
|
|||||||
XBlackPixel(window.display, window.screen_id),
|
XBlackPixel(window.display, window.screen_id),
|
||||||
XBlackPixel(window.display, window.screen_id)
|
XBlackPixel(window.display, window.screen_id)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if(window.window == None)
|
if(window.window == None)
|
||||||
{
|
{
|
||||||
@ -815,41 +747,6 @@ CreateWindow(
|
|||||||
|
|
||||||
XFlush(window.display);
|
XFlush(window.display);
|
||||||
|
|
||||||
static if(create_gl_context)
|
|
||||||
{
|
|
||||||
import opengl;
|
|
||||||
|
|
||||||
glXCreateContextAttribsARB = cast(typeof(glXCreateContextAttribsARB))glXGetProcAddressARB(cast(u8*)r"glXCreateContexAttribsARB");
|
|
||||||
if(!glXCreateContextAttribsARB)
|
|
||||||
{
|
|
||||||
Errf("glXCreateContextAttribsARB function not found");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum GLX_CONTEXT_MAJOR_VERSION = 0x2091;
|
|
||||||
enum GLX_CONTEXT_MINOR_VERSION = 0x2092;
|
|
||||||
enum GLX_CONTEXT_PROFILE_MASK_ARB = 0x9126;
|
|
||||||
|
|
||||||
const(i32[]) context_attributes = [
|
|
||||||
GLX_CONTEXT_MAJOR_VERSION, gl_major_version,
|
|
||||||
GLX_CONTEXT_MINOR_VERSION, gl_minor_version,
|
|
||||||
GLX_CONTEXT_PROFILE_MASK_ARB, gl_profile,
|
|
||||||
None,
|
|
||||||
];
|
|
||||||
|
|
||||||
window.glx_context = glXCreateContextAttribsARB(window.display, chosen_fb_config, null, True, context_attributes.ptr);
|
|
||||||
|
|
||||||
if(!window.glx_context)
|
|
||||||
{
|
|
||||||
Errf("Failed to create OpenGL context");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
glXMakeCurrent(window.display, window.window, window.glx_context);
|
|
||||||
|
|
||||||
GLLoadFuncs();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user