summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/shader_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/shader_manager.h')
-rw-r--r--gpu/command_buffer/service/shader_manager.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/shader_manager.h b/gpu/command_buffer/service/shader_manager.h
index caf41b4..3391ff6 100644
--- a/gpu/command_buffer/service/shader_manager.h
+++ b/gpu/command_buffer/service/shader_manager.h
@@ -30,7 +30,8 @@ class ShaderManager {
explicit ShaderInfo(GLuint service_id, GLenum shader_type)
: service_id_(service_id),
- shader_type_(shader_type) {
+ shader_type_(shader_type),
+ translation_valid_(true) {
}
void Update(const std::string& source) {
@@ -49,6 +50,19 @@ class ShaderManager {
return source_;
}
+ void SetTranslationStatus(bool valid, const std::string& log) {
+ translation_valid_ = valid;
+ translation_log_ = log;
+ }
+
+ const std::string& translation_log() const {
+ return translation_log_;
+ }
+
+ bool translation_valid() const {
+ return translation_valid_;
+ }
+
bool IsDeleted() const {
return service_id_ == 0;
}
@@ -67,8 +81,14 @@ class ShaderManager {
// Type of shader - GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
GLenum shader_type_;
+ // True if translation succeeded.
+ bool translation_valid_;
+
// The shader source as passed to glShaderSource.
std::string source_;
+
+ // The shader translation log.
+ std::string translation_log_;
};
ShaderManager() {