Commit 7dcd2c7b by Geoff Lang

Add stubs for EGL pixmap surface creation.

BUG=angleproject:795 Change-Id: I76b44e837eb6919f9d3c1eb56c2d3af84bc5ab09 Reviewed-on: https://chromium-review.googlesource.com/260943Reviewed-by: 's avatarBrandon Jones <bajones@chromium.org> Reviewed-by: 's avatarKenneth Russell <kbr@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 3d5f2687
......@@ -407,6 +407,36 @@ Error Display::createPbufferFromClientBuffer(const Config *configuration, EGLCli
return Error(EGL_SUCCESS);
}
Error Display::createPixmapSurface(const Config *configuration, NativePixmapType nativePixmap, const AttributeMap &attribs,
Surface **outSurface)
{
ASSERT(isInitialized());
if (mImplementation->testDeviceLost())
{
Error error = restoreLostDevice();
if (error.isError())
{
return error;
}
}
rx::SurfaceImpl *surfaceImpl = nullptr;
Error error = mImplementation->createPixmapSurface(configuration, nativePixmap, attribs, &surfaceImpl);
if (error.isError())
{
return error;
}
ASSERT(surfaceImpl != nullptr);
Surface *surface = new Surface(surfaceImpl, EGL_PIXMAP_BIT, configuration, attribs);
mImplementation->getSurfaceSet().insert(surface);
ASSERT(outSurface != nullptr);
*outSurface = surface;
return Error(EGL_SUCCESS);
}
Error Display::createContext(const Config *configuration, gl::Context *shareContext, const AttributeMap &attribs,
gl::Context **outContext)
{
......
......@@ -54,6 +54,8 @@ class Display final
Error createPbufferSurface(const Config *configuration, const AttributeMap &attribs, Surface **outSurface);
Error createPbufferFromClientBuffer(const Config *configuration, EGLClientBuffer shareHandle, const AttributeMap &attribs,
Surface **outSurface);
Error createPixmapSurface(const Config *configuration, NativePixmapType nativePixmap, const AttributeMap &attribs,
Surface **outSurface);
Error createContext(const Config *configuration, gl::Context *shareContext, const AttributeMap &attribs,
gl::Context **outContext);
......
......@@ -51,6 +51,8 @@ class DisplayImpl
SurfaceImpl **outSurface) = 0;
virtual egl::Error createPbufferFromClientBuffer(const egl::Config *configuration, EGLClientBuffer shareHandle,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) = 0;
virtual egl::Error createPixmapSurface(const egl::Config *configuration, NativePixmapType nativePixmap,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) = 0;
virtual egl::Error createContext(const egl::Config *config, const gl::Context *shareContext, const egl::AttributeMap &attribs,
gl::Context **outContext) = 0;
......
......@@ -221,6 +221,16 @@ egl::Error DisplayD3D::createPbufferFromClientBuffer(const egl::Config *configur
return egl::Error(EGL_SUCCESS);
}
egl::Error DisplayD3D::createPixmapSurface(const egl::Config *configuration, NativePixmapType nativePixmap,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface)
{
ASSERT(mRenderer != nullptr);
UNIMPLEMENTED();
*outSurface = nullptr;
return egl::Error(EGL_BAD_DISPLAY);
}
egl::Error DisplayD3D::createContext(const egl::Config *config, const gl::Context *shareContext, const egl::AttributeMap &attribs,
gl::Context **outContext)
{
......
......@@ -29,6 +29,8 @@ class DisplayD3D : public DisplayImpl
SurfaceImpl **outSurface) override;
egl::Error createPbufferFromClientBuffer(const egl::Config *configuration, EGLClientBuffer shareHandle,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) override;
egl::Error createPixmapSurface(const egl::Config *configuration, NativePixmapType nativePixmap,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) override;
egl::Error createContext(const egl::Config *config, const gl::Context *shareContext, const egl::AttributeMap &attribs,
gl::Context **outContext) override;
......
......@@ -364,6 +364,13 @@ egl::Error DisplayWGL::createPbufferFromClientBuffer(const egl::Config *configur
return egl::Error(EGL_BAD_DISPLAY);
}
egl::Error DisplayWGL::createPixmapSurface(const egl::Config *configuration, NativePixmapType nativePixmap,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface)
{
UNIMPLEMENTED();
return egl::Error(EGL_BAD_DISPLAY);
}
egl::Error DisplayWGL::makeCurrent(egl::Surface *drawSurface, egl::Surface *readSurface, gl::Context *context)
{
if (!drawSurface)
......
......@@ -33,6 +33,8 @@ class DisplayWGL : public DisplayGL
SurfaceImpl **outSurface) override;
egl::Error createPbufferFromClientBuffer(const egl::Config *configuration, EGLClientBuffer shareHandle,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) override;
egl::Error createPixmapSurface(const egl::Config *configuration, NativePixmapType nativePixmap,
const egl::AttributeMap &attribs, SurfaceImpl **outSurface) override;
egl::Error makeCurrent(egl::Surface *drawSurface, egl::Surface *readSurface, gl::Context *context) override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment