diff options
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h | 60 |
1 files changed, 19 insertions, 41 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h b/src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h index 9e38f63370..b1c49d9bc8 100644 --- a/src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h +++ b/src/3rdparty/angle/src/libANGLE/renderer/DisplayImpl.h @@ -13,7 +13,9 @@ #include "libANGLE/Caps.h" #include "libANGLE/Config.h" #include "libANGLE/Error.h" -#include "libANGLE/renderer/Renderer.h" +#include "libANGLE/renderer/EGLImplFactory.h" +#include "libANGLE/Stream.h" +#include "libANGLE/Version.h" #include <set> #include <vector> @@ -22,9 +24,11 @@ namespace egl { class AttributeMap; class Display; +struct DisplayState; struct Config; class Surface; class ImageSibling; +class Thread; } namespace gl @@ -38,69 +42,43 @@ class SurfaceImpl; class ImageImpl; struct ConfigDesc; class DeviceImpl; +class StreamProducerImpl; -class DisplayImpl : angle::NonCopyable +class DisplayImpl : public EGLImplFactory { public: - DisplayImpl(); - virtual ~DisplayImpl(); + DisplayImpl(const egl::DisplayState &state); + ~DisplayImpl() override; virtual egl::Error initialize(egl::Display *display) = 0; virtual void terminate() = 0; - virtual SurfaceImpl *createWindowSurface(const egl::Config *configuration, - EGLNativeWindowType window, - const egl::AttributeMap &attribs) = 0; - virtual SurfaceImpl *createPbufferSurface(const egl::Config *configuration, - const egl::AttributeMap &attribs) = 0; - virtual SurfaceImpl *createPbufferFromClientBuffer(const egl::Config *configuration, - EGLClientBuffer shareHandle, - const egl::AttributeMap &attribs) = 0; - virtual SurfaceImpl *createPixmapSurface(const egl::Config *configuration, - NativePixmapType nativePixmap, - const egl::AttributeMap &attribs) = 0; - - virtual ImageImpl *createImage(EGLenum target, - egl::ImageSibling *buffer, - const egl::AttributeMap &attribs) = 0; - - virtual gl::Context *createContext(const egl::Config *config, - const gl::Context *shareContext, - const egl::AttributeMap &attribs) = 0; - virtual egl::Error makeCurrent(egl::Surface *drawSurface, egl::Surface *readSurface, gl::Context *context) = 0; - virtual egl::ConfigSet generateConfigs() const = 0; + virtual egl::ConfigSet generateConfigs() = 0; - virtual bool isDeviceLost() const = 0; virtual bool testDeviceLost() = 0; - virtual egl::Error restoreLostDevice() = 0; + virtual egl::Error restoreLostDevice(const egl::Display *display) = 0; virtual bool isValidNativeWindow(EGLNativeWindowType window) const = 0; + virtual egl::Error validateClientBuffer(const egl::Config *configuration, + EGLenum buftype, + EGLClientBuffer clientBuffer, + const egl::AttributeMap &attribs) const; virtual std::string getVendorString() const = 0; virtual egl::Error getDevice(DeviceImpl **device) = 0; - virtual egl::Error waitClient() const = 0; - virtual egl::Error waitNative(EGLint engine, - egl::Surface *drawSurface, - egl::Surface *readSurface) const = 0; - + virtual egl::Error waitClient(const gl::Context *context) const = 0; + virtual egl::Error waitNative(const gl::Context *context, EGLint engine) const = 0; + virtual gl::Version getMaxSupportedESVersion() const = 0; const egl::Caps &getCaps() const; - typedef std::set<egl::Surface*> SurfaceSet; - const SurfaceSet &getSurfaceSet() const { return mSurfaceSet; } - SurfaceSet &getSurfaceSet() { return mSurfaceSet; } - - void destroySurface(egl::Surface *surface); - const egl::DisplayExtensions &getExtensions() const; protected: - // Place the surface set here so it can be accessible for handling - // context loss events. (It is shared between the Display and Impl.) - SurfaceSet mSurfaceSet; + const egl::DisplayState &mState; private: virtual void generateExtensions(egl::DisplayExtensions *outExtensions) const = 0; |