Commit 308078b0 by Jamie Madill Committed by Commit Bot

Tests: Add getProcAddress method to GLWindowBase.

This will allow the Trace tests to load a custom GL after the GL window has already loaded the default entry points. Bug: angleproject:4845 Change-Id: Ic1b65b6cf1a582ea7c2f58a9f76077760e5cf0d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315626Reviewed-by: 's avatarManh Nguyen <nguyenmh@google.com> Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent dcdd6b6a
...@@ -660,6 +660,11 @@ bool EGLWindow::hasError() const ...@@ -660,6 +660,11 @@ bool EGLWindow::hasError() const
return eglGetError() != EGL_SUCCESS; return eglGetError() != EGL_SUCCESS;
} }
angle::GenericProc EGLWindow::getProcAddress(const char *name)
{
return eglGetProcAddress(name);
}
// static // static
void GLWindowBase::Delete(GLWindowBase **window) void GLWindowBase::Delete(GLWindowBase **window)
{ {
......
...@@ -24,6 +24,7 @@ namespace angle ...@@ -24,6 +24,7 @@ namespace angle
{ {
class Library; class Library;
struct PlatformMethods; struct PlatformMethods;
using GenericProc = void (*)();
} // namespace angle } // namespace angle
struct ANGLE_UTIL_EXPORT ConfigParameters struct ANGLE_UTIL_EXPORT ConfigParameters
...@@ -78,6 +79,7 @@ class ANGLE_UTIL_EXPORT GLWindowBase : angle::NonCopyable ...@@ -78,6 +79,7 @@ class ANGLE_UTIL_EXPORT GLWindowBase : angle::NonCopyable
virtual bool makeCurrent() = 0; virtual bool makeCurrent() = 0;
virtual bool hasError() const = 0; virtual bool hasError() const = 0;
virtual bool setSwapInterval(EGLint swapInterval) = 0; virtual bool setSwapInterval(EGLint swapInterval) = 0;
virtual angle::GenericProc getProcAddress(const char *name) = 0;
bool isMultisample() const { return mConfigParams.multisample; } bool isMultisample() const { return mConfigParams.multisample; }
bool isDebugEnabled() const { return mConfigParams.debug; } bool isDebugEnabled() const { return mConfigParams.debug; }
...@@ -123,6 +125,7 @@ class ANGLE_UTIL_EXPORT EGLWindow : public GLWindowBase ...@@ -123,6 +125,7 @@ class ANGLE_UTIL_EXPORT EGLWindow : public GLWindowBase
bool makeCurrent() override; bool makeCurrent() override;
bool hasError() const override; bool hasError() const override;
bool setSwapInterval(EGLint swapInterval) override; bool setSwapInterval(EGLint swapInterval) override;
angle::GenericProc getProcAddress(const char *name) override;
// Only initializes the Display. // Only initializes the Display.
bool initializeDisplay(OSWindow *osWindow, bool initializeDisplay(OSWindow *osWindow,
......
...@@ -240,6 +240,11 @@ bool WGLWindow::hasError() const ...@@ -240,6 +240,11 @@ bool WGLWindow::hasError() const
return GetLastError() != S_OK; return GetLastError() != S_OK;
} }
angle::GenericProc WGLWindow::getProcAddress(const char *name)
{
return GetProcAddressWithFallback(name);
}
// static // static
WGLWindow *WGLWindow::New(int glesMajorVersion, int glesMinorVersion) WGLWindow *WGLWindow::New(int glesMajorVersion, int glesMinorVersion)
{ {
......
...@@ -40,6 +40,7 @@ class ANGLE_UTIL_EXPORT WGLWindow : public GLWindowBase ...@@ -40,6 +40,7 @@ class ANGLE_UTIL_EXPORT WGLWindow : public GLWindowBase
void swap() override; void swap() override;
bool hasError() const override; bool hasError() const override;
bool setSwapInterval(EGLint swapInterval) override; bool setSwapInterval(EGLint swapInterval) override;
angle::GenericProc getProcAddress(const char *name) override;
private: private:
WGLWindow(int glesMajorVersion, int glesMinorVersion); WGLWindow(int glesMajorVersion, int glesMinorVersion);
......
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