OLD | NEW |
1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/gpu/gpu_info_collector.h" | 5 #include "chrome/gpu/gpu_info_collector.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
8 #include "base/string_piece.h" | 8 #include "base/string_piece.h" |
9 #include "base/sys_string_conversions.h" | 9 #include "base/sys_string_conversions.h" |
10 #include "app/gfx/gl/gl_bindings.h" | 10 #include "app/gfx/gl/gl_bindings.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 return s_found; | 74 return s_found; |
75 } | 75 } |
76 | 76 |
77 // Gets the numeric HLSL version. | 77 // Gets the numeric HLSL version. |
78 // You pass it the current GL major version, to give it a hint where to look. | 78 // You pass it the current GL major version, to give it a hint where to look. |
79 static int GetShaderNumericVersion(int gl_major_version) { | 79 static int GetShaderNumericVersion(int gl_major_version) { |
80 int gl_hlsl_major = 0, gl_hlsl_minor = 0; | 80 int gl_hlsl_major = 0, gl_hlsl_minor = 0; |
81 int shader_version = 0; | 81 int shader_version = 0; |
82 | 82 |
83 if (gl_major_version == 1) { | 83 if (gl_major_version == 1) { |
84 char *gl_extensions_string = (char*)glGetString(GL_EXTENSIONS); | 84 const char *gl_extensions_string = (const char*)glGetString(GL_EXTENSIONS); |
85 if (strstr(gl_extensions_string, "GL_ARB_shading_language_100")) { | 85 if (gl_extensions_string && |
| 86 strstr(gl_extensions_string, "GL_ARB_shading_language_100")) { |
86 gl_hlsl_major = 1; | 87 gl_hlsl_major = 1; |
87 gl_hlsl_minor = 0; | 88 gl_hlsl_minor = 0; |
88 } | 89 } |
89 } else if (gl_major_version > 1) { | 90 } else if (gl_major_version > 1) { |
90 char *glsl_version_string = (char*)glGetString(GL_SHADING_LANGUAGE_VERSION); | 91 const char *glsl_version_string = |
| 92 (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION); |
91 if (glsl_version_string) | 93 if (glsl_version_string) |
92 sscanf(glsl_version_string, "%u.%u", &gl_hlsl_major, &gl_hlsl_minor); | 94 sscanf(glsl_version_string, "%u.%u", &gl_hlsl_major, &gl_hlsl_minor); |
93 } | 95 } |
94 | 96 |
95 shader_version = (gl_hlsl_major << 8) | (gl_hlsl_minor & 0xFF); | 97 shader_version = (gl_hlsl_major << 8) | (gl_hlsl_minor & 0xFF); |
96 return shader_version; | 98 return shader_version; |
97 } | 99 } |
98 | 100 |
99 | 101 |
100 static std::wstring CStringToWString(const char *s) { | 102 static std::wstring CStringToWString(const char *s) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 shader_version, | 164 shader_version, |
163 gl_version, | 165 gl_version, |
164 false); | 166 false); |
165 | 167 |
166 gpu_info->SetProgress(GPUInfo::kComplete); | 168 gpu_info->SetProgress(GPUInfo::kComplete); |
167 | 169 |
168 return true; | 170 return true; |
169 } | 171 } |
170 | 172 |
171 } // namespace gpu_info_collector | 173 } // namespace gpu_info_collector |
OLD | NEW |