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()
glTexture2DImage(false),
glTextureCubemapImage(false),
glTexture3DImage(false),
glRenderbufferImage(false)
glRenderbufferImage(false),
getAllProcAddresses(false)
{
}
......@@ -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_3D_image", glTexture3DImage, &extensionStrings);
InsertExtensionString("EGL_KHR_gl_renderbuffer_image", glRenderbufferImage, &extensionStrings);
InsertExtensionString("EGL_KHR_get_all_proc_addresses", getAllProcAddresses, &extensionStrings);
// clang-format on
return extensionStrings;
......@@ -574,7 +576,8 @@ ClientExtensions::ClientExtensions()
platformBase(false),
platformANGLE(false),
platformANGLED3D(false),
platformANGLEOpenGL(false)
platformANGLEOpenGL(false),
clientGetAllProcAddresses(false)
{
}
......@@ -583,12 +586,13 @@ std::vector<std::string> ClientExtensions::getStrings() const
std::vector<std::string> extensionStrings;
// clang-format off
// | Extension name | Supported flag | Output vector |
InsertExtensionString("EGL_EXT_client_extensions", clientExtensions, &extensionStrings);
InsertExtensionString("EGL_EXT_platform_base", platformBase, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle", platformANGLE, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_d3d", platformANGLED3D, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings);
// | Extension name | Supported flag | Output vector |
InsertExtensionString("EGL_EXT_client_extensions", clientExtensions, &extensionStrings);
InsertExtensionString("EGL_EXT_platform_base", platformBase, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle", platformANGLE, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_d3d", platformANGLED3D, &extensionStrings);
InsertExtensionString("EGL_ANGLE_platform_angle_opengl", platformANGLEOpenGL, &extensionStrings);
InsertExtensionString("EGL_KHR_client_get_all_proc_addresses", clientGetAllProcAddresses, &extensionStrings);
// clang-format on
return extensionStrings;
......
......@@ -412,6 +412,9 @@ struct DisplayExtensions
// EGL_KHR_gl_renderbuffer_image
bool glRenderbufferImage;
// EGL_KHR_get_all_proc_addresses
bool getAllProcAddresses;
};
struct DeviceExtensions
......@@ -446,6 +449,9 @@ struct ClientExtensions
// EGL_ANGLE_platform_angle_opengl
bool platformANGLEOpenGL;
// EGL_KHR_client_get_all_proc_addresses
bool clientGetAllProcAddresses;
};
}
......
......@@ -725,6 +725,8 @@ static ClientExtensions GenerateClientExtensions()
extensions.platformANGLEOpenGL = true;
#endif
extensions.clientGetAllProcAddresses = true;
return extensions;
}
......@@ -753,6 +755,10 @@ const std::string &Display::getClientExtensionString()
void Display::initDisplayExtensions()
{
mDisplayExtensions = mImplementation->getExtensions();
// Force EGL_KHR_get_all_proc_addresses on.
mDisplayExtensions.getAllProcAddresses = true;
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