EGLSurface surface;
EGLint api;
- EglDrawable(const Visual *vis, int w, int h) :
- Drawable(vis, w, h), api(EGL_OPENGL_ES_API)
+ EglDrawable(const Visual *vis, int w, int h, bool pbuffer) :
+ Drawable(vis, w, h, pbuffer),
+ api(EGL_OPENGL_ES_API)
{
XVisualInfo *visinfo = static_cast<const EglVisual *>(visual)->visinfo;
}
Drawable *
-createDrawable(const Visual *visual, int width, int height)
+createDrawable(const Visual *visual, int width, int height, bool pbuffer)
{
- return new EglDrawable(visual, width, height);
+ return new EglDrawable(visual, width, height, pbuffer);
}
Context *
return true;
}
+void
+createWindow(Drawable *drawable, const Visual *_visual)
+{
+ EglDrawable *eglDrawable = static_cast<EglDrawable *>(drawable);
+ const EglVisual *visual = static_cast<const EglVisual *>(_visual);
+
+ eglDrawable->surface = eglCreateWindowSurface(display, visual->config,
+ eglDrawable->window, NULL);
+}
+
+void
+destroyWindow(Drawable *drawable)
+{
+ EglDrawable *eglDrawable = static_cast<EglDrawable *>(drawable);
+
+ eglDestroySurface(display, eglDrawable->surface);
+}
+
+Pixmap
+createPixmap(unsigned width, unsigned height, unsigned depth)
+{
+ return XCreatePixmap(display, DefaultRootWindow(display),
+ width, height, depth);
+}
+
} /* namespace glws */