158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/* 258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Copyright 2013 Google Inc. 358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * 458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * found in the LICENSE file. 658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#ifndef skpdiff_util_DEFINED 958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#define skpdiff_util_DEFINED 1058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkString.h" 1258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkTArray.h" 1358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#if SK_SUPPORT_OPENCL 1558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#if SK_BUILD_FOR_MAC 1658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger# include <OpenCL/cl.h> 1758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#else 1858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger# include <CL/cl.h> 1958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#endif 2058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 2158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/** 2258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Converts an OpenCL error number into the string of its enumeration name. 2358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @param err The OpenCL error number 2458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @return The string of the name of the error; "UNKOWN" if the error number is invalid 2558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 2658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerconst char* cl_error_to_string(cl_int err); 2758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#endif 2858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 2958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/** 3058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Get a positive monotonic real-time measure of the amount of seconds since some undefined epoch. 3158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Maximum precision is the goal of this routine. 3258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @return Amount of time in seconds since some epoch 3358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 3458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerdouble get_seconds(); 3558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 3658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/** 3758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Get file entries of the given directory. 3858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @param path A path to a directory to enumerate 3958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @param entries A vector to return the results into 4058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @return True on success, false otherwise 4158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 4258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerbool get_directory(const char path[], SkTArray<SkString>* entries); 4358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/** 4558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Gets the files that match the specified pattern in sorted order. 4658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @param globPattern The pattern to use. Patterns must be valid paths, optionally with wildcards (*) 4758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @param entries An array to return the results into 4858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * @return True on success, false otherwise 4958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 5058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerbool glob_files(const char globPattern[], SkTArray<SkString>* entries); 5158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 52e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger/** 53e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger * Gets the absolute version of the given path. 54e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger * @param path The absolute or relative path to expand 55e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger * @return The absolute path of the given path on success, or an empty string on failure. 56e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger */ 57e27eefc4844477cee5d32f51ab45ff62020cdb36Derek SollenbergerSkString get_absolute_path(const SkString& path); 58e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger 5958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 6058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#endif 61