LibreOffice Module vcl (master)  1
Classes | Enumerations | Functions | Variables
DriverBlocklist Namespace Reference

Classes

struct  DriverInfo
 
struct  InvalidFileException
 
class  Parser
 

Enumerations

enum  VersionType {
  VersionType::OpenGL,
  VersionType::Vulkan
}
 
enum  DeviceVendor {
  VendorAll,
  VendorIntel,
  VendorNVIDIA,
  VendorAMD,
  VendorMicrosoft
}
 
enum  OperatingSystem {
  DRIVER_OS_UNKNOWN = 0,
  DRIVER_OS_WINDOWS_FIRST,
  DRIVER_OS_WINDOWS_7 = DRIVER_OS_WINDOWS_FIRST,
  DRIVER_OS_WINDOWS_8,
  DRIVER_OS_WINDOWS_8_1,
  DRIVER_OS_WINDOWS_10,
  DRIVER_OS_WINDOWS_LAST = DRIVER_OS_WINDOWS_10,
  DRIVER_OS_WINDOWS_ALL,
  DRIVER_OS_LINUX,
  DRIVER_OS_OSX_FIRST,
  DRIVER_OS_OSX_10_5 = DRIVER_OS_OSX_FIRST,
  DRIVER_OS_OSX_10_6,
  DRIVER_OS_OSX_10_7,
  DRIVER_OS_OSX_10_8,
  DRIVER_OS_OSX_LAST = DRIVER_OS_OSX_10_8,
  DRIVER_OS_OSX_ALL,
  DRIVER_OS_ANDROID,
  DRIVER_OS_ALL
}
 
enum  VersionComparisonOp {
  DRIVER_LESS_THAN,
  DRIVER_LESS_THAN_OR_EQUAL,
  DRIVER_GREATER_THAN,
  DRIVER_GREATER_THAN_OR_EQUAL,
  DRIVER_EQUAL,
  DRIVER_NOT_EQUAL,
  DRIVER_BETWEEN_EXCLUSIVE,
  DRIVER_BETWEEN_INCLUSIVE,
  DRIVER_BETWEEN_INCLUSIVE_START,
  DRIVER_COMPARISON_IGNORED
}
 

Functions

static OperatingSystem getOperatingSystem (std::string_view rString)
 
static VersionComparisonOp getComparison (std::string_view rString)
 
static OUString GetVendorId (std::string_view rString)
 
OUString GetVendorId (DeviceVendor id)
 
DeviceVendor GetVendorFromId (uint32_t id)
 Returns vendor for the given vendor ID, or VendorAll if not known. More...
 
std::string_view GetVendorNameFromId (uint32_t id)
 
static void PadDriverDecimal (char *aString)
 
static bool SplitDriverVersion (const char *aSource, char *aAStr, char *aBStr, char *aCStr, char *aDStr, VersionType versionType)
 
static bool ParseDriverVersion (std::u16string_view aVersion, uint64_t &rNumericVersion, VersionType versionType)
 
static OperatingSystem getOperatingSystem ()
 
bool FindBlocklistedDeviceInList (std::vector< DriverInfo > &aDeviceInfos, VersionType versionType, std::u16string_view sDriverVersion, std::u16string_view sAdapterVendorID, OUString const &sAdapterDeviceID, OperatingSystem system, const OUString &blocklistURL)
 
bool IsDeviceBlocked (const OUString &blocklistURL, VersionType versionType, std::u16string_view driverVersion, std::u16string_view vendorId, const OUString &deviceId)
 
uint64_t OpenGLVersion (uint32_t a, uint32_t b, uint32_t c, uint32_t d)
 

Variables

const uint64_t allDriverVersions = ~(uint64_t(0))
 
const int DeviceVendorMax = VendorMicrosoft + 1
 

Enumeration Type Documentation

Enumerator
VendorAll 
VendorIntel 
VendorNVIDIA 
VendorAMD 
VendorMicrosoft 

Definition at line 36 of file driverblocklist.hxx.

Enumerator
DRIVER_OS_UNKNOWN 
DRIVER_OS_WINDOWS_FIRST 
DRIVER_OS_WINDOWS_7 
DRIVER_OS_WINDOWS_8 
DRIVER_OS_WINDOWS_8_1 
DRIVER_OS_WINDOWS_10 
DRIVER_OS_WINDOWS_LAST 
DRIVER_OS_WINDOWS_ALL 
DRIVER_OS_LINUX 
DRIVER_OS_OSX_FIRST 
DRIVER_OS_OSX_10_5 
DRIVER_OS_OSX_10_6 
DRIVER_OS_OSX_10_7 
DRIVER_OS_OSX_10_8 
DRIVER_OS_OSX_LAST 
DRIVER_OS_OSX_ALL 
DRIVER_OS_ANDROID 
DRIVER_OS_ALL 

Definition at line 57 of file driverblocklist.hxx.

Enumerator
DRIVER_LESS_THAN 
DRIVER_LESS_THAN_OR_EQUAL 
DRIVER_GREATER_THAN 
DRIVER_GREATER_THAN_OR_EQUAL 
DRIVER_EQUAL 
DRIVER_NOT_EQUAL 
DRIVER_BETWEEN_EXCLUSIVE 
DRIVER_BETWEEN_INCLUSIVE 
DRIVER_BETWEEN_INCLUSIVE_START 
DRIVER_COMPARISON_IGNORED 

Definition at line 79 of file driverblocklist.hxx.

Enumerator
OpenGL 
Vulkan 

Definition at line 22 of file driverblocklist.hxx.

Function Documentation

bool VCL_DLLPUBLIC DriverBlocklist::FindBlocklistedDeviceInList ( std::vector< DriverInfo > &  aDeviceInfos,
VersionType  versionType,
std::u16string_view  sDriverVersion,
std::u16string_view  sAdapterVendorID,
OUString const &  sAdapterDeviceID,
OperatingSystem  system,
const OUString &  blocklistURL 
)
static VersionComparisonOp DriverBlocklist::getComparison ( std::string_view  rString)
static
static OperatingSystem DriverBlocklist::getOperatingSystem ( std::string_view  rString)
static
static OperatingSystem DriverBlocklist::getOperatingSystem ( )
static
VCL_DLLPUBLIC DeviceVendor DriverBlocklist::GetVendorFromId ( uint32_t  id)

Returns vendor for the given vendor ID, or VendorAll if not known.

Definition at line 148 of file driverblocklist.cxx.

References VendorAll, VendorAMD, VendorIntel, VendorMicrosoft, and VendorNVIDIA.

Referenced by SkiaHelper::getVendor().

static OUString DriverBlocklist::GetVendorId ( std::string_view  rString)
static
OUString VCL_DLLPUBLIC DriverBlocklist::GetVendorId ( DeviceVendor  id)
VCL_DLLPUBLIC std::string_view DriverBlocklist::GetVendorNameFromId ( uint32_t  id)

Definition at line 165 of file driverblocklist.cxx.

VCL_DLLPUBLIC bool DriverBlocklist::IsDeviceBlocked ( const OUString &  blocklistURL,
VersionType  versionType,
std::u16string_view  driverVersion,
std::u16string_view  vendorId,
const OUString &  deviceId 
)
uint64_t DriverBlocklist::OpenGLVersion ( uint32_t  a,
uint32_t  b,
uint32_t  c,
uint32_t  d 
)
inline

Definition at line 156 of file driverblocklist.hxx.

References GFX_DRIVER_VERSION.

static void DriverBlocklist::PadDriverDecimal ( char *  aString)
static

Definition at line 210 of file driverblocklist.cxx.

References i.

Referenced by ParseDriverVersion().

static bool DriverBlocklist::ParseDriverVersion ( std::u16string_view  aVersion,
uint64_t &  rNumericVersion,
VersionType  versionType 
)
static
static bool DriverBlocklist::SplitDriverVersion ( const char *  aSource,
char *  aAStr,
char *  aBStr,
char *  aCStr,
char *  aDStr,
VersionType  versionType 
)
static

Definition at line 227 of file driverblocklist.cxx.

References i, SAL_N_ELEMENTS, and Vulkan.

Referenced by ParseDriverVersion().

Variable Documentation

const uint64_t DriverBlocklist::allDriverVersions = ~(uint64_t(0))

Definition at line 576 of file driverblocklist.cxx.

const int DriverBlocklist::DeviceVendorMax = VendorMicrosoft + 1

Definition at line 44 of file driverblocklist.hxx.

Referenced by GetVendorId().