blob: a6bc8578c456990ff030d6ffd97e6521a0d2a484 [file] [log] [blame]
Mikko Mononen0c9863f2013-09-10 23:45:12 +02001//
2// Copyright (c) 2009 Mikko Mononen memon@inside.org
3//
4// This software is provided 'as-is', without any express or implied
5// warranty. In no event will the authors be held liable for any damages
6// arising from the use of this software.
7// Permission is granted to anyone to use this software for any purpose,
8// including commercial applications, and to alter it and redistribute it
9// freely, subject to the following restrictions:
10// 1. The origin of this software must not be misrepresented; you must not
11// claim that you wrote the original software. If you use this software
12// in a product, an acknowledgment in the product documentation would be
13// appreciated but is not required.
14// 2. Altered source versions must be plainly marked as such, and must not be
15// misrepresented as being the original software.
16// 3. This notice may not be removed or altered from any source distribution.
17//
18
19// Version 1.0 - Initial version
20// Version 1.1 - Fixed path parsing, implemented curves, implemented circle.
21
22#ifndef NANOSVG_H
23#define NANOSVG_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29/* Example Usage:
30 // Load
31 struct SVGPath* plist;
32 plist = svgParseFromFile("test.svg.");
33 // Use...
34 for (SVGPath* it = plist; it; it = it->next)
35 ...
36 // Delete
37 svgDelete(plist);
38*/
39
40struct SVGPath
41{
42 float* pts;
43 int npts;
44 unsigned int fillColor;
45 unsigned int strokeColor;
46 float strokeWidth;
47 char hasFill;
48 char hasStroke;
49 char closed;
50 struct SVGPath* next;
51};
52
53// Parses SVG file from a file, returns linked list of paths.
54struct SVGPath* svgParseFromFile(const char* filename);
55
56// Parses SVG file from a null terminated string, returns linked list of paths.
57struct SVGPath* svgParse(char* input);
58
59// Deletes list of paths.
60void svgDelete(struct SVGPath* plist);
61
62#ifdef __cplusplus
63};
64#endif
65
66#endif // NANOSVG_H