| /* |
| * Copyright 2012 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef path_utils_DEFINED |
| #define path_utils_DEFINED |
| |
| class SkFILEWStream; |
| class SkPath; |
| |
| namespace sk_tools { |
| // These utilities help write paths to a .cpp file in a compileable form. |
| // To use call them in the order: |
| // dump_path_prefix - once per program invocation |
| // dump_path - once for each path of interest |
| // dump_path_suffix - once per program invocation |
| // |
| // The output system relies on a global current path ID and assumes that |
| // only one set of aggregation arrays will be written per program |
| // invocation. These utilities are not thread safe. |
| |
| // Write of the headers needed to compile the resulting .cpp file |
| void dump_path_prefix(SkFILEWStream* pathStream); |
| |
| // Write out a single path in the form: |
| // static const int numPts# = ...; |
| // SkPoint pts#[] = { ... }; |
| // static const int numVerbs# = ...; |
| // uint8_t verbs#[] = { ... }; |
| // Where # is a globally unique identifier |
| void dump_path(SkFILEWStream* pathStream, const SkPath& path); |
| |
| // Write out structures to aggregate info about the written paths: |
| // int numPaths = ...; |
| // int sizes[] = { |
| // numPts#, numVerbs#, |
| // ... |
| // }; |
| // const SkPoint* points[] = { pts#, ... }; |
| // const uint8_t* verbs[] = { verbs#, ... }; |
| void dump_path_suffix(SkFILEWStream* pathStream); |
| } |
| |
| #endif |