#include "ui/gl/shader_tracking.h"
#include "base/check.h"
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "ui/gl/gl_switches.h"
namespace gl {
ShaderTracking* ShaderTracking::GetInstance() {
#if BUILDFLAG(IS_WIN)
static bool enabled =
base::FeatureList::IsEnabled(features::kTrackCurrentShaders);
if (enabled) {
static base::NoDestructor<ShaderTracking> instance;
return instance.get();
}
#endif
return nullptr;
}
void ShaderTracking::GetShaders(std::string* shader0, std::string* shader1) {
DCHECK(shader0 && shader1);
base::AutoLock auto_lock(lock_);
*shader0 = shaders_[0];
*shader1 = shaders_[1];
}
void ShaderTracking::SetShaders(const char* shader0, const char* shader1) {
base::AutoLock auto_lock(lock_);
shaders_[0] = shader0 ? shader0 : "";
shaders_[1] = shader1 ? shader1 : "";
}
}