#include "gpu/command_buffer/service/shader_translator.h"
#include <stddef.h>
#include <string.h>
#include <algorithm>
#include "base/at_exit.h"
#include "base/check.h"
#include "base/command_line.h"
#include "base/lazy_instance.h"
#include "base/observer_list.h"
#include "base/strings/string_number_conversions.h"
#include "base/trace_event/trace_event.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_implementation.h"
namespace gpu {
namespace gles2 {
namespace {
class ShaderTranslatorInitializer { … };
base::LazyInstance<ShaderTranslatorInitializer>::DestructorAtExit
g_translator_initializer = …;
void GetAttributes(ShHandle compiler, AttributeMap* var_map) { … }
void GetUniforms(ShHandle compiler, UniformMap* var_map) { … }
void GetVaryings(ShHandle compiler, VaryingMap* var_map) { … }
void GetOutputVariables(ShHandle compiler, OutputVariableList* var_list) { … }
void GetInterfaceBlocks(ShHandle compiler, InterfaceBlockMap* var_map) { … }
}
ShaderTranslator::DestructionObserver::DestructionObserver() = default;
ShaderTranslator::DestructionObserver::~DestructionObserver() = default;
ShaderTranslator::ShaderTranslator() : … { … }
bool ShaderTranslator::Init(GLenum shader_type,
ShShaderSpec shader_spec,
const ShBuiltInResources* resources,
ShShaderOutput shader_output_language,
const ShCompileOptions& driver_bug_workarounds,
bool gl_shader_interm_output) { … }
const ShCompileOptions& ShaderTranslator::GetCompileOptions() const { … }
bool ShaderTranslator::Translate(
const std::string& shader_source,
std::string* info_log,
std::string* translated_source,
int* shader_version,
AttributeMap* attrib_map,
UniformMap* uniform_map,
VaryingMap* varying_map,
InterfaceBlockMap* interface_block_map,
OutputVariableList* output_variable_list) const { … }
OptionsAffectingCompilationString*
ShaderTranslator::GetStringForOptionsThatWouldAffectCompilation() const { … }
void ShaderTranslator::AddDestructionObserver(
DestructionObserver* observer) { … }
void ShaderTranslator::RemoveDestructionObserver(
DestructionObserver* observer) { … }
ShaderTranslator::~ShaderTranslator() { … }
}
}