summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/inc/opengl/win/WinDeviceInfo.hxx1
-rw-r--r--vcl/opengl/win/backlist.xml1
-rw-r--r--vcl/opengl/win/blocklist_parser.cxx18
3 files changed, 15 insertions, 5 deletions
diff --git a/vcl/inc/opengl/win/WinDeviceInfo.hxx b/vcl/inc/opengl/win/WinDeviceInfo.hxx
index 801329ae7073..37779a56e83c 100644
--- a/vcl/inc/opengl/win/WinDeviceInfo.hxx
+++ b/vcl/inc/opengl/win/WinDeviceInfo.hxx
@@ -98,6 +98,7 @@ struct DriverInfo
static DeviceFamilyVector* const allDevices;
DeviceFamilyVector* mpDevices;
+ std::vector<OUString> maDevices;
// Whether the mDevices array should be deleted when this structure is
// deallocated. False by default.
diff --git a/vcl/opengl/win/backlist.xml b/vcl/opengl/win/backlist.xml
index 31ca327cfbc5..6ff92d049e54 100644
--- a/vcl/opengl/win/backlist.xml
+++ b/vcl/opengl/win/backlist.xml
@@ -1,6 +1,7 @@
<root>
<whitelist>
<entry os="7" vendor="intel" compare="equal" version="10.18.10.3412">
+ <device id="all"/>
<msg>Moggi's Windows OpenGL driver</msg>
</entry>
</whitelist>
diff --git a/vcl/opengl/win/blocklist_parser.cxx b/vcl/opengl/win/blocklist_parser.cxx
index 4c0700a2fd74..83bf490f4d95 100644
--- a/vcl/opengl/win/blocklist_parser.cxx
+++ b/vcl/opengl/win/blocklist_parser.cxx
@@ -147,11 +147,6 @@ void WinBlocklistParser::handleDevice(wgl::DriverInfo& rDriver, xmlreader::XmlRe
OUString aVendor = OStringToOUString(sVendor, RTL_TEXTENCODING_UTF8);
rDriver.maAdapterVendor = aVendor;
}
- else if (name.equals("device"))
- {
- name = rReader.getAttributeValue(false);
- OString sDevice(name.begin, name.length);
- }
else if (name.equals("compare"))
{
name = rReader.getAttributeValue(false);
@@ -176,6 +171,10 @@ void WinBlocklistParser::handleDevice(wgl::DriverInfo& rDriver, xmlreader::XmlRe
OString sMaxVersion(name.begin, name.length);
rDriver.mnDriverVersionMax = getVersion(sMaxVersion);
}
+ else
+ {
+ SAL_WARN("vcl.opengl.win", "unsupported attribute");
+ }
}
int nLevel = 1;
@@ -198,6 +197,15 @@ void WinBlocklistParser::handleDevice(wgl::DriverInfo& rDriver, xmlreader::XmlRe
{
bInMsg = true;
}
+ else if (name.equals("device"))
+ {
+ bool bSuccess = rReader.nextAttribute(&nsId, &name);
+ if (!bSuccess || !name.equals("id"))
+ throw InvalidFileException();
+
+ OString aDeviceId(name.begin, name.length);
+ rDriver.maDevices.push_back(OStringToOUString(aDeviceId, RTL_TEXTENCODING_UTF8));
+ }
else
throw InvalidFileException();
}