https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&user=SunshineMcfadden&feedformat=atomInkscape Wiki - User contributions [en]2024-03-29T12:12:45ZUser contributionsMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=Features_of_Inkscape&diff=70861Features of Inkscape2011-07-15T01:23:15Z<p>SunshineMcfadden: </p>
<hr />
<div>Here is an overview of the features that are available in Inkscape.<br />
<br />
See the [[roadmap]] for an outline of planned features, as well as [https://blueprints.launchpad.net/inkscape Launchpad] for detailed ideas for improving Inkscape.<br />
<br />
== Current Features ==<br />
<br />
=== Object creation ===<br />
<br />
* Drawing: pencil tool (freehand drawing with simple paths), pen tool (creating Bezier curves and straight lines), calligraphy tool (freehand drawing using filled paths representing calligraphic strokes)<br />
* Shape tools: rectangles (may have rounded corners), ellipses (includes circles, arcs, segments), stars/polygons (can be rounded and/or randomized), spirals<br />
* Text tool (multiline text, full on-canvas editing)<br />
* Embedded bitmaps (with a command to create and embed bitmaps of selected objects)<br />
* Clones ("live" linked copies of objects), including a tool to create patterns and arrangements of clones<br />
<br />
=== Object manipulation ===<br />
<br />
* Affine transformations (moving, scaling, rotating, skewing), both interactively and by specifying exact numeric values<br />
* Z-order operations<br />
* Grouping objects, with a way to "select in group" without ungrouping, or "enter the group" making it a temporary layer<br />
* Layers, with a way to <span class="plainlinks">[http://www.mycaal.com/ <span style="color:black;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;">loan modification</span>] lock and/or hide individual layers, rearrange them, etc; layers can form a hierarchical tree<br />
* Copying and pasting objects<br />
* Alignment and distribution commands<br />
<br />
=== Fill and stroke ===<br />
<br />
* Color selector (RGB, HSV, color wheel)<br />
* Color picker tool<br />
* Copy/paste style<br />
* A gradient editor capable of multi-stop gradients<br />
* Pattern fills (bitmap/vectors)<br />
* Dashed strokes, with many predefined dash patterns<br />
* Path markers (e.g. arrowheads)<br />
<br />
=== Operations on paths ===<br />
<br />
* Node editing: moving nodes and Bezier handles, node alignment and distribution, etc.<br />
* Converting to path (for text objects or shapes), including converting stroke to path<br />
* Boolean operations<br />
* Path simplification, with variable threshold<br />
* Path insetting and outsetting, including dynamic and linked offset objects<br />
* Bitmap tracing (both color and b/w)<br />
<br />
=== Text support ===<br />
<br />
* Multi-line text<br />
* Uses any installed outline fonts, including right-to-left scripts<br />
* Kerning, letterspacing, linespacing adjustments<br />
* Text on path (both text and path remain editable)<br />
* Text in shape (fill shape following stroke)<br />
<br />
=== Rendering ===<br />
<br />
* Fully anti-aliased display<br />
* Alpha transparency support for display and PNG export<br />
* Complete "as you drag" rendering of objects during interactive transformations<br />
<br />
=== Misc ===<br />
<br />
* Live watching and editing the document tree in the XML editor<br />
* PNG and PostScript export<br />
* Command line options for export and conversions<br />
* Perfectly compliant SVG format file generation and editing<br />
<br />
:''The above lifted from the'' [http://en.wikipedia.org/wiki/Inkscape Wikipedia].<br />
<br />
<br />
[[Category: About Inkscape]]</div>SunshineMcfaddenhttps://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&diff=70855Compiling Inkscape on Windows 32-bit2011-07-15T01:22:59Z<p>SunshineMcfadden: </p>
<hr />
<div>Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible.<br />
<br />
==Setting up the build environment==<br />
<br />
To develop Inkscape, you will need the following things:<br />
<br />
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]<br />
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe<br />
* [http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download TDM-MinGW 4.5.1]<br />
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]<br />
* Launchpad account<br />
<br />
===Install the compiler===<br />
Run the TDM-MinGW installer and install it in a path that doesn't contain spaces, preferably C:\mingw. If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing <tt>README-tdm-gcc.txt</tt> (right click My Computer -> Properties -> Advanced -> Environment Variables). During the installation, enable the "openmp support" checkbox from the components list or choose to install all packages (option "TDM-GCC recommended, All Packages" in the TDM-GCC 4.5.1 installer).<br />
<br />
If you have an older version of TDM-GCC (older than 4.5.1?), copy the file "\lib\gcc\mingw32\bin\libgomp-1.dll" to "\bin\libgomp-1.dll" (paths relative to your installation directory).<br />
<br />
===Create your Launchpad account===<br />
If you do not have an SSH public/private key pair to identify yourself:<br />
*run the program puttygen.exe to generate an SSH key<br />
*save both its parts.<br />
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select "Add Key" and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.<br />
<br />
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).<br />
<br />
C:\> bzr whoami "''Your Name'' <''your_real_email@example.com''>"<br />
C:\> bzr launchpad-login ''your_launchpad_account''<br />
<br />
===Install the developer libraries===<br />
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the <tt>--lightweight</tt> parameter.<br />
<br />
C:\> bzr checkout --lightweight lp:inkscape-devlibs devlibs<br />
<br />
To update devlibs:<br />
<br />
C:\devlibs> bzr update<br />
<br />
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].<br />
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].<br />
<br />
== Obtaining Inkscape source code ==<br />
<br />
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.<br />
<br />
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.<br />
<br />
C:\src\inkscape> bzr init-repo --rich-root<br />
C:\src\inkscape> bzr checkout lp:inkscape trunk<br />
<br />
If you don't want to create any branches, you can skip the shared repository step.<br />
<br />
C:\src> bzr checkout lp:inkscape<br />
<br />
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.<br />
<br />
== Building Inkscape ==<br />
<br />
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session.<br />
<br />
C:\src\inkscape\trunk> mingwenv<br />
<br />
Now compile the build tool. Try the second command if the first one fails.<br />
<br />
C:\src\inkscape\trunk> g++ buildtool.cpp -o btool<br />
C:\src\inkscape\trunk> g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool<br />
<br />
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time.<br />
<br />
C:\src\inkscape\trunk> btool<br />
<br />
Once everything is done, there should be an <tt>inkscape</tt> directory that contains the Inkscape executable and libraries needed to run it.<br />
<br />
== Rebuilding ==<br />
<br />
If you have only changed a few files and want to rebuild, delete the <tt>inkscape</tt> directory and run <tt>btool</tt> again.<br />
<br />
To rebuild from scratch, execute the following sequence of commands:<br />
C:\src\inkscape\trunk> btool clean<br />
C:\src\inkscape\trunk> btool<br />
<br />
== Dealing With Build Errors ==<br />
Feel free to add any questions or answers you have in here;<br />
<br />
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?<br />
<br />
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.<br />
<br />
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.<br />
<br />
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.<br />
<br />
You may see something like this in the command window;<br />
=============================<br />
## Target : link : link objects and library to create executable<br />
---- task : rc<br />
============ cmd ============<br />
windres -o build/inkres.o --include-dir=src src/inkscape.rc<br />
=============================<br />
---- task : link<br />
This will likely be followed by an error message. This means you were at the ''link'' stage<br />
<br />
Now simply type;<br />
...>btool ''stage''<br />
Or in this case<br />
...>btool link<br />
And the build will continue from there.<br />
<br />
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name="''target''"') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. <br />
<br />
<br />
<br />
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.<br />
<br />
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.<br />
<br />
<br />
<br />
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.<br />
<br />
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.<br />
<br />
<br />
<br />
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?<br />
<br />
src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&, int&, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'<br />
<br />
Same error for line 2297 as well.<br />
<br />
=== For more information ===<br />
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html<br />
and old files mey be<br />
http://inkscape.modevia.com/win32libs/<br />
== Creating an installer ==<br />
<br />
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .<br />
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.<br />
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)<br />
<br />
== Note about Unicode ==<br />
<br />
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are <span class="plainlinks">[http://www.mycaal.com/ <span style="color:black;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;">loan modification</span>] always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.<br />
<br />
=See also=<br />
*[[Compiling Inkscape]]<br />
<br />
[[Category:Developer Documentation]]</div>SunshineMcfadden