From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- gfx/config/gfxConfigManager.h | 119 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 gfx/config/gfxConfigManager.h (limited to 'gfx/config/gfxConfigManager.h') diff --git a/gfx/config/gfxConfigManager.h b/gfx/config/gfxConfigManager.h new file mode 100644 index 0000000000..303b7fb85f --- /dev/null +++ b/gfx/config/gfxConfigManager.h @@ -0,0 +1,119 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#ifndef mozilla_gfx_config_gfxConfigManager_h +#define mozilla_gfx_config_gfxConfigManager_h + +#include "gfxFeature.h" +#include "gfxTypes.h" +#include "nsCOMPtr.h" + +class nsIGfxInfo; + +namespace mozilla { +namespace gfx { + +class gfxConfigManager { + public: + gfxConfigManager() + : mFeatureWr(nullptr), + mFeatureWrCompositor(nullptr), + mFeatureWrAngle(nullptr), + mFeatureWrDComp(nullptr), + mFeatureWrPartial(nullptr), + mFeatureWrShaderCache(nullptr), + mFeatureWrOptimizedShaders(nullptr), + mFeatureWrScissoredCacheClears(nullptr), + mFeatureHwCompositing(nullptr), + mFeatureD3D11HwAngle(nullptr), + mFeatureD3D11Compositing(nullptr), + mFeatureGPUProcess(nullptr), + mWrForceEnabled(false), + mWrSoftwareForceEnabled(false), + mWrCompositorForceEnabled(false), + mWrForceAngle(false), + mWrForceAngleNoGPUProcess(false), + mWrDCompWinEnabled(false), + mWrCompositorDCompRequired(false), + mWrForcePartialPresent(false), + mWrPartialPresent(false), + mWrOptimizedShaders(false), + mWrScissoredCacheClearsEnabled(false), + mWrScissoredCacheClearsForceEnabled(false), + mGPUProcessAllowSoftware(false), + mWrEnvForceEnabled(false), + mScaledResolution(false), + mDisableHwCompositingNoWr(false), + mIsNightly(false), + mIsEarlyBetaOrEarlier(false), + mSafeMode(false), + mIsWin10OrLater(false) {} + + void Init(); + + void ConfigureWebRender(); + void ConfigureFromBlocklist(long aFeature, FeatureState* aFeatureState); + + protected: + void EmplaceUserPref(const char* aPrefName, Maybe& aValue); + void ConfigureWebRenderQualified(); + + nsCOMPtr mGfxInfo; + + FeatureState* mFeatureWr; + FeatureState* mFeatureWrCompositor; + FeatureState* mFeatureWrAngle; + FeatureState* mFeatureWrDComp; + FeatureState* mFeatureWrPartial; + FeatureState* mFeatureWrShaderCache; + FeatureState* mFeatureWrOptimizedShaders; + FeatureState* mFeatureWrScissoredCacheClears; + + FeatureState* mFeatureHwCompositing; + FeatureState* mFeatureD3D11HwAngle; + FeatureState* mFeatureD3D11Compositing; + FeatureState* mFeatureGPUProcess; + + /** + * Prefs + */ + Maybe mWrCompositorEnabled; + bool mWrForceEnabled; + bool mWrSoftwareForceEnabled; + bool mWrCompositorForceEnabled; + bool mWrForceAngle; + bool mWrForceAngleNoGPUProcess; + bool mWrDCompWinEnabled; + bool mWrCompositorDCompRequired; + bool mWrForcePartialPresent; + bool mWrPartialPresent; + Maybe mWrShaderCache; + bool mWrOptimizedShaders; + bool mWrScissoredCacheClearsEnabled; + bool mWrScissoredCacheClearsForceEnabled; + bool mGPUProcessAllowSoftware; + + /** + * Environment variables + */ + bool mWrEnvForceEnabled; + + /** + * System support + */ + HwStretchingSupport mHwStretchingSupport; + bool mScaledResolution; + bool mDisableHwCompositingNoWr; + bool mIsNightly; + bool mIsEarlyBetaOrEarlier; + bool mSafeMode; + bool mIsWin10OrLater; + bool mIsWin11OrLater; +}; + +} // namespace gfx +} // namespace mozilla + +#endif // mozilla_gfx_config_gfxConfigParams_h -- cgit v1.2.3