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

Side by Side Diff: ui/gl/gl_implementation_win.cc

Issue 1064163002: Add ANGLE platform tracing methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « ui/gl/angle_platform_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <vector> 5 #include <vector>
6 6
7 #include "base/at_exit.h" 7 #include "base/at_exit.h"
8 #include "base/base_paths.h" 8 #include "base/base_paths.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 if (!library) { 54 if (!library) {
55 library = base::LoadNativeLibrary(module_path.Append(name), NULL); 55 library = base::LoadNativeLibrary(module_path.Append(name), NULL);
56 if (!library) { 56 if (!library) {
57 DVLOG(1) << name << " not found."; 57 DVLOG(1) << name << " not found.";
58 return false; 58 return false;
59 } 59 }
60 } 60 }
61 return true; 61 return true;
62 } 62 }
63 63
64 const unsigned char* AngleGetTraceCategoryEnabledFlag(const char* name) {
65 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name);
66 }
67
68 void AngleAddTraceEvent(char phase,
69 const unsigned char* category_group_enabled,
70 const char* name,
71 unsigned long long id,
72 int num_args,
73 const char** arg_names,
74 const unsigned char* arg_types,
75 const unsigned long long* arg_values,
76 unsigned char flags) {
77 TRACE_EVENT_API_ADD_TRACE_EVENT(phase,
78 category_group_enabled,
79 name,
80 id,
81 num_args,
82 arg_names,
83 arg_types,
84 arg_values,
85 NULL,
86 flags);
87 }
88
89 typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
90 typedef void (*AddTraceEventFunc)(char phase,
91 const unsigned char* categoryGroupEnabled,
92 const char* name,
93 unsigned long long id,
94 int numArgs,
95 const char** argNames,
96 const unsigned char* argTypes,
97 const unsigned long long* argValues,
98 unsigned char flags);
99 typedef void (__stdcall *SetTraceFunctionPointersFunc)(
100 GetCategoryEnabledFlagFunc get_category_enabled_flag,
101 AddTraceEventFunc add_trace_event_func);
102
103 // TODO(jmadill): Apply to all platforms eventually 64 // TODO(jmadill): Apply to all platforms eventually
104 base::LazyInstance<ANGLEPlatformImpl> g_angle_platform_impl = 65 base::LazyInstance<ANGLEPlatformImpl> g_angle_platform_impl =
105 LAZY_INSTANCE_INITIALIZER; 66 LAZY_INSTANCE_INITIALIZER;
106 67
107 ANGLEPlatformShutdownFunc g_angle_platform_shutdown = nullptr; 68 ANGLEPlatformShutdownFunc g_angle_platform_shutdown = nullptr;
108 69
109 } // namespace 70 } // namespace
110 71
111 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) { 72 void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) {
112 impls->push_back(kGLImplementationEGLGLES2); 73 impls->push_back(kGLImplementationEGLGLES2);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 return false; 167 return false;
207 } 168 }
208 169
209 #if defined(ENABLE_SWIFTSHADER) 170 #if defined(ENABLE_SWIFTSHADER)
210 if (using_swift_shader) { 171 if (using_swift_shader) {
211 SetupSoftwareRenderer(gles_library); 172 SetupSoftwareRenderer(gles_library);
212 } 173 }
213 #endif 174 #endif
214 175
215 if (!using_swift_shader) { 176 if (!using_swift_shader) {
216 // TODO(jmadill): remove when platform impl supports tracing
217 SetTraceFunctionPointersFunc set_trace_function_pointers =
218 reinterpret_cast<SetTraceFunctionPointersFunc>(
219 base::GetFunctionPointerFromNativeLibrary(
220 gles_library, "SetTraceFunctionPointers"));
221 if (set_trace_function_pointers) {
222 set_trace_function_pointers(&AngleGetTraceCategoryEnabledFlag,
223 &AngleAddTraceEvent);
224 }
225
226 // Init ANGLE platform here, before we call GetPlatformDisplay(). 177 // Init ANGLE platform here, before we call GetPlatformDisplay().
227 // TODO(jmadill): Apply to all platforms eventually 178 // TODO(jmadill): Apply to all platforms eventually
228 ANGLEPlatformInitializeFunc angle_platform_init = 179 ANGLEPlatformInitializeFunc angle_platform_init =
229 reinterpret_cast<ANGLEPlatformInitializeFunc>( 180 reinterpret_cast<ANGLEPlatformInitializeFunc>(
230 base::GetFunctionPointerFromNativeLibrary( 181 base::GetFunctionPointerFromNativeLibrary(
231 gles_library, 182 gles_library,
232 "ANGLEPlatformInitialize")); 183 "ANGLEPlatformInitialize"));
233 if (angle_platform_init) { 184 if (angle_platform_init) {
234 angle_platform_init(&g_angle_platform_impl.Get()); 185 angle_platform_init(&g_angle_platform_impl.Get());
235 186
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 case kGLImplementationDesktopGL: 344 case kGLImplementationDesktopGL:
394 return GetGLWindowSystemBindingInfoWGL(info); 345 return GetGLWindowSystemBindingInfoWGL(info);
395 case kGLImplementationEGLGLES2: 346 case kGLImplementationEGLGLES2:
396 return GetGLWindowSystemBindingInfoEGL(info); 347 return GetGLWindowSystemBindingInfoEGL(info);
397 default: 348 default:
398 return false; 349 return false;
399 } 350 }
400 } 351 }
401 352
402 } // namespace gfx 353 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gl/angle_platform_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698