1 // 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 26 extern "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 40 struct 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. 54 struct SVGPath* svgParseFromFile(const char* filename); 55 56 // Parses SVG file from a null terminated string, returns linked list of paths. 57 struct SVGPath* svgParse(char* input); 58 59 // Deletes list of paths. 60 void svgDelete(struct SVGPath* plist); 61 62 #ifdef __cplusplus 63 }; 64 #endif 65 66 #endif // NANOSVG_H 67