11ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman/* 21ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman * Copyright 2016 Google Inc. 31ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman * 41ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman * Use of this source code is governed by a BSD-style license that can be 51ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman * found in the LICENSE file. 61ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman */ 71ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 81ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman#include "SkFontConfigInterface.h" 91ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman#include "SkFontMgr.h" 101ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman#include "SkMutex.h" 111ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman#include "SkRefCnt.h" 121ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 131ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungemanSK_DECLARE_STATIC_MUTEX(gFontConfigInterfaceMutex); 141ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungemanstatic SkFontConfigInterface* gFontConfigInterface; 151ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 161ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungemanSkFontConfigInterface* SkFontConfigInterface::RefGlobal() { 171ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman SkAutoMutexAcquire ac(gFontConfigInterfaceMutex); 181ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 191ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman if (gFontConfigInterface) { 201ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman return SkRef(gFontConfigInterface); 211ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman } 221ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman return SkSafeRef(SkFontConfigInterface::GetSingletonDirectInterface()); 231ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman} 241ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 251ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungemanSkFontConfigInterface* SkFontConfigInterface::SetGlobal(SkFontConfigInterface* fc) { 261ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman SkAutoMutexAcquire ac(gFontConfigInterfaceMutex); 271ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman 281ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman SkRefCnt_SafeAssign(gFontConfigInterface, fc); 291ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman return fc; 301ae0e01accbca4b96a10b8a8c21917dd7bf27dc3bungeman} 31