1 // Copyright 2015 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.
5 #ifndef UI_GL_ANGLE_PLATFORM_IMPL_H_
6 #define UI_GL_ANGLE_PLATFORM_IMPL_H_
8 // Implements the ANGLE platform interface, for functionality like
9 // histograms and trace profiling.
11 #include "base/macros.h"
12 #include "third_party/angle/include/platform/Platform.h"
16 // Derives the base ANGLE platform and provides implementations
17 class ANGLEPlatformImpl
: public angle::Platform
{
20 ~ANGLEPlatformImpl() override
;
23 double monotonicallyIncreasingTime() override
;
24 const unsigned char* getTraceCategoryEnabledFlag(
25 const char* category_group
) override
;
26 TraceEventHandle
addTraceEvent(char phase
,
27 const unsigned char* category_group_enabled
,
29 unsigned long long id
,
32 const char** arg_names
,
33 const unsigned char* arg_types
,
34 const unsigned long long* arg_values
,
35 unsigned char flags
) override
;
36 void updateTraceEventDuration(const unsigned char* category_group_enabled
,
38 TraceEventHandle handle
) override
;
39 void histogramCustomCounts(const char* name
,
43 int bucket_count
) override
;
44 void histogramEnumeration(const char* name
,
46 int boundary_value
) override
;
47 void histogramSparse(const char* name
, int sample
) override
;
50 DISALLOW_COPY_AND_ASSIGN(ANGLEPlatformImpl
);
55 #endif // UI_GL_ANGLE_PLATFORM_IMPL_H_