diff -r 000000000000 -r 6474c204b198 gfx/thebes/gfxPlatformMac.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/thebes/gfxPlatformMac.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,90 @@ +/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * 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 GFX_PLATFORM_MAC_H +#define GFX_PLATFORM_MAC_H + +#include "nsTArrayForwardDeclare.h" +#include "gfxPlatform.h" + +#define MAC_OS_X_VERSION_10_6_HEX 0x00001060 +#define MAC_OS_X_VERSION_10_7_HEX 0x00001070 + +#define MAC_OS_X_MAJOR_VERSION_MASK 0xFFFFFFF0U + +namespace mozilla { namespace gfx { class DrawTarget; }} + +class gfxPlatformMac : public gfxPlatform { +public: + gfxPlatformMac(); + virtual ~gfxPlatformMac(); + + static gfxPlatformMac *GetPlatform() { + return (gfxPlatformMac*) gfxPlatform::GetPlatform(); + } + + virtual already_AddRefed + CreateOffscreenSurface(const IntSize& size, + gfxContentType contentType) MOZ_OVERRIDE; + + virtual already_AddRefed + CreateOffscreenImageSurface(const gfxIntSize& aSize, + gfxContentType aContentType); + + already_AddRefed OptimizeImage(gfxImageSurface *aSurface, + gfxImageFormat format); + + mozilla::TemporaryRef + GetScaledFontForFont(mozilla::gfx::DrawTarget* aTarget, gfxFont *aFont); + + nsresult ResolveFontName(const nsAString& aFontName, + FontResolverCallback aCallback, + void *aClosure, bool& aAborted); + + nsresult GetStandardFamilyName(const nsAString& aFontName, nsAString& aFamilyName); + + gfxFontGroup *CreateFontGroup(const nsAString &aFamilies, + const gfxFontStyle *aStyle, + gfxUserFontSet *aUserFontSet); + + virtual gfxFontEntry* LookupLocalFont(const gfxProxyFontEntry *aProxyEntry, + const nsAString& aFontName); + + virtual gfxPlatformFontList* CreatePlatformFontList(); + + virtual gfxFontEntry* MakePlatformFont(const gfxProxyFontEntry *aProxyEntry, + const uint8_t *aFontData, + uint32_t aLength); + + bool IsFontFormatSupported(nsIURI *aFontURI, uint32_t aFormatFlags); + + nsresult GetFontList(nsIAtom *aLangGroup, + const nsACString& aGenericFamily, + nsTArray& aListOfFonts); + nsresult UpdateFontList(); + + virtual void GetCommonFallbackFonts(const uint32_t aCh, + int32_t aRunScript, + nsTArray& aFontList); + + bool UseAcceleratedCanvas(); + + // lower threshold on font anti-aliasing + uint32_t GetAntiAliasingThreshold() { return mFontAntiAliasingThreshold; } + + virtual already_AddRefed + GetThebesSurfaceForDrawTarget(mozilla::gfx::DrawTarget *aTarget); +private: + virtual void GetPlatformCMSOutputProfile(void* &mem, size_t &size); + + virtual bool SupportsOffMainThreadCompositing(); + + // read in the pref value for the lower threshold on font anti-aliasing + static uint32_t ReadAntiAliasingThreshold(); + + uint32_t mFontAntiAliasingThreshold; +}; + +#endif /* GFX_PLATFORM_MAC_H */