blob: 22f9f1c073eac5d6007fc43b754f2765e8945f46 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/gpu/shader_cache_factory.h"
#include "base/bind.h"
#include "base/single_thread_task_runner.h"
#include "gpu/ipc/host/shader_disk_cache.h"
namespace content {
namespace {
gpu::ShaderCacheFactory* factory_instance = nullptr;
void CreateFactoryInstance() {
DCHECK(!factory_instance);
factory_instance = new gpu::ShaderCacheFactory();
}
} // namespace
void InitShaderCacheFactorySingleton(
scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
if (task_runner->BelongsToCurrentThread()) {
CreateFactoryInstance();
} else {
task_runner->PostTask(FROM_HERE, base::BindOnce(&CreateFactoryInstance));
}
}
gpu::ShaderCacheFactory* GetShaderCacheFactorySingleton() {
DCHECK(!factory_instance || factory_instance->CalledOnValidThread());
return factory_instance;
}
} // namespace content