// Copyright 2014 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #include "Common/GL/GLInterface/EGLX11.h" #include "Common/Logging/Log.h" EGLDisplay cInterfaceEGLX11::OpenDisplay() { dpy = XOpenDisplay(nullptr); XWindow.Initialize(dpy); return eglGetDisplay(dpy); } EGLNativeWindowType cInterfaceEGLX11::InitializePlatform(EGLNativeWindowType host_window, EGLConfig config) { EGLint vid; eglGetConfigAttrib(egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid); XVisualInfo visTemplate; visTemplate.visualid = vid; XVisualInfo* vi; int nVisuals; vi = XGetVisualInfo(dpy, VisualIDMask, &visTemplate, &nVisuals); XWindowAttributes attribs; if (!XGetWindowAttributes(dpy, (Window)host_window, &attribs)) { ERROR_LOG(VIDEO, "Window attribute retrieval failed"); return 0; } s_backbuffer_width = attribs.width; s_backbuffer_height = attribs.height; return (EGLNativeWindowType)XWindow.CreateXWindow((Window)host_window, vi); } void cInterfaceEGLX11::ShutdownPlatform() { XWindow.DestroyXWindow(); XCloseDisplay(dpy); }