11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc.
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#ifndef SkTrace_DEFINED
101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define SkTrace_DEFINED
111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#ifdef SK_USER_TRACE_INCLUDE_FILE
131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* If your system embeds skia and has complex event logging, in
151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   src/config/SkUserConfig.h:
161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger     - define the three SK_TRACE_EVENT macros to map to your system's
171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger       equivalents,
181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger     - define the name of the include file in SK_USER_TRACE_INCLUDE_FILE
191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   A trivial example is given in src/utils/SkDebugTrace.h.
201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   All arguments are const char*. Skia typically passes the name of
221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   the object and function (and sometimes region of interest within
231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   the function) separated by double colons for 'event'.
241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   SK_TRACE_EVENT1 and SK_TRACE_EVENT2 take one or two arbitrary
261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   name-value pairs that you also want to log. SkStringPrintf() is useful
271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   for formatting these values.
281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger   For example:
301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    SK_TRACE_EVENT0("GrContext::createAndLockTexture");
311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    SK_TRACE_EVENT1("GrDefaultPathRenderer::onDrawPath::renderPasses",
321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                    "verts", SkStringPrintf("%i", vert - base).c_str());
331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger*/
341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    #include SK_USER_TRACE_INCLUDE_FILE
361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#else
381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    #define SK_TRACE_EVENT0(event)
401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    #define SK_TRACE_EVENT1(event, name1, value1)
411cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    #define SK_TRACE_EVENT2(event, name1, value1, name2, value2)
421cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
431cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif
441cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
451cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif
461cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
471cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
48