Commit 5565936c by Geoff Lang

Implement EGL_KHR_get_all_proc_addresses.

BUG=angleproject:1138 Change-Id: I0dd4e1a092e889cdb9de4773162e5416ac9be65d Reviewed-on: https://chromium-review.googlesource.com/295242Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 53b8aec0
...@@ -523,7 +523,8 @@ DisplayExtensions::DisplayExtensions() ...@@ -523,7 +523,8 @@ DisplayExtensions::DisplayExtensions()
glTexture2DImage(false), glTexture2DImage(false),
glTextureCubemapImage(false), glTextureCubemapImage(false),
glTexture3DImage(false), glTexture3DImage(false),
glRenderbufferImage(false) glRenderbufferImage(false),
getAllProcAddresses(false)
{ {
} }
...@@ -549,6 +550,7 @@ std::vector<std::string> DisplayExtensions::getStrings() const ...@@ -549,6 +550,7 @@ std::vector<std::string> DisplayExtensions::getStrings() const
InsertExtensionString("EGL_KHR_gl_texture_cubemap_image", glTextureCubemapImage, &extensionStrings); InsertExtensionString("EGL_KHR_gl_texture_cubemap_image", glTextureCubemapImage, &extensionStrings);
InsertExtensionString("EGL_KHR_gl_texture_3D_image", glTexture3DImage, &extensionStrings); InsertExtensionString("EGL_KHR_gl_texture_3D_image", glTexture3DImage, &extensionStrings);
InsertExtensionString("EGL_KHR_gl_renderbuffer_image", glRenderbufferImage, &extensionStrings); InsertExtensionString("EGL_KHR_gl_renderbuffer_image", glRenderbufferImage, &extensionStrings);
InsertExtensionString("EGL_KHR_get_all_proc_addresses", getAllProcAddresses, &extensionStrings);
// clang-format on // clang-format on
return extensionStrings; return extensionStrings;
...@@ -574,7 +576,8 @@ ClientExtensions::ClientExtensions() ...@@ -574,7 +576,8 @@ ClientExtensions::ClientExtensions()
platformBase(false), platformBase(false),
platformANGLE(false), platformANGLE(false),
platformANGLED3D(false), platformANGLED3D(false),
platformANGLEOpenGL(false) platformANGLEOpenGL(false),
clientGetAllProcAddresses(false)
{ {
} }
...@@ -583,12 +586,13 @@ std::vector<std::string> ClientExtensions::getStrings() const ...@@ -583,12 +586,13 @@ std::vector<std::string> ClientExtensions::getStrings() const
std::vector<std::string> extensionStrings; std::vector<std::string> extensionStrings;
// clang-format off // clang-format off
// | Extension name | Supported flag | Output vector | // | Extension name | Supported flag | Output vector |
InsertExtensionString("EGL_EXT_client_extensions", clientExtensions, &extensionStrings); InsertExtensionString("EGL_EXT_client_extensions", clientExtensions, &extensionStrings);
InsertExtensionString("EGL_EXT_platform_base", platformBase, &extensionStrings); InsertExtensionString("EGL_EXT_platform_base", platformBase, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle", platformANGLE, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle", platformANGLE, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_d3d", platformANGLED3D, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_d3d", platformANGLED3D, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings); InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings);
InsertExtensionString("EGL_KHR_client_get_all_proc_addresses", clientGetAllProcAddresses, &extensionStrings);
// clang-format on // clang-format on
return extensionStrings; return extensionStrings;
......
...@@ -412,6 +412,9 @@ struct DisplayExtensions ...@@ -412,6 +412,9 @@ struct DisplayExtensions
// EGL_KHR_gl_renderbuffer_image // EGL_KHR_gl_renderbuffer_image
bool glRenderbufferImage; bool glRenderbufferImage;
// EGL_KHR_get_all_proc_addresses
bool getAllProcAddresses;
}; };
struct DeviceExtensions struct DeviceExtensions
...@@ -446,6 +449,9 @@ struct ClientExtensions ...@@ -446,6 +449,9 @@ struct ClientExtensions
// EGL_ANGLE_platform_angle_opengl // EGL_ANGLE_platform_angle_opengl
bool platformANGLEOpenGL; bool platformANGLEOpenGL;
// EGL_KHR_client_get_all_proc_addresses
bool clientGetAllProcAddresses;
}; };
} }
......
...@@ -725,6 +725,8 @@ static ClientExtensions GenerateClientExtensions() ...@@ -725,6 +725,8 @@ static ClientExtensions GenerateClientExtensions()
extensions.platformANGLEOpenGL = true; extensions.platformANGLEOpenGL = true;
#endif #endif
extensions.clientGetAllProcAddresses = true;
return extensions; return extensions;
} }
...@@ -753,6 +755,10 @@ const std::string &Display::getClientExtensionString() ...@@ -753,6 +755,10 @@ const std::string &Display::getClientExtensionString()
void Display::initDisplayExtensions() void Display::initDisplayExtensions()
{ {
mDisplayExtensions = mImplementation->getExtensions(); mDisplayExtensions = mImplementation->getExtensions();
// Force EGL_KHR_get_all_proc_addresses on.
mDisplayExtensions.getAllProcAddresses = true;
mDisplayExtensionString = GenerateExtensionsString(mDisplayExtensions); mDisplayExtensionString = GenerateExtensionsString(mDisplayExtensions);
} }
......
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