Skip to content

Commit 8867f1a

Browse files
cqundefinegmta
authored andcommitted
LibWeb: Correctly report available WebGL extensions
The correct behaviour is to get values of both GL_EXTENSIONS and GL_REQUESTABLE_EXTENSIONS_ANGLE.
1 parent 57ef949 commit 8867f1a

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

Libraries/LibWeb/WebGL/OpenGLContext.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,9 +545,13 @@ Vector<String> OpenGLContext::get_supported_extensions()
545545

546546
make_current();
547547

548+
auto const* extensions_string = reinterpret_cast<char const*>(glGetString(GL_EXTENSIONS));
549+
StringView extensions_view(extensions_string, strlen(extensions_string));
550+
auto extensions_list = extensions_view.split_view(' ');
551+
548552
auto const* requestable_extensions_string = reinterpret_cast<char const*>(glGetString(GL_REQUESTABLE_EXTENSIONS_ANGLE));
549553
StringView requestable_extensions_view(requestable_extensions_string, strlen(requestable_extensions_string));
550-
auto requestable_extensions = requestable_extensions_view.split_view(' ');
554+
extensions_list.extend(requestable_extensions_view.split_view(' '));
551555

552556
Vector<String> extensions;
553557
for (auto const& available_extension : s_available_webgl_extensions) {
@@ -556,11 +560,11 @@ Vector<String> OpenGLContext::get_supported_extensions()
556560

557561
if (supported) {
558562
for (auto const& required_extension : available_extension.required_angle_extensions) {
559-
auto maybe_required_extension = requestable_extensions.find_if([&](StringView requestable_extension) {
563+
auto maybe_required_extension = extensions_list.find_if([&](StringView requestable_extension) {
560564
return required_extension == requestable_extension;
561565
});
562566

563-
if (maybe_required_extension == requestable_extensions.end()) {
567+
if (maybe_required_extension == extensions_list.end()) {
564568
supported = false;
565569
break;
566570
}

0 commit comments

Comments
 (0)