Commit 2cb66715 by Geoff Lang Committed by Commit Bot

EGL: Merge DisplayAndroid into DisplayEGL.

These two classes have a lot of duplicated code for no reason. Bug: angleproject:5563 Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarPeng Huang <penghuang@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
parent 82337b00
...@@ -42,6 +42,15 @@ ImageImpl *DisplayGL::createImage(const egl::ImageState &state, ...@@ -42,6 +42,15 @@ ImageImpl *DisplayGL::createImage(const egl::ImageState &state,
return nullptr; return nullptr;
} }
SurfaceImpl *DisplayGL::createPbufferFromClientBuffer(const egl::SurfaceState &state,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs)
{
UNIMPLEMENTED();
return nullptr;
}
StreamProducerImpl *DisplayGL::createStreamProducerD3DTexture( StreamProducerImpl *DisplayGL::createStreamProducerD3DTexture(
egl::Stream::ConsumerType consumerType, egl::Stream::ConsumerType consumerType,
const egl::AttributeMap &attribs) const egl::AttributeMap &attribs)
......
...@@ -38,6 +38,11 @@ class DisplayGL : public DisplayImpl ...@@ -38,6 +38,11 @@ class DisplayGL : public DisplayImpl
EGLenum target, EGLenum target,
const egl::AttributeMap &attribs) override; const egl::AttributeMap &attribs) override;
SurfaceImpl *createPbufferFromClientBuffer(const egl::SurfaceState &state,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) override;
StreamProducerImpl *createStreamProducerD3DTexture(egl::Stream::ConsumerType consumerType, StreamProducerImpl *createStreamProducerD3DTexture(egl::Stream::ConsumerType consumerType,
const egl::AttributeMap &attribs) override; const egl::AttributeMap &attribs) override;
......
...@@ -73,6 +73,10 @@ class DisplayEGL : public DisplayGL ...@@ -73,6 +73,10 @@ class DisplayEGL : public DisplayGL
egl::Error restoreLostDevice(const egl::Display *display) override; egl::Error restoreLostDevice(const egl::Display *display) override;
bool isValidNativeWindow(EGLNativeWindowType window) const override; bool isValidNativeWindow(EGLNativeWindowType window) const override;
egl::Error validateClientBuffer(const egl::Config *configuration,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) const override;
egl::Error waitClient(const gl::Context *context) override; egl::Error waitClient(const gl::Context *context) override;
egl::Error waitNative(const gl::Context *context, EGLint engine) override; egl::Error waitNative(const gl::Context *context, EGLint engine) override;
...@@ -100,7 +104,9 @@ class DisplayEGL : public DisplayGL ...@@ -100,7 +104,9 @@ class DisplayEGL : public DisplayGL
EGLClientBuffer buffer, EGLClientBuffer buffer,
const egl::AttributeMap &attribs) override; const egl::AttributeMap &attribs) override;
protected: private:
const char *getEGLPath() const;
egl::Error initializeContext(EGLContext shareContext, egl::Error initializeContext(EGLContext shareContext,
const egl::AttributeMap &eglAttributes, const egl::AttributeMap &eglAttributes,
EGLContext *outContext, EGLContext *outContext,
...@@ -108,7 +114,10 @@ class DisplayEGL : public DisplayGL ...@@ -108,7 +114,10 @@ class DisplayEGL : public DisplayGL
void generateExtensions(egl::DisplayExtensions *outExtensions) const override; void generateExtensions(egl::DisplayExtensions *outExtensions) const override;
egl::Error createRenderer(EGLContext shareContext, std::shared_ptr<RendererEGL> *outRenderer); egl::Error createRenderer(EGLContext shareContext,
bool makeNewContextCurrent,
bool isExternalContext,
std::shared_ptr<RendererEGL> *outRenderer);
egl::Error makeCurrentSurfaceless(gl::Context *context) override; egl::Error makeCurrentSurfaceless(gl::Context *context) override;
...@@ -123,8 +132,8 @@ class DisplayEGL : public DisplayGL ...@@ -123,8 +132,8 @@ class DisplayEGL : public DisplayGL
const U &defaultValue) const; const U &defaultValue) const;
std::shared_ptr<RendererEGL> mRenderer; std::shared_ptr<RendererEGL> mRenderer;
FunctionsEGLDL *mEGL; FunctionsEGLDL *mEGL = nullptr;
EGLConfig mConfig; EGLConfig mConfig = EGL_NO_CONFIG_KHR;
egl::AttributeMap mDisplayAttributes; egl::AttributeMap mDisplayAttributes;
std::vector<EGLint> mConfigAttribList; std::vector<EGLint> mConfigAttribList;
...@@ -143,8 +152,14 @@ class DisplayEGL : public DisplayGL ...@@ -143,8 +152,14 @@ class DisplayEGL : public DisplayGL
std::map<EGLint, EGLint> mConfigIds; std::map<EGLint, EGLint> mConfigIds;
bool mHasEXTCreateContextRobustness; bool mHasEXTCreateContextRobustness = false;
bool mHasNVRobustnessVideoMemoryPurge; bool mHasNVRobustnessVideoMemoryPurge = false;
bool mVirtualizedContexts = false;
bool mSupportsSurfaceless = false;
EGLSurface mMockPbuffer = EGL_NO_SURFACE;
}; };
} // namespace rx } // namespace rx
......
...@@ -26,23 +26,8 @@ class DisplayAndroid : public DisplayEGL ...@@ -26,23 +26,8 @@ class DisplayAndroid : public DisplayEGL
DisplayAndroid(const egl::DisplayState &state); DisplayAndroid(const egl::DisplayState &state);
~DisplayAndroid() override; ~DisplayAndroid() override;
egl::Error initialize(egl::Display *display) override;
void terminate() override;
ContextImpl *createContext(const gl::State &state,
gl::ErrorSet *errorSet,
const egl::Config *configuration,
const gl::Context *shareContext,
const egl::AttributeMap &attribs) override;
SurfaceImpl *createPbufferFromClientBuffer(const egl::SurfaceState &state,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) override;
bool isValidNativeWindow(EGLNativeWindowType window) const override; bool isValidNativeWindow(EGLNativeWindowType window) const override;
egl::Error validateClientBuffer(const egl::Config *configuration,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) const override;
egl::Error validateImageClientBuffer(const gl::Context *context, egl::Error validateImageClientBuffer(const gl::Context *context,
EGLenum target, EGLenum target,
EGLClientBuffer clientBuffer, EGLClientBuffer clientBuffer,
...@@ -52,31 +37,6 @@ class DisplayAndroid : public DisplayEGL ...@@ -52,31 +37,6 @@ class DisplayAndroid : public DisplayEGL
EGLenum target, EGLenum target,
EGLClientBuffer buffer, EGLClientBuffer buffer,
const egl::AttributeMap &attribs) override; const egl::AttributeMap &attribs) override;
egl::Error makeCurrent(egl::Display *display,
egl::Surface *drawSurface,
egl::Surface *readSurface,
gl::Context *context) override;
void destroyNativeContext(EGLContext context) override;
WorkerContext *createWorkerContext(std::string *infoLog,
EGLContext sharedContext,
const native_egl::AttributeVector workerAttribs) override;
private:
void generateExtensions(egl::DisplayExtensions *outExtensions) const override;
egl::Error createRenderer(EGLContext shareContext,
bool makeNewContextCurrent,
bool isExternalContext,
std::shared_ptr<RendererEGL> *outRenderer);
bool mVirtualizedContexts;
bool mSupportsSurfaceless;
EGLSurface mMockPbuffer;
}; };
} // namespace rx } // namespace rx
......
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