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

Classes

struct  DriverInfo
 
struct  InvalidFileException
 
class  Parser
 

Enumerations

enum class  VersionType {
  OpenGL ,
  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

◆ DeviceVendor

Enumerator
VendorAll 
VendorIntel 
VendorNVIDIA 
VendorAMD 
VendorMicrosoft 

Definition at line 36 of file driverblocklist.hxx.

◆ OperatingSystem

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.

◆ VersionComparisonOp

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.

◆ VersionType

enum class DriverBlocklist::VersionType
strong
Enumerator
OpenGL 
Vulkan 

Definition at line 22 of file driverblocklist.hxx.

Function Documentation

◆ FindBlocklistedDeviceInList()

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 
)

◆ getComparison()

static VersionComparisonOp DriverBlocklist::getComparison ( std::string_view  rString)
static

◆ getOperatingSystem() [1/2]

static OperatingSystem DriverBlocklist::getOperatingSystem ( )
static

◆ getOperatingSystem() [2/2]

static OperatingSystem DriverBlocklist::getOperatingSystem ( std::string_view  rString)
static

◆ GetVendorFromId()

VCL_DLLPUBLIC DeviceVendor DriverBlocklist::GetVendorFromId ( uint32_t  id)

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

Definition at line 149 of file driverblocklist.cxx.

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

Referenced by SkiaHelper::getVendor().

◆ GetVendorId() [1/2]

OUString VCL_DLLPUBLIC DriverBlocklist::GetVendorId ( DeviceVendor  id)

◆ GetVendorId() [2/2]

static OUString DriverBlocklist::GetVendorId ( std::string_view  rString)
static

◆ GetVendorNameFromId()

VCL_DLLPUBLIC std::string_view DriverBlocklist::GetVendorNameFromId ( uint32_t  id)

Definition at line 166 of file driverblocklist.cxx.

◆ IsDeviceBlocked()

VCL_DLLPUBLIC bool DriverBlocklist::IsDeviceBlocked ( const OUString &  blocklistURL,
VersionType  versionType,
std::u16string_view  driverVersion,
std::u16string_view  vendorId,
const OUString &  deviceId 
)

◆ OpenGLVersion()

uint64_t DriverBlocklist::OpenGLVersion ( uint32_t  a,
uint32_t  b,
uint32_t  c,
uint32_t  d 
)
inline

Definition at line 155 of file driverblocklist.hxx.

References a, d, and GFX_DRIVER_VERSION.

◆ PadDriverDecimal()

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

Definition at line 211 of file driverblocklist.cxx.

References i.

Referenced by ParseDriverVersion().

◆ ParseDriverVersion()

static bool DriverBlocklist::ParseDriverVersion ( std::u16string_view  aVersion,
uint64_t &  rNumericVersion,
VersionType  versionType 
)
static

◆ SplitDriverVersion()

static bool DriverBlocklist::SplitDriverVersion ( const char *  aSource,
char *  aAStr,
char *  aBStr,
char *  aCStr,
char *  aDStr,
VersionType  versionType 
)
static

Definition at line 228 of file driverblocklist.cxx.

References i, SAL_N_ELEMENTS, and Vulkan.

Referenced by ParseDriverVersion().

Variable Documentation

◆ allDriverVersions

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

Definition at line 577 of file driverblocklist.cxx.

Referenced by FindBlocklistedDeviceInList().

◆ DeviceVendorMax

const int DriverBlocklist::DeviceVendorMax = VendorMicrosoft + 1

Definition at line 44 of file driverblocklist.hxx.

Referenced by GetVendorId().