Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(898)

Unified Diff: third_party/WebKit/Source/modules/webgl/GLStringQuery.h

Issue 1834983003: Remove string-getting methods from WebGraphicsContext3D. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: getactive: pointers Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webgl/GLStringQuery.h
diff --git a/third_party/WebKit/Source/modules/webgl/GLStringQuery.h b/third_party/WebKit/Source/modules/webgl/GLStringQuery.h
new file mode 100644
index 0000000000000000000000000000000000000000..bfe15886a3c4589a0f9bcd5e88240020da1417cb
--- /dev/null
+++ b/third_party/WebKit/Source/modules/webgl/GLStringQuery.h
@@ -0,0 +1,73 @@
+// Copyright 2010 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.
+
+#ifndef GLStringQuery_h
+#define GLStringQuery_h
+
+#include "gpu/command_buffer/client/gles2_interface.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+// Performs a query for a string on GLES2Interface and returns a WTF::String. If
+// it is unable to query the string, it wil return an empty WTF::String.
+class GLStringQuery {
+public:
+ struct ProgramInfoLog {
+ static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint* length)
+ {
+ return gl->GetProgramiv(id, GL_INFO_LOG_LENGTH, length);
+ }
+ static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
+ {
+ return gl->GetProgramInfoLog(id, length, returnedLength, reinterpret_cast<GLchar*>(ptr));
+ }
+ };
+
+ struct ShaderInfoLog {
+ static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint* length)
+ {
+ gl->GetShaderiv(id, GL_INFO_LOG_LENGTH, length);
+ }
+ static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
+ {
+ gl->GetShaderInfoLog(id, length, returnedLength, reinterpret_cast<GLchar*>(ptr));
+ }
+ };
+
+ struct TranslatedShaderSourceANGLE {
+ static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint* length)
+ {
+ gl->GetShaderiv(id, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, length);
+ }
+ static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
+ {
+ gl->GetTranslatedShaderSourceANGLE(id, length, returnedLength, reinterpret_cast<GLchar*>(ptr));
+ }
+ };
+
+ GLStringQuery(gpu::gles2::GLES2Interface* gl) : m_gl(gl) {}
+
+ template<class Traits>
+ WTF::String Run(GLuint id) {
+ GLint length = 0;
+ Traits::LengthFunction(m_gl, id, &length);
+ if (!length)
+ return WTF::emptyString();
esprehn 2016/03/28 21:44:15 you don't need to write WTF:: on all these.
danakj 2016/03/28 21:45:34 Oh that stack of using's at the bottom of WTFStrin
+ LChar* logPtr;
+ RefPtr<WTF::StringImpl> nameImpl = WTF::StringImpl::createUninitialized(length, logPtr);
esprehn 2016/03/28 21:44:15 ditto, don't write WTF::
+ GLsizei returnedLength = 0;
+ Traits::LogFunction(m_gl, id, length, &returnedLength, logPtr);
+ // The returnedLength excludes the null terminator. If this check wasn't
+ // true, then we'd need to tell the returned String the real length.
+ DCHECK_EQ(returnedLength + 1, length);
+ return String(nameImpl.release());
+ }
+
+private:
+ gpu::gles2::GLES2Interface* m_gl;
+};
+
+} // namespace blink
+#endif // GLStringQuery_h
« no previous file with comments | « gpu/blink/webgraphicscontext3d_impl.cc ('k') | third_party/WebKit/Source/modules/webgl/WebGLDebugShaders.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698