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 currentTime() override
;
24 double monotonicallyIncreasingTime() override
;
25 const unsigned char* getTraceCategoryEnabledFlag(
26 const char* category_group
) override
;
27 TraceEventHandle
addTraceEvent(char phase
,
28 const unsigned char* category_group_enabled
,
30 unsigned long long id
,
33 const char** arg_names
,
34 const unsigned char* arg_types
,
35 const unsigned long long* arg_values
,
36 unsigned char flags
) override
;
37 void updateTraceEventDuration(const unsigned char* category_group_enabled
,
39 TraceEventHandle handle
) override
;
40 void histogramCustomCounts(const char* name
,
44 int bucket_count
) override
;
45 void histogramEnumeration(const char* name
,
47 int boundary_value
) override
;
48 void histogramSparse(const char* name
, int sample
) override
;
49 void histogramBoolean(const char* name
, bool sample
) override
;
52 DISALLOW_COPY_AND_ASSIGN(ANGLEPlatformImpl
);
57 #endif // UI_GL_ANGLE_PLATFORM_IMPL_H_