Copy as Markdown
Other Tools
//
// DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/widget/nsIGfxInfo.idl
//
/// `interface nsIGfxInfo : nsISupports`
///
// The actual type definition for the interface. This struct has methods
// declared on it which will call through its vtable. You never want to pass
// this type around by value, always pass it behind a reference.
#[repr(C)]
pub struct nsIGfxInfo {
vtable: &'static nsIGfxInfoVTable,
/// This field is a phantomdata to ensure that the VTable type and any
/// struct containing it is not safe to send across threads by default, as
/// XPCOM is generally not threadsafe.
///
/// If this type is marked as [rust_sync], there will be explicit `Send` and
/// `Sync` implementations on this type, which will override the inherited
/// negative impls from `Rc`.
__nosync: ::std::marker::PhantomData<::std::rc::Rc<u8>>,
// Make the rust compiler aware that there might be interior mutability
// in what actually implements the interface. This works around UB
// introduced by https://github.com/llvm/llvm-project/commit/01859da84bad95fd51d6a03b08b60c660e642a4f
// that a rust lint would make blatantly obvious, but doesn't exist.
// This prevents optimizations, but those optimizations weren't available
// before rustc switched to LLVM 16, and they now cause problems because
// of the UB.
// Until there's a lint available to find all our UB, it's simpler to
// avoid the UB in the first place, at the cost of preventing optimizations
// in places that don't cause UB. But again, those optimizations weren't
// available before.
__maybe_interior_mutability: ::std::cell::UnsafeCell<[u8; 0]>,
}
// Implementing XpCom for an interface exposes its IID, which allows for easy
// use of the `.query_interface<T>` helper method. This also defines that
// method for nsIGfxInfo.
unsafe impl XpCom for nsIGfxInfo {
const IID: nsIID = nsID(0x1accd618, 0x4c80, 0x4703,
[0x9d, 0x29, 0xec, 0xf2, 0x57, 0xd3, 0x97, 0xc8]);
}
// We need to implement the RefCounted trait so we can be used with `RefPtr`.
// This trait teaches `RefPtr` how to manage our memory.
unsafe impl RefCounted for nsIGfxInfo {
#[inline]
unsafe fn addref(&self) {
self.AddRef();
}
#[inline]
unsafe fn release(&self) {
self.Release();
}
}
// This trait is implemented on all types which can be coerced to from nsIGfxInfo.
// It is used in the implementation of `fn coerce<T>`. We hide it from the
// documentation, because it clutters it up a lot.
#[doc(hidden)]
pub trait nsIGfxInfoCoerce {
/// Cheaply cast a value of this type from a `nsIGfxInfo`.
fn coerce_from(v: &nsIGfxInfo) -> &Self;
}
// The trivial implementation: We can obviously coerce ourselves to ourselves.
impl nsIGfxInfoCoerce for nsIGfxInfo {
#[inline]
fn coerce_from(v: &nsIGfxInfo) -> &Self {
v
}
}
impl nsIGfxInfo {
/// Cast this `nsIGfxInfo` to one of its base interfaces.
#[inline]
pub fn coerce<T: nsIGfxInfoCoerce>(&self) -> &T {
T::coerce_from(self)
}
}
// Every interface struct type implements `Deref` to its base interface. This
// causes methods on the base interfaces to be directly avaliable on the
// object. For example, you can call `.AddRef` or `.QueryInterface` directly
// on any interface which inherits from `nsISupports`.
impl ::std::ops::Deref for nsIGfxInfo {
type Target = nsISupports;
#[inline]
fn deref(&self) -> &nsISupports {
unsafe {
::std::mem::transmute(self)
}
}
}
// Ensure we can use .coerce() to cast to our base types as well. Any type which
// our base interface can coerce from should be coercable from us as well.
impl<T: nsISupportsCoerce> nsIGfxInfoCoerce for T {
#[inline]
fn coerce_from(v: &nsIGfxInfo) -> &Self {
T::coerce_from(v)
}
}
// This struct represents the interface's VTable. A pointer to a statically
// allocated version of this struct is at the beginning of every nsIGfxInfo
// object. It contains one pointer field for each method in the interface. In
// the case where we can't generate a binding for a method, we include a void
// pointer.
#[doc(hidden)]
#[repr(C)]
pub struct nsIGfxInfoVTable {
/// We need to include the members from the base interface's vtable at the start
/// of the VTable definition.
pub __base: nsISupportsVTable,
/* readonly attribute boolean D2DEnabled; */
pub GetD2DEnabled: unsafe extern "system" fn (this: *const nsIGfxInfo, aD2DEnabled: *mut bool) -> ::nserror::nsresult,
/* readonly attribute boolean DWriteEnabled; */
pub GetDWriteEnabled: unsafe extern "system" fn (this: *const nsIGfxInfo, aDWriteEnabled: *mut bool) -> ::nserror::nsresult,
/* readonly attribute boolean EmbeddedInFirefoxReality; */
pub GetEmbeddedInFirefoxReality: unsafe extern "system" fn (this: *const nsIGfxInfo, aEmbeddedInFirefoxReality: *mut bool) -> ::nserror::nsresult,
/* readonly attribute AString AzureCanvasBackend; */
pub GetAzureCanvasBackend: unsafe extern "system" fn (this: *const nsIGfxInfo, aAzureCanvasBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString AzureContentBackend; */
pub GetAzureContentBackend: unsafe extern "system" fn (this: *const nsIGfxInfo, aAzureContentBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute boolean usingGPUProcess; */
pub GetUsingGPUProcess: unsafe extern "system" fn (this: *const nsIGfxInfo, aUsingGPUProcess: *mut bool) -> ::nserror::nsresult,
/* readonly attribute boolean usingRemoteCanvas; */
pub GetUsingRemoteCanvas: unsafe extern "system" fn (this: *const nsIGfxInfo, aUsingRemoteCanvas: *mut bool) -> ::nserror::nsresult,
/* readonly attribute boolean usingAcceleratedCanvas; */
pub GetUsingAcceleratedCanvas: unsafe extern "system" fn (this: *const nsIGfxInfo, aUsingAcceleratedCanvas: *mut bool) -> ::nserror::nsresult,
/* readonly attribute boolean hasBattery; */
pub GetHasBattery: unsafe extern "system" fn (this: *const nsIGfxInfo, aHasBattery: *mut bool) -> ::nserror::nsresult,
/* readonly attribute AString DWriteVersion; */
pub GetDWriteVersion: unsafe extern "system" fn (this: *const nsIGfxInfo, aDWriteVersion: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString cleartypeParameters; */
pub GetCleartypeParameters: unsafe extern "system" fn (this: *const nsIGfxInfo, aCleartypeParameters: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute float textScaleFactor; */
pub GetTextScaleFactor: unsafe extern "system" fn (this: *const nsIGfxInfo, aTextScaleFactor: *mut libc::c_float) -> ::nserror::nsresult,
/* readonly attribute AString windowProtocol; */
pub GetWindowProtocol: unsafe extern "system" fn (this: *const nsIGfxInfo, aWindowProtocol: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString testType; */
pub GetTestType: unsafe extern "system" fn (this: *const nsIGfxInfo, aTestType: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString ContentBackend; */
pub GetContentBackend: unsafe extern "system" fn (this: *const nsIGfxInfo, aContentBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute boolean isHeadless; */
pub GetIsHeadless: unsafe extern "system" fn (this: *const nsIGfxInfo, aIsHeadless: *mut bool) -> ::nserror::nsresult,
/* readonly attribute unsigned long TargetFrameRate; */
pub GetTargetFrameRate: unsafe extern "system" fn (this: *const nsIGfxInfo, aTargetFrameRate: *mut u32) -> ::nserror::nsresult,
/* readonly attribute ACString CodecSupportInfo; */
pub GetCodecSupportInfo: unsafe extern "system" fn (this: *const nsIGfxInfo, aCodecSupportInfo: *mut ::nsstring::nsACString) -> ::nserror::nsresult,
/* readonly attribute nsIGfxInfo_FontVisibilityDeviceDetermination fontVisibilityDetermination; */
pub GetFontVisibilityDetermination: unsafe extern "system" fn (this: *const nsIGfxInfo, aFontVisibilityDetermination: *mut u8) -> ::nserror::nsresult,
/* readonly attribute AString fontVisibilityDeterminationStr; */
pub GetFontVisibilityDeterminationStr: unsafe extern "system" fn (this: *const nsIGfxInfo, aFontVisibilityDeterminationStr: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDescription; */
pub GetAdapterDescription: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDescription: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDescription2; */
pub GetAdapterDescription2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDescription2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriver; */
pub GetAdapterDriver: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriver: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriver2; */
pub GetAdapterDriver2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriver2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterVendorID; */
pub GetAdapterVendorID: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterVendorID: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterVendorID2; */
pub GetAdapterVendorID2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterVendorID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDeviceID; */
pub GetAdapterDeviceID: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDeviceID: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDeviceID2; */
pub GetAdapterDeviceID2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDeviceID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterSubsysID; */
pub GetAdapterSubsysID: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterSubsysID: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterSubsysID2; */
pub GetAdapterSubsysID2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterSubsysID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute unsigned long adapterRAM; */
pub GetAdapterRAM: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterRAM: *mut u32) -> ::nserror::nsresult,
/* readonly attribute unsigned long adapterRAM2; */
pub GetAdapterRAM2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterRAM2: *mut u32) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverVendor; */
pub GetAdapterDriverVendor: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverVendor: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverVendor2; */
pub GetAdapterDriverVendor2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverVendor2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverVersion; */
pub GetAdapterDriverVersion: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverVersion: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverVersion2; */
pub GetAdapterDriverVersion2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverVersion2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverDate; */
pub GetAdapterDriverDate: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverDate: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute AString adapterDriverDate2; */
pub GetAdapterDriverDate2: unsafe extern "system" fn (this: *const nsIGfxInfo, aAdapterDriverDate2: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* readonly attribute boolean isGPU2Active; */
pub GetIsGPU2Active: unsafe extern "system" fn (this: *const nsIGfxInfo, aIsGPU2Active: *mut bool) -> ::nserror::nsresult,
/* readonly attribute ACString drmRenderDevice; */
pub GetDrmRenderDevice: unsafe extern "system" fn (this: *const nsIGfxInfo, aDrmRenderDevice: *mut ::nsstring::nsACString) -> ::nserror::nsresult,
/* [implicit_jscontext] jsval getMonitors (); */
/// Unable to generate binding because `jscontext is unsupported`
pub GetMonitors: *const ::libc::c_void,
/* Array<ACString> getFailures (out Array<long> indices); */
pub GetFailures: unsafe extern "system" fn (this: *const nsIGfxInfo, indices: *mut thin_vec::ThinVec<i32>, _retval: *mut thin_vec::ThinVec<::nsstring::nsCString>) -> ::nserror::nsresult,
/* [noscript,notxpcom] void logFailure (in ACString failure); */
pub LogFailure: unsafe extern "system" fn (this: *const nsIGfxInfo, failure: *const ::nsstring::nsACString) -> libc::c_void,
/* long getFeatureStatus (in long aFeature, [optional] out ACString aFailureId); */
pub GetFeatureStatus: unsafe extern "system" fn (this: *const nsIGfxInfo, aFeature: i32, aFailureId: *mut ::nsstring::nsACString, _retval: *mut i32) -> ::nserror::nsresult,
/* AString getFeatureStatusStr (in AString aFeature, [optional] out ACString aFailureId); */
pub GetFeatureStatusStr: unsafe extern "system" fn (this: *const nsIGfxInfo, aFeature: *const ::nsstring::nsAString, aFailureId: *mut ::nsstring::nsACString, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* AString getFeatureSuggestedDriverVersion (in long aFeature); */
pub GetFeatureSuggestedDriverVersion: unsafe extern "system" fn (this: *const nsIGfxInfo, aFeature: i32, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* AString getFeatureSuggestedDriverVersionStr (in AString aFeature); */
pub GetFeatureSuggestedDriverVersionStr: unsafe extern "system" fn (this: *const nsIGfxInfo, aFeature: *const ::nsstring::nsAString, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult,
/* [noscript,notxpcom] void GetData (); */
pub GetData: unsafe extern "system" fn (this: *const nsIGfxInfo) -> libc::c_void,
/* [noscript,notxpcom] long GetMaxRefreshRate (out boolean aMixed); */
pub GetMaxRefreshRate: unsafe extern "system" fn (this: *const nsIGfxInfo, aMixed: *mut bool) -> i32,
/* [implicit_jscontext] jsval getInfo (); */
/// Unable to generate binding because `jscontext is unsupported`
pub GetInfo: *const ::libc::c_void,
/* [implicit_jscontext] jsval getFeatureLog (); */
/// Unable to generate binding because `jscontext is unsupported`
pub GetFeatureLog: *const ::libc::c_void,
/* [implicit_jscontext] jsval getFeatures (); */
/// Unable to generate binding because `jscontext is unsupported`
pub GetFeatures: *const ::libc::c_void,
/* [implicit_jscontext] jsval getActiveCrashGuards (); */
/// Unable to generate binding because `jscontext is unsupported`
pub GetActiveCrashGuards: *const ::libc::c_void,
/* boolean controlGPUProcessForXPCShell (in boolean aEnable); */
pub ControlGPUProcessForXPCShell: unsafe extern "system" fn (this: *const nsIGfxInfo, aEnable: bool, _retval: *mut bool) -> ::nserror::nsresult,
/* void killGPUProcessForTests (); */
pub KillGPUProcessForTests: unsafe extern "system" fn (this: *const nsIGfxInfo) -> ::nserror::nsresult,
/* void crashGPUProcessForTests (); */
pub CrashGPUProcessForTests: unsafe extern "system" fn (this: *const nsIGfxInfo) -> ::nserror::nsresult,
}
// The implementations of the function wrappers which are exposed to rust code.
// Call these methods rather than manually calling through the VTable struct.
impl nsIGfxInfo {
pub const Unassigned: u8 = 0;
pub const Unknown_Platform: u8 = 1;
pub const Windows_Platform: u8 = 2;
pub const MacOS_Unknown: u8 = 3;
pub const Android_Unknown_Release_Version: u8 = 4;
pub const Android_Unknown_Peloton: u8 = 5;
pub const Android_Unknown_vbox: u8 = 6;
pub const Android_Unknown_mitv: u8 = 7;
pub const Android_Chromebook: u8 = 8;
pub const Android_Amazon: u8 = 9;
pub const Android_sub_9: u8 = 10;
pub const Android_9_11: u8 = 11;
pub const Android_12_plus: u8 = 12;
pub const Linux_Unknown: u8 = 13;
pub const Linux_Ubuntu_any: u8 = 14;
pub const Linux_Ubuntu_20: u8 = 15;
pub const Linux_Ubuntu_22: u8 = 16;
pub const Linux_Fedora_any: u8 = 17;
pub const Linux_Fedora_38: u8 = 18;
pub const Linux_Fedora_39: u8 = 19;
pub const MacOS_13_plus: u8 = 20;
pub const MacOS_sub_13: u8 = 21;
/// `readonly attribute boolean D2DEnabled;`
#[inline]
pub unsafe fn GetD2DEnabled(&self, aD2DEnabled: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetD2DEnabled)(self, aD2DEnabled)
}
/// `readonly attribute boolean DWriteEnabled;`
#[inline]
pub unsafe fn GetDWriteEnabled(&self, aDWriteEnabled: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetDWriteEnabled)(self, aDWriteEnabled)
}
/// `readonly attribute boolean EmbeddedInFirefoxReality;`
#[inline]
pub unsafe fn GetEmbeddedInFirefoxReality(&self, aEmbeddedInFirefoxReality: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetEmbeddedInFirefoxReality)(self, aEmbeddedInFirefoxReality)
}
/// `readonly attribute AString AzureCanvasBackend;`
#[inline]
pub unsafe fn GetAzureCanvasBackend(&self, aAzureCanvasBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAzureCanvasBackend)(self, aAzureCanvasBackend)
}
/// `readonly attribute AString AzureContentBackend;`
#[inline]
pub unsafe fn GetAzureContentBackend(&self, aAzureContentBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAzureContentBackend)(self, aAzureContentBackend)
}
/// `readonly attribute boolean usingGPUProcess;`
#[inline]
pub unsafe fn GetUsingGPUProcess(&self, aUsingGPUProcess: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetUsingGPUProcess)(self, aUsingGPUProcess)
}
/// `readonly attribute boolean usingRemoteCanvas;`
#[inline]
pub unsafe fn GetUsingRemoteCanvas(&self, aUsingRemoteCanvas: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetUsingRemoteCanvas)(self, aUsingRemoteCanvas)
}
/// `readonly attribute boolean usingAcceleratedCanvas;`
#[inline]
pub unsafe fn GetUsingAcceleratedCanvas(&self, aUsingAcceleratedCanvas: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetUsingAcceleratedCanvas)(self, aUsingAcceleratedCanvas)
}
/// `readonly attribute boolean hasBattery;`
#[inline]
pub unsafe fn GetHasBattery(&self, aHasBattery: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetHasBattery)(self, aHasBattery)
}
/// `readonly attribute AString DWriteVersion;`
#[inline]
pub unsafe fn GetDWriteVersion(&self, aDWriteVersion: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetDWriteVersion)(self, aDWriteVersion)
}
/// `readonly attribute AString cleartypeParameters;`
#[inline]
pub unsafe fn GetCleartypeParameters(&self, aCleartypeParameters: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetCleartypeParameters)(self, aCleartypeParameters)
}
/// `readonly attribute float textScaleFactor;`
#[inline]
pub unsafe fn GetTextScaleFactor(&self, aTextScaleFactor: *mut libc::c_float) -> ::nserror::nsresult {
((*self.vtable).GetTextScaleFactor)(self, aTextScaleFactor)
}
/// `readonly attribute AString windowProtocol;`
#[inline]
pub unsafe fn GetWindowProtocol(&self, aWindowProtocol: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetWindowProtocol)(self, aWindowProtocol)
}
/// `readonly attribute AString testType;`
#[inline]
pub unsafe fn GetTestType(&self, aTestType: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetTestType)(self, aTestType)
}
/// `readonly attribute AString ContentBackend;`
#[inline]
pub unsafe fn GetContentBackend(&self, aContentBackend: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetContentBackend)(self, aContentBackend)
}
/// `readonly attribute boolean isHeadless;`
#[inline]
pub unsafe fn GetIsHeadless(&self, aIsHeadless: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetIsHeadless)(self, aIsHeadless)
}
/// `readonly attribute unsigned long TargetFrameRate;`
#[inline]
pub unsafe fn GetTargetFrameRate(&self, aTargetFrameRate: *mut u32) -> ::nserror::nsresult {
((*self.vtable).GetTargetFrameRate)(self, aTargetFrameRate)
}
/// `readonly attribute ACString CodecSupportInfo;`
#[inline]
pub unsafe fn GetCodecSupportInfo(&self, aCodecSupportInfo: *mut ::nsstring::nsACString) -> ::nserror::nsresult {
((*self.vtable).GetCodecSupportInfo)(self, aCodecSupportInfo)
}
/// `readonly attribute nsIGfxInfo_FontVisibilityDeviceDetermination fontVisibilityDetermination;`
#[inline]
pub unsafe fn GetFontVisibilityDetermination(&self, aFontVisibilityDetermination: *mut u8) -> ::nserror::nsresult {
((*self.vtable).GetFontVisibilityDetermination)(self, aFontVisibilityDetermination)
}
/// `readonly attribute AString fontVisibilityDeterminationStr;`
#[inline]
pub unsafe fn GetFontVisibilityDeterminationStr(&self, aFontVisibilityDeterminationStr: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetFontVisibilityDeterminationStr)(self, aFontVisibilityDeterminationStr)
}
/// ```text
/// /**
/// * The name of the display adapter.
/// */
/// ```
///
/// `readonly attribute AString adapterDescription;`
#[inline]
pub unsafe fn GetAdapterDescription(&self, aAdapterDescription: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDescription)(self, aAdapterDescription)
}
/// `readonly attribute AString adapterDescription2;`
#[inline]
pub unsafe fn GetAdapterDescription2(&self, aAdapterDescription2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDescription2)(self, aAdapterDescription2)
}
/// `readonly attribute AString adapterDriver;`
#[inline]
pub unsafe fn GetAdapterDriver(&self, aAdapterDriver: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriver)(self, aAdapterDriver)
}
/// `readonly attribute AString adapterDriver2;`
#[inline]
pub unsafe fn GetAdapterDriver2(&self, aAdapterDriver2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriver2)(self, aAdapterDriver2)
}
/// `readonly attribute AString adapterVendorID;`
#[inline]
pub unsafe fn GetAdapterVendorID(&self, aAdapterVendorID: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterVendorID)(self, aAdapterVendorID)
}
/// `readonly attribute AString adapterVendorID2;`
#[inline]
pub unsafe fn GetAdapterVendorID2(&self, aAdapterVendorID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterVendorID2)(self, aAdapterVendorID2)
}
/// `readonly attribute AString adapterDeviceID;`
#[inline]
pub unsafe fn GetAdapterDeviceID(&self, aAdapterDeviceID: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDeviceID)(self, aAdapterDeviceID)
}
/// `readonly attribute AString adapterDeviceID2;`
#[inline]
pub unsafe fn GetAdapterDeviceID2(&self, aAdapterDeviceID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDeviceID2)(self, aAdapterDeviceID2)
}
/// `readonly attribute AString adapterSubsysID;`
#[inline]
pub unsafe fn GetAdapterSubsysID(&self, aAdapterSubsysID: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterSubsysID)(self, aAdapterSubsysID)
}
/// `readonly attribute AString adapterSubsysID2;`
#[inline]
pub unsafe fn GetAdapterSubsysID2(&self, aAdapterSubsysID2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterSubsysID2)(self, aAdapterSubsysID2)
}
/// ```text
/// /**
/// * The amount of RAM in MB in the display adapter.
/// */
/// ```
///
/// `readonly attribute unsigned long adapterRAM;`
#[inline]
pub unsafe fn GetAdapterRAM(&self, aAdapterRAM: *mut u32) -> ::nserror::nsresult {
((*self.vtable).GetAdapterRAM)(self, aAdapterRAM)
}
/// `readonly attribute unsigned long adapterRAM2;`
#[inline]
pub unsafe fn GetAdapterRAM2(&self, aAdapterRAM2: *mut u32) -> ::nserror::nsresult {
((*self.vtable).GetAdapterRAM2)(self, aAdapterRAM2)
}
/// `readonly attribute AString adapterDriverVendor;`
#[inline]
pub unsafe fn GetAdapterDriverVendor(&self, aAdapterDriverVendor: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverVendor)(self, aAdapterDriverVendor)
}
/// `readonly attribute AString adapterDriverVendor2;`
#[inline]
pub unsafe fn GetAdapterDriverVendor2(&self, aAdapterDriverVendor2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverVendor2)(self, aAdapterDriverVendor2)
}
/// `readonly attribute AString adapterDriverVersion;`
#[inline]
pub unsafe fn GetAdapterDriverVersion(&self, aAdapterDriverVersion: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverVersion)(self, aAdapterDriverVersion)
}
/// `readonly attribute AString adapterDriverVersion2;`
#[inline]
pub unsafe fn GetAdapterDriverVersion2(&self, aAdapterDriverVersion2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverVersion2)(self, aAdapterDriverVersion2)
}
/// `readonly attribute AString adapterDriverDate;`
#[inline]
pub unsafe fn GetAdapterDriverDate(&self, aAdapterDriverDate: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverDate)(self, aAdapterDriverDate)
}
/// `readonly attribute AString adapterDriverDate2;`
#[inline]
pub unsafe fn GetAdapterDriverDate2(&self, aAdapterDriverDate2: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetAdapterDriverDate2)(self, aAdapterDriverDate2)
}
/// `readonly attribute boolean isGPU2Active;`
#[inline]
pub unsafe fn GetIsGPU2Active(&self, aIsGPU2Active: *mut bool) -> ::nserror::nsresult {
((*self.vtable).GetIsGPU2Active)(self, aIsGPU2Active)
}
/// `readonly attribute ACString drmRenderDevice;`
#[inline]
pub unsafe fn GetDrmRenderDevice(&self, aDrmRenderDevice: *mut ::nsstring::nsACString) -> ::nserror::nsresult {
((*self.vtable).GetDrmRenderDevice)(self, aDrmRenderDevice)
}
/// ```text
/// /**
/// * Returns an array of objects describing each monitor. Guaranteed properties
/// * are "screenWidth" and "screenHeight". This is only implemented on Desktop.
/// *
/// * Windows additionally supplies "refreshRate" and "pseudoDisplay".
/// *
/// * OS X additionally supplies "scale".
/// */
/// ```
///
/// `[implicit_jscontext] jsval getMonitors ();`
const _GetMonitors: () = ();
/// `Array<ACString> getFailures (out Array<long> indices);`
#[inline]
pub unsafe fn GetFailures(&self, indices: *mut thin_vec::ThinVec<i32>, _retval: *mut thin_vec::ThinVec<::nsstring::nsCString>) -> ::nserror::nsresult {
((*self.vtable).GetFailures)(self, indices, _retval)
}
/// `[noscript,notxpcom] void logFailure (in ACString failure);`
#[inline]
pub unsafe fn LogFailure(&self, failure: *const ::nsstring::nsACString) -> libc::c_void {
((*self.vtable).LogFailure)(self, failure)
}
/// ```text
/// /**
/// * Ask about a feature, and return the status of that feature.
/// * If the feature is not ok then aFailureId will give a unique failure Id
/// * otherwise it will be empty.
/// */
/// ```
///
/// `long getFeatureStatus (in long aFeature, [optional] out ACString aFailureId);`
#[inline]
pub unsafe fn GetFeatureStatus(&self, aFeature: i32, aFailureId: *mut ::nsstring::nsACString, _retval: *mut i32) -> ::nserror::nsresult {
((*self.vtable).GetFeatureStatus)(self, aFeature, aFailureId, _retval)
}
/// `AString getFeatureStatusStr (in AString aFeature, [optional] out ACString aFailureId);`
#[inline]
pub unsafe fn GetFeatureStatusStr(&self, aFeature: *const ::nsstring::nsAString, aFailureId: *mut ::nsstring::nsACString, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetFeatureStatusStr)(self, aFeature, aFailureId, _retval)
}
/// `AString getFeatureSuggestedDriverVersion (in long aFeature);`
#[inline]
pub unsafe fn GetFeatureSuggestedDriverVersion(&self, aFeature: i32, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetFeatureSuggestedDriverVersion)(self, aFeature, _retval)
}
/// `AString getFeatureSuggestedDriverVersionStr (in AString aFeature);`
#[inline]
pub unsafe fn GetFeatureSuggestedDriverVersionStr(&self, aFeature: *const ::nsstring::nsAString, _retval: *mut ::nsstring::nsAString) -> ::nserror::nsresult {
((*self.vtable).GetFeatureSuggestedDriverVersionStr)(self, aFeature, _retval)
}
/// `[noscript,notxpcom] void GetData ();`
#[inline]
pub unsafe fn GetData(&self, ) -> libc::c_void {
((*self.vtable).GetData)(self, )
}
/// ```text
/// /**
/// * Maximum refresh rate among detected monitors. -1 if unknown. aMixed is set
/// * to true if we know there are multiple displays and they have different
/// * refresh rates, else false. The returned value is in Hz.
/// */
/// ```
///
/// `[noscript,notxpcom] long GetMaxRefreshRate (out boolean aMixed);`
#[inline]
pub unsafe fn GetMaxRefreshRate(&self, aMixed: *mut bool) -> i32 {
((*self.vtable).GetMaxRefreshRate)(self, aMixed)
}
/// `[implicit_jscontext] jsval getInfo ();`
const _GetInfo: () = ();
/// `[implicit_jscontext] jsval getFeatureLog ();`
const _GetFeatureLog: () = ();
/// `[implicit_jscontext] jsval getFeatures ();`
const _GetFeatures: () = ();
/// `[implicit_jscontext] jsval getActiveCrashGuards ();`
const _GetActiveCrashGuards: () = ();
/// `boolean controlGPUProcessForXPCShell (in boolean aEnable);`
#[inline]
pub unsafe fn ControlGPUProcessForXPCShell(&self, aEnable: bool, _retval: *mut bool) -> ::nserror::nsresult {
((*self.vtable).ControlGPUProcessForXPCShell)(self, aEnable, _retval)
}
/// `void killGPUProcessForTests ();`
#[inline]
pub unsafe fn KillGPUProcessForTests(&self, ) -> ::nserror::nsresult {
((*self.vtable).KillGPUProcessForTests)(self, )
}
/// `void crashGPUProcessForTests ();`
#[inline]
pub unsafe fn CrashGPUProcessForTests(&self, ) -> ::nserror::nsresult {
((*self.vtable).CrashGPUProcessForTests)(self, )
}
}