1be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org/*
2be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Copyright 2013 Google Inc.
3be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org *
4be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be
5be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * found in the LICENSE file.
6be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org */
7be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
8be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org#ifndef skpdiff_util_DEFINED
9be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org#define skpdiff_util_DEFINED
10be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
11be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org#include "SkString.h"
12be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org#include "SkTArray.h"
13be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
14d658568a8260b858411e975b1a6011d2a496cc6fzachr@google.com#if SK_SUPPORT_OPENCL
1535f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com#if SK_BUILD_FOR_MAC
1635f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com#   include <OpenCL/cl.h>
1735f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com#else
1835f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com#   include <CL/cl.h>
1935f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com#endif
2035f02fb9c9f548656e1cb2cc66d3ed20006384f8zachr@google.com
21be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org/**
22be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Converts an OpenCL error number into the string of its enumeration name.
23be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @param  err The OpenCL error number
24be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @return The string of the name of the error; "UNKOWN" if the error number is invalid
25be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org */
26be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.orgconst char* cl_error_to_string(cl_int err);
27d658568a8260b858411e975b1a6011d2a496cc6fzachr@google.com#endif
28be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
29be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org/**
30be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Get a positive monotonic real-time measure of the amount of seconds since some undefined epoch.
31be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Maximum precision is the goal of this routine.
32be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @return Amount of time in seconds since some epoch
33be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org */
34be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.orgdouble get_seconds();
35be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
36be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org/**
37be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * Get file entries of the given directory.
38be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @param  path    A path to a directory to enumerate
39be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @param  entries A vector to return the results into
40be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org * @return         True on success, false otherwise
41be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org */
42be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.orgbool get_directory(const char path[], SkTArray<SkString>* entries);
43be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
4418bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com/**
4518bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com * Gets the files that match the specified pattern in sorted order.
4618bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com * @param  globPattern The pattern to use. Patterns must be valid paths, optionally with wildcards (*)
4718bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com * @param  entries     An array to return the results into
4818bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com * @return             True on success, false otherwise
4918bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com */
5018bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.combool glob_files(const char globPattern[], SkTArray<SkString>* entries);
5118bbba9a9ae3c9c434ac2159bac0b4296ae7f213zachr@google.com
52a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com/**
53a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com * Gets the absolute version of the given path.
54a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com * @param  path The absolute or relative path to expand
55a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com * @return      The absolute path of the given path on success, or an empty string on failure.
56a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com */
57a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.comSkString get_absolute_path(const SkString& path);
58a479aa1366734f80360a00e3020f5b148cb3c060zachr@google.com
59be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org
60be19b9ef9a46df7d7308f273f6f7efa905cc7d72commit-bot@chromium.org#endif
61