Line data Source code
1 : /* vim: se cin sw=2 ts=2 et : */
2 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
3 : *
4 : * This Source Code Form is subject to the terms of the Mozilla Public
5 : * License, v. 2.0. If a copy of the MPL was not distributed with this
6 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 :
8 : #ifndef __GfxInfoX11_h__
9 : #define __GfxInfoX11_h__
10 :
11 : #include "GfxInfoBase.h"
12 :
13 : namespace mozilla {
14 : namespace widget {
15 :
16 3 : class GfxInfo final : public GfxInfoBase
17 : {
18 : public:
19 :
20 : // We only declare the subset of nsIGfxInfo that we actually implement. The
21 : // rest is brought forward from GfxInfoBase.
22 : NS_IMETHOD GetD2DEnabled(bool *aD2DEnabled) override;
23 : NS_IMETHOD GetDWriteEnabled(bool *aDWriteEnabled) override;
24 : NS_IMETHOD GetDWriteVersion(nsAString & aDwriteVersion) override;
25 : NS_IMETHOD GetCleartypeParameters(nsAString & aCleartypeParams) override;
26 : NS_IMETHOD GetAdapterDescription(nsAString & aAdapterDescription) override;
27 : NS_IMETHOD GetAdapterDriver(nsAString & aAdapterDriver) override;
28 : NS_IMETHOD GetAdapterVendorID(nsAString & aAdapterVendorID) override;
29 : NS_IMETHOD GetAdapterDeviceID(nsAString & aAdapterDeviceID) override;
30 : NS_IMETHOD GetAdapterSubsysID(nsAString & aAdapterSubsysID) override;
31 : NS_IMETHOD GetAdapterRAM(nsAString & aAdapterRAM) override;
32 : NS_IMETHOD GetAdapterDriverVersion(nsAString & aAdapterDriverVersion) override;
33 : NS_IMETHOD GetAdapterDriverDate(nsAString & aAdapterDriverDate) override;
34 : NS_IMETHOD GetAdapterDescription2(nsAString & aAdapterDescription) override;
35 : NS_IMETHOD GetAdapterDriver2(nsAString & aAdapterDriver) override;
36 : NS_IMETHOD GetAdapterVendorID2(nsAString & aAdapterVendorID) override;
37 : NS_IMETHOD GetAdapterDeviceID2(nsAString & aAdapterDeviceID) override;
38 : NS_IMETHOD GetAdapterSubsysID2(nsAString & aAdapterSubsysID) override;
39 : NS_IMETHOD GetAdapterRAM2(nsAString & aAdapterRAM) override;
40 : NS_IMETHOD GetAdapterDriverVersion2(nsAString & aAdapterDriverVersion) override;
41 : NS_IMETHOD GetAdapterDriverDate2(nsAString & aAdapterDriverDate) override;
42 : NS_IMETHOD GetIsGPU2Active(bool *aIsGPU2Active) override;
43 : using GfxInfoBase::GetFeatureStatus;
44 : using GfxInfoBase::GetFeatureSuggestedDriverVersion;
45 : using GfxInfoBase::GetWebGLParameter;
46 :
47 : virtual nsresult Init() override;
48 :
49 : NS_IMETHOD_(void) GetData() override;
50 :
51 : #ifdef DEBUG
52 : NS_DECL_ISUPPORTS_INHERITED
53 : NS_DECL_NSIGFXINFODEBUG
54 : #endif
55 :
56 : protected:
57 0 : ~GfxInfo() {}
58 :
59 : virtual nsresult GetFeatureStatusImpl(int32_t aFeature,
60 : int32_t *aStatus,
61 : nsAString & aSuggestedDriverVersion,
62 : const nsTArray<GfxDriverInfo>& aDriverInfo,
63 : nsACString& aFailureId,
64 : OperatingSystem* aOS = nullptr) override;
65 : virtual const nsTArray<GfxDriverInfo>& GetGfxDriverInfo() override;
66 :
67 : private:
68 : nsCString mVendor;
69 : nsCString mRenderer;
70 : nsCString mVersion;
71 : nsCString mAdapterDescription;
72 : nsCString mOS;
73 : nsCString mOSRelease;
74 : bool mIsMesa, mIsNVIDIA, mIsFGLRX, mIsNouveau, mIsIntel, mIsOldSwrast, mIsLlvmpipe;
75 : bool mHasTextureFromPixmap;
76 : int mGLMajorVersion, mMajorVersion, mMinorVersion, mRevisionVersion;
77 :
78 : void AddCrashReportAnnotations();
79 : };
80 :
81 : } // namespace widget
82 : } // namespace mozilla
83 :
84 : #endif /* __GfxInfoX11_h__ */
|