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 void logError(const char* errorMessage
) override
;
26 void logWarning(const char* warningMessage
) override
;
27 void logInfo(const char* infoMessage
) override
;
28 const unsigned char* getTraceCategoryEnabledFlag(
29 const char* category_group
) override
;
30 TraceEventHandle
addTraceEvent(char phase
,
31 const unsigned char* category_group_enabled
,
33 unsigned long long id
,
36 const char** arg_names
,
37 const unsigned char* arg_types
,
38 const unsigned long long* arg_values
,
39 unsigned char flags
) override
;
40 void updateTraceEventDuration(const unsigned char* category_group_enabled
,
42 TraceEventHandle handle
) override
;
43 void histogramCustomCounts(const char* name
,
47 int bucket_count
) override
;
48 void histogramEnumeration(const char* name
,
50 int boundary_value
) override
;
51 void histogramSparse(const char* name
, int sample
) override
;
52 void histogramBoolean(const char* name
, bool sample
) override
;
55 DISALLOW_COPY_AND_ASSIGN(ANGLEPlatformImpl
);
60 #endif // UI_GL_ANGLE_PLATFORM_IMPL_H_