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

Side by Side 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, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef GLStringQuery_h
6 #define GLStringQuery_h
7
8 #include "gpu/command_buffer/client/gles2_interface.h"
9 #include "wtf/text/WTFString.h"
10
11 namespace blink {
12
13 // Performs a query for a string on GLES2Interface and returns a WTF::String. If
14 // it is unable to query the string, it wil return an empty WTF::String.
15 class GLStringQuery {
16 public:
17 struct ProgramInfoLog {
18 static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GL int* length)
19 {
20 return gl->GetProgramiv(id, GL_INFO_LOG_LENGTH, length);
21 }
22 static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
23 {
24 return gl->GetProgramInfoLog(id, length, returnedLength, reinterpret _cast<GLchar*>(ptr));
25 }
26 };
27
28 struct ShaderInfoLog {
29 static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GL int* length)
30 {
31 gl->GetShaderiv(id, GL_INFO_LOG_LENGTH, length);
32 }
33 static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
34 {
35 gl->GetShaderInfoLog(id, length, returnedLength, reinterpret_cast<GL char*>(ptr));
36 }
37 };
38
39 struct TranslatedShaderSourceANGLE {
40 static void LengthFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GL int* length)
41 {
42 gl->GetShaderiv(id, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, length );
43 }
44 static void LogFunction(gpu::gles2::GLES2Interface* gl, GLuint id, GLint length, GLint* returnedLength, LChar* ptr)
45 {
46 gl->GetTranslatedShaderSourceANGLE(id, length, returnedLength, reint erpret_cast<GLchar*>(ptr));
47 }
48 };
49
50 GLStringQuery(gpu::gles2::GLES2Interface* gl) : m_gl(gl) {}
51
52 template<class Traits>
53 WTF::String Run(GLuint id) {
54 GLint length = 0;
55 Traits::LengthFunction(m_gl, id, &length);
56 if (!length)
57 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
58 LChar* logPtr;
59 RefPtr<WTF::StringImpl> nameImpl = WTF::StringImpl::createUninitialized( length, logPtr);
esprehn 2016/03/28 21:44:15 ditto, don't write WTF::
60 GLsizei returnedLength = 0;
61 Traits::LogFunction(m_gl, id, length, &returnedLength, logPtr);
62 // The returnedLength excludes the null terminator. If this check wasn't
63 // true, then we'd need to tell the returned String the real length.
64 DCHECK_EQ(returnedLength + 1, length);
65 return String(nameImpl.release());
66 }
67
68 private:
69 gpu::gles2::GLES2Interface* m_gl;
70 };
71
72 } // namespace blink
73 #endif // GLStringQuery_h
OLDNEW
« 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