Giter Site home page Giter Site logo

svgren's Introduction

svgren

releases

ci status

codecov.io

SVG renderer library in C++.

image sample

svgren uses svgdom to read the SVG file and AGG to render graphics.

Installation and Tutorials

Read WiKi for installation instructions and tutorials.

Projects using svgren

svgren's People

Contributors

igagis avatar jaimeivancervantes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

svgren's Issues

White square with masks and use

Hello,

We found a similar issue as before (white rectangle image) with masks. My hunch would be the special node <use [...]></use> but I'm not sure.

I'm attaching the non-working SVG and an updated version of the same SVG that works.

caltrain-non-working.svg

<?xml version="1.0" encoding="UTF-8"?>
<svg width="68px" height="68px" viewBox="0 0 68 68" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
    <title>Page 1</title>
    <desc>Created with Sketch.</desc>
    <defs>
        <polygon id="path-1" points="34.00945 -0.0001 0 -0.0001 0 68.0009 34.00945 68.0009 68.0189 68.0009 68.0189 -0.0001"></polygon>
    </defs>
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g>
            <mask id="mask-2" fill="white">
                <use xlink:href="#path-1"></use>
            </mask>
            <g id="Clip-2"></g>
            <path d="M40.4039,1.9929 C42.9709,1.9929 45.2869,2.2649 47.4009,2.7449 C43.2899,0.9799 38.7639,-0.0001 34.0089,-0.0001 C15.2359,-0.0001 -0.0001,15.2369 -0.0001,34.0039 C-0.0001,42.4059 3.0609,50.0939 8.1189,56.0279 C4.9529,50.5279 4.2229,43.1359 5.8389,34.8209 C9.3269,16.8639 20.8309,1.9929 40.4039,1.9929 M59.6469,11.6829 C61.7139,15.6969 62.4359,20.8359 61.7519,26.9309 L61.6979,26.9309 L61.5019,28.0819 L43.8189,28.0819 C44.8989,21.7639 43.8959,15.9559 37.8689,15.9559 C29.4399,15.9559 26.5569,28.9289 25.4119,34.8209 C24.2009,41.0759 22.5029,51.6929 31.1089,51.6929 C36.5839,51.6929 39.7979,47.2219 41.7189,41.3059 L59.2119,41.3059 C54.7749,56.7649 42.5559,66.0199 28.2359,66.0199 C25.1629,66.0199 22.4079,65.6469 19.9539,64.9569 C24.2399,66.9059 28.9959,68.0009 34.0089,68.0009 C52.7829,68.0009 68.0189,52.7699 68.0189,34.0039 C68.0189,25.4619 64.8559,17.6579 59.6469,11.6829" id="Fill-1" fill="#000000" mask="url(#mask-2)"></path>
        </g>
    </g>
</svg>

caltrain-working.svg

<?xml version="1.0" encoding="UTF-8"?>
<svg width="68px" height="68px" viewBox="0 0 68 68" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs><mask id="mask">
    <polygon fill="#000000" points="34.00945 -0.0001 0 -0.0001 0 68.0009 34.00945 68.0009 68.0189 68.0009 68.0189 -0.0001"></polygon>
    <path fill="#ffffff" d="M40.4039,1.9929 C42.9709,1.9929 45.2869,2.2649 47.4009,2.7449 C43.2899,0.9799 38.7639,-0.0001 34.0089,-0.0001 C15.2359,-0.0001 -0.0001,15.2369 -0.0001,34.0039 C-0.0001,42.4059 3.0609,50.0939 8.1189,56.0279 C4.9529,50.5279 4.2229,43.1359 5.8389,34.8209 C9.3269,16.8639 20.8309,1.9929 40.4039,1.9929 M59.6469,11.6829 C61.7139,15.6969 62.4359,20.8359 61.7519,26.9309 L61.6979,26.9309 L61.5019,28.0819 L43.8189,28.0819 C44.8989,21.7639 43.8959,15.9559 37.8689,15.9559 C29.4399,15.9559 26.5569,28.9289 25.4119,34.8209 C24.2009,41.0759 22.5029,51.6929 31.1089,51.6929 C36.5839,51.6929 39.7979,47.2219 41.7189,41.3059 L59.2119,41.3059 C54.7749,56.7649 42.5559,66.0199 28.2359,66.0199 C25.1629,66.0199 22.4079,65.6469 19.9539,64.9569 C24.2399,66.9059 28.9959,68.0009 34.0089,68.0009 C52.7829,68.0009 68.0189,52.7699 68.0189,34.0039 C68.0189,25.4619 64.8559,17.6579 59.6469,11.6829"></path>
  </mask></defs>

  <rect width="100%" height="100%" mask="url(#mask)"/>
</svg>

Specifying DPI doesn't always work

Hi again :)

I am trying to specify another DPI than 96 (tried 960 for all these example files) to svgren::render, but the resulting image seems to become the same anyways. I use parameters 0 for width and height. Here is a test file (the same snake picture I have submitted before)
test.zip

Here is another file that behaves differently: The size of the image changes with DPI change, but the actual rendering is in the upper left corner and still the same size.
test2.zip

I do have some files on which the DPI change seems to work, such as this:
test3.zip

Add build instructions

Hi! I can't figure out how to build it from sources under Linux. AFAIU, you are using your own build system, which is not very useful.

tiger.svg not rendering correctly

Hello, I was able to render camera.svg and other 3 simple svgs correctly using the example on tests/render/main.cpp but tiger.svg is failing to render properly:

Here's my result when rendering the file camera.svg:
camera

And here's my result when rendering the file tiger.svg:
tiger

I use the exact same code for both, the only thing that I changed was the name of the file. I wonder if this is just happening to me, or if you also are seeing this issue too?

Initial white or black transparent surface makes a difference

In my case I render SVG images which are not fully trancparent in some parts. These images are draw in my mfc application onto other images/backgrounds.
I found ot that it makes a difference if I fill the background with 0x00000000 or 0x00FFFFFF.
I got the best results with a transparent grey background of 0x00AFAFAF.
It would help me a lot to have the filling colour as parameter (with default argument) of the renderer method.
For now I have modified the original source to fix my Problem:

	for(auto& c : ret){
// #ifdef M_SVGREN_WHITE_BACKGROUND
// 		c = 0xffffffff;
// #else
// 		c = 0;
// #endif
		c = 0x00AFAFAF;
	}

This would also help to get rid of the M_SVGREN_WHITE_BACKGROUND define.

update to svgdom 0.3.4

While svgdom 0.3.4 has support for 'enable-background' property and some additional filter elements too, it would be nice if svgren could use them.
In the attached image you can see at least one problem spot.
capture

Render bugs

Hi there!
Still enjoying this excellent library )
But it's time to notice that our stylish sport car has some significant render artifacts on the hood and bumpers.
I suppose they appear due to a bug, because as far as I can remember, about a month ago the car had no those problems. Certainly, it had other ones but the specular spots on the hood were a bit more soft. They had no such sharp edges.
Hope you can fix it easily.

car_from_test

Masked images are not rendered correctly

I have an SVG that looks like this:

<svg xmlns="http://www.w3.org/2000/svg" width="57.12901" height="57.53997" viewBox="0 0 57.12901 57.53997">
    <defs>
        <mask id="mask">
            <circle cy="37.45" cx="36.972" r="28.563" fill="#ffffff" transform="translate(-8.40599 -8.47303)"/>
            <path d="M28.616 28.17h.8c5.4 0 6.84-2.8 6.96-4.92h4.6v28.4h-5.6V32.09h-6.76v-3.92z" fill="#000000" transform="translate(-8.40599 -8.47303)"/>
        </mask>
    </defs>

    <rect width="100%" height="100%" mask="url(#mask)"/>
</svg>

but once it renders, I only get a black rectangle? It seems like the mask is ignored completely.

Some paths elements don't display in rendered image

It's me again :) I hope you're not getting too tired of me :O

One of the SVGs I posted in my previous issue has some very small path objects that don't appear on the rendering. When rendered from Inkscape it looks like this:
test2_inkscape

This is the rendering from svgren:
test

I tried to scale up the rendering (see my previous issue ;) to see if the detail would show up, but no luck.

Here is the SVG file again:
test2.zip

Here's an example of one of the paths that doesn't appear:
<path style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 149.375,231.737 c 7.1603,-2.352 14.6432,-5.3254 21.875,-6.875 l -21.875,6.875 c 7.1603,-2.352 14.6432,-5.3254 21.875,-6.875" id="path731" />

Library is unusable in debug mode

After Update to latest version of svgren I permanently get an assertion in svgdom while loading-
Simple example:
menue-new.zip

Everything rendererd fine in my last libraries but I wanted to try out your last performance optimisations.
In release Version everything looks fine and it seems to be a lot faster too.
assertion after update

Is there a way to disable these assertions?

Linker failure VS 2017

I'm trying to use this library in VS 2017 and am getting the following linker error in a very plain Win32 application. Are there any solution or project settings I'm missing?

auto dom = svgdom::load(papki::FSFile("C:\Users\scott\Documents\TEMP\airport-15.svg")); unsigned width = 0; // 0 - Use width from SVG document unsigned height = 0; // 0 - Use height from SVG document auto img = svgren::render(*dom, width, height); // 96 dpi by default // img is a std::vector<std::uint32_t> holding array of RGBA values.

Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol "public: bool _thiscall pugi::xmlattribute::empty(void)const " (?empty@xmlattribute@pugi@@QBENXZ) referenced in function "public: class std::uniqueptr<struct svgdom::Element,struct std::defaultdelete > _thiscall `anonymous namespace'::Parser::parseNode(class pugi::xmlnode const &)" (?parseNode@Parser@?A0x031f2505@@QAE?AV?$uniqueptr@UElement@svgdom@@U?$defaultdelete@UElement@svgdom@@@std@@@std@@ABVxml_node@pugi@@@z) SvgRender C:\Users\scott\documents\visual studio 2017\Projects\SvgRender\SvgRender\libsvgdom.lib(dom.obj)

Version of related project downloaded from NuGet:
cairo_static v1.15.4.1
libpapki v1.0.39
libpng v1.6.28.1
libpng.redist v1.6.28.1
libsvgdom v0.2.32
libsvgren v0.4.12
libutki v1.1.7
pixman_static v0.32.4.4
pugixml v1.8.0
zlib v1.2.8.8
zlib.v120.windesktop.msvcstl.dyn.rt-dyn v1.2.8.8
zlib.v140.windesktop.msvcstl.dyn.rt-dyn v1.2.8.8

SVG Animation support

I just know if supports svg animation and export from specific frame. This is a cool feature.

request for UWP build

Hi Ivan!
Building process for windows desktop platform is pretty simple (thanks for nuget packages)
It would be nice if you could provide us ability to build this amazing library for Universal Windows Platform too. Or any advise how to compile it for UWP with minimal efforts.
Many thanks.

compile svgren with static runtime

Hi there!
I try to compile svgren.lib (or dll) for Win32 with statically linked runtime (/MT flag instead of /MD ).
VSVS 2015 give me a bunch of linking error (see bellow)
Steps to reproduce:

  1. Update to the latest svgren (v. 0.4.43)
  2. Open msvs_solution.sln
  3. Choose v140_Release configuration and x86 platform
  4. Right click on libsvgren -> Properties -> C/C++-> Code Generation -> Runtime Library-> Multi-threaded (/MT)
  5. Rebuild

There are lot of complains about unresolved externals symbols and mismatch detected:

build.log.txt

Properties -> Reference Packages shows that we have choice between static and dynamic for cairo and pixman libs.

Further investigation shows that in despite of these settings all libs are 'multi-threaded dll' linked (they all contain -MD flag inside, instead of -MT).

Earlier I saw in some previous versions of svgren, pugixml package had two selectable options (static / dynamic)

It would be nice if we could choose what runtime to use too.
(I personally prefer static linking)

Many thanks for your work!

Drawing problem

I have a drawing problem with svgren. The Lines are missing.

This is the output of svgren:
symboldrawproblem

And this is the way it is supposed to look (like firefox renders it):
correctsymbol

This is the korosponding SVG file:
interface-ethernet.zip

I hope you can fix this problem.

Sinve the new version transparency is gone

Hi,
I just wanted to update all the libraries to the latest version ....
Transparency seems to be gone ....
2017-03-01 15_08_45-clipboard

I think I need to stay on the "old" version until this is fixed.

After some investigation I thing it is your change: "msvs: define white background macro for debug builds "
In my case I need transparency in DEBUG as well.

Why not just passing the desired background colour as a parameter with default zero?

Different rendering after update

Hi again :)

After updating to the latest version from 0.4.9 the rendering is different.

Here is what the rendering of an SVG lookes like from Inkscape and in version 0.4.9:
orig

This is what it looks like now after updating:
test

It's the same SVG file I submitted in a previous issue, but here it is again:
test.zip

broken parsing on android

after upgrading to 0.4.38 my android app stopped working.
Small investigation shows that libsvgren cannot read svg files generated on windows platforms (with 0d 0a line breaks)
an example: z_tiger1.zip
I see migration from pugixml to mikroxml.
What's the reason?
Pugixml works correctly with any line styles.
Moreover, simple time measurements show that pugixml is a bit faster on my testing android devices.
It would be nice to provide us ability to switch to another xml parser.

Background shape is missing

Hi,
I haven't had issuses since a quite long time now. Just now I discovered an image where the Background is not drawn. The same image rendered in firefox has the background shape.

Rendered by svgren
svgren

Rendered by firefox
firefox

I attached the original SVG file.
FW5-24V.zip

It would be great if you could fix this.
I'am using the latest versions of your library on Windows with Visual Studio 2015

renderer doesn't support default fill black

Any black element is not rendered correctly. Comparing two svg files shows that with colour black no style element is exported. The file without style renderes correctly in firefox.

SVG-File with error:
button-add.zip

See screenshot of the compare tool:
comparison

svgdom 0.3.6

Hi there!
I've noticed that despite existing svgdom version 0.3.6 you're still using 0.3.3 in your ms vs projects: libsvgren and render_test (see corresponding packages.config for each projects). Is it ok?

VS2015 build problem

First: thank you. A very interesting piece of work.

Second: Is there a stable branch? Loading the existing solution file into VS2015 updated all nuget packages as expected. The build fails with the log below. Any help much appreciated.

1>------ Build started: Project: libsvgren, Configuration: v140_Debug x64 ------
1>  FilterApplyer.cpp
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2039: 'MaskElement': is not a member of 'svgdom'
1>  R:\src\test\svgren\msvs_solution\packages\libsvgdom.0.3.3\build\native\include\svgdom/Finder.hpp(9): note: see declaration of 'svgdom'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2143: syntax error: missing ',' before '&'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C3668: 'svgren::Renderer::visit': method with override specifier 'override' did not override any base class methods
1>..\..\src\svgren\FilterApplyer.cpp(348): warning C4311: 'type cast': pointer truncation from 'uint8_t *' to 'unsigned long'
1>..\..\src\svgren\FilterApplyer.cpp(348): warning C4302: 'type cast': truncation from 'uint8_t *' to 'unsigned long'
1>..\..\src\svgren\FilterApplyer.cpp(348): warning C4311: 'type cast': pointer truncation from 'uint8_t *const ' to 'unsigned long'
1>..\..\src\svgren\FilterApplyer.cpp(348): warning C4302: 'type cast': truncation from 'uint8_t *const ' to 'unsigned long'
1>  render.cpp
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2039: 'MaskElement': is not a member of 'svgdom'
1>  R:\src\test\svgren\msvs_solution\packages\libsvgdom.0.3.3\build\native\include\svgdom/Finder.hpp(9): note: see declaration of 'svgdom'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2143: syntax error: missing ',' before '&'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C3668: 'svgren::Renderer::visit': method with override specifier 'override' did not override any base class methods
1>..\..\src\svgren\render.cpp(30): error C2039: 'getDimensions': is not a member of 'svgdom::SvgElement'
1>  r:\src\test\svgren\msvs_solution\packages\libsvgdom.0.3.3\build\native\include\svgdom\elements/Structurals.hpp(47): note: see declaration of 'svgdom::SvgElement'
1>..\..\src\svgren\render.cpp(32): error C3536: 'wh': cannot be used before it is initialized
1>..\..\src\svgren\render.cpp(32): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(37): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(38): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(63): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(64): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(108): error C2109: subscript requires array or pointer type
1>..\..\src\svgren\render.cpp(108): error C2660: 'cairo_scale': function does not take 1 arguments
1>..\..\src\svgren\render.cpp(110): error C2109: subscript requires array or pointer type
1>  Renderer.cpp
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2039: 'MaskElement': is not a member of 'svgdom'
1>  R:\src\test\svgren\msvs_solution\packages\libsvgdom.0.3.3\build\native\include\svgdom/Finder.hpp(9): note: see declaration of 'svgdom'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2143: syntax error: missing ',' before '&'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C3668: 'svgren::Renderer::visit': method with override specifier 'override' did not override any base class methods
1>..\..\src\svgren\Renderer.cpp(5): fatal error C1083: Cannot open include file: 'svgdom/elements/CoordinateUnits.hpp': No such file or directory
1>  util.cpp
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2039: 'MaskElement': is not a member of 'svgdom'
1>  R:\src\test\svgren\msvs_solution\packages\libsvgdom.0.3.3\build\native\include\svgdom/Finder.hpp(9): note: see declaration of 'svgdom'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C2143: syntax error: missing ',' before '&'
1>r:\src\test\svgren\src\svgren\Renderer.hxx(121): error C3668: 'svgren::Renderer::visit': method with override specifier 'override' did not override any base class methods
1>  Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Also might be worth noting that loading into VS2017 failed to get the nuget packages. Very much a 3rd order problem so one for another time.

Render with Cairo

I'm new to svgren and cairo, following the basic tutorial.

After obtaining std::vector<uint32> by calling svgren::render(...), what should I do next with cairo to render the resulting data with a given cairo_surface_t *?

CMake support

Hi,

Would you, by any chance, have a CMake script to build your library? Or planned to make one eventually?

Thanks!

crash during render

Hi there!
I've updated to 0.4.42 because of performance issue on our nice sport car.
Greats improvements! Car is rendered about 20 times faster!!!
Then I tried other (previously hard-rendered) svgs and alas... some of them crash
machupicchu.zip
.
Could you please locate and fix a problem?
Thanks in advance!

can't process svg

Hi there!
Thanks for the great lib.
I'd like to use it in further but unfortunately had encountered a problem.
I've got a svg that can't be properly processed (see attachment).
I realize that that svg is pretty complicated but still want to get it rendered.
Rendering it on my PC takes about a minute and gives a memory corruption as a result.
(google chrome spits it out in a few seconds)
Could you please locate the problem and fix it?

Problems with rotation transform on groups

When a group has a rotation transform, the rotation seems to be applied wrong. Here is the actual image:
test2_real
And here is the rendering:
test2

Here is the SVG file used:
test2.zip

Thanks again for making this, it is great to have a good open-source SVG renderer!

<use> element not supported

The <use> element is not being rendered properly. I though that use was supported since the code allows element references by id. I tried to render the following example without success:

<svg width="80" height="80" xmlns="http://www.w3.org/2000/svg">
  <style>
    .classA {
      fill: red;
    }
  </style> 
  <defs>
    <g id="Port">
      <circle style="fill: inherit;" r="10"/>
    </g>
  </defs>
 
  <text y="15">black</text>
  <use x="50" y="10" href="#Port" />
  <text y="35">red</text>
  <use x="50" y="30" href="#Port" class="classA"/>
  <text y="55">blue</text>
  <use x="50" y="50" href="#Port" style="fill: blue;"/>
</svg>

It should look something like this:

screen shot 2017-07-20 at 8 56 49 am

This is what I get instead:

out

SVG Images with viewbox in percent are not rendered

Some SVG Images have a viewbox in percent and they don't get rendered at all. See attached example.
I have a simple solution for this:

m_pImage = svgdom::load(papki::FSFile((LPCSTR)a_rFilename));
if (m_pImage != nullptr)
{
	if (m_pImage->width.isPercent() )
	{
		int lViewboxWidth = m_pImage->viewBox[2] - m_pImage->viewBox[0];
		int lViewboxHeight = m_pImage->viewBox[3] - m_pImage->viewBox[1];

		if ((lViewboxWidth > 0) && (lViewboxHeight > 0))
		{
			m_pImage->width.value = lViewboxWidth;
			m_pImage->width.unit = svgdom::Length::Unit_e::PX;
			m_pImage->height.value = lViewboxHeight;
			m_pImage->height.unit = svgdom::Length::Unit_e::PX;
		}
	}
	std::vector<std::uint32_t> lImage = svgren::render(*m_pImage, m_OrigWidth, m_OrigHeight);
}

In my opinion it would make sense to integrate this into the renderer method.
button-add-viewbox.zip

I don't need swap Red and Blue

In my case I create a mfc Bitmap with transparency from the rendered bytes. I found ot that I need to swap red and blue to get the correct colors. When I looked at the source code of the renderer method I found out that swap of red and blue is done in the renderer method as well.
In my case I wouldn't need the internal swap of red & blu at all. Now I need to to do it a second time to revert the internal swap.
Perhaps an aditional parameter of the renderer method could save the double swap times.

lib can not render svg without explicitly set size

A simple svg from wiki can not be rendered by svgren, while others tools spit it out easily.
A brief investigation shows that that svg doesn't contain explicit definition of size.
I do realize that we should know the size of memory buffer before render and nevertheless want to find a way to render such simple svg by default. Can you take a short glance on this and produce an idea?
test.svg.zip

Crash on android less than 5.0

Hi there!
I'm trying to get it working on android 4.0.4 and have troubles with unimplemented 'rand', 'srand' and some other functions.
The problem looks similar to this:
https://stackoverflow.com/questions/27338318/cannot-load-library-reloc-library1285-cannot-locate-rand
It works fine on devices with api >= 21 and crashes on older ones.

When I change platformVersion to 19 in build.gradle, I get an error: undefined reference to 'rand'..
Is it possible to use SvgRen on android with api less than 21?

Thanks in advance for any ideas and thoughts )

Error in renderer gradientGetFx

Hi, thanks for this library.

I found an issue with a svg file that causes crash in gradientGetFx method.

It seems "caster.radial" is not null so it passes the if-test but then radial points to deallocated memory so it crashes.

I cannot share the svg-file here but I can email it if you want.

Strange rendering of path element

I am adding SVG support to a little hobby game I have. I made a test picture with Inkscape and tried to load it. Here are the results:
real
render

The body of the character in the in-game screenshot is rendered as a triangle. Here is the SVG file used:
test.zip

I it matters I am using 64 bit Windows 7, the latest svgren from GIT, libsvgdom.0.2.25 and cairo_static.1.15.4.1.

And also, a big thank you for making this library.

Librariy dependency for svgren is not up to date

Trying to link svgren (min version from NuGet Package is 0.2.35) with svgdom library version 0.2.58 creates a few link errors:
libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PathElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPathElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PathElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPathElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::RectElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABURectElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::RectElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABURectElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::CircleElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUCircleElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::CircleElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUCircleElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::EllipseElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUEllipseElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::EllipseElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUEllipseElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::LineElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABULineElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::LineElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABULineElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PolylineElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPolylineElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PolylineElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPolylineElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PolygonElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPolygonElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::PolygonElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUPolygonElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::GElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUGElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::GElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUGElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::SvgElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUSvgElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::SvgElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUSvgElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::SymbolElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUSymbolElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::SymbolElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUSymbolElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::UseElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUUseElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::UseElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUUseElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::DefsElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUDefsElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::DefsElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUDefsElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::Gradient::StopElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUStopElement@Gradient@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::Gradient::StopElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUStopElement@Gradient@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::LinearGradientElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABULinearGradientElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::LinearGradientElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABULinearGradientElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::RadialGradientElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABURadialGradientElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::RadialGradientElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABURadialGradientElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::FilterElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUFilterElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::FilterElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUFilterElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::FeGaussianBlurElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUFeGaussianBlurElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::FeGaussianBlurElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUFeGaussianBlurElement@2@@Z) libsvgren.lib(render.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::ImageElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUImageElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall svgdom::ConstVisitor::visit(struct svgdom::ImageElement const &)" (?visit@ConstVisitor@svgdom@@UAEXABUImageElement@2@@Z) libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: class std::array<float,2> __thiscall svgdom::FeGaussianBlurElement::getStdDeviation(void)const " (?getStdDeviation@FeGaussianBlurElement@svgdom@@QBE?AV?$array@M$01@std@@XZ) referenced in function "public: virtual void __thiscallprivate: void __thiscall svgren::Renderer::applyFilter(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)'::`2'::FilterApplyer::visit(struct svgdom::FeGaussianBlurElement const &)" (?visit@FilterApplyer@?1??applyFilter@Renderer@svgren@@AAEXABV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z@UAEXABUFeGaussianBlurElement@svgdom@@@z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "protected: void __thiscall svgdom::ConstVisitor::relayAccept(struct svgdom::Container const &)" (?relayAccept@ConstVisitor@svgdom@@IAEXABUContainer@2@@z) referenced in function "public: void __thiscall svgren::Renderer::relayAccept(struct svgdom::Container const &)" (?relayAccept@Renderer@svgren@@QAEXABUContainer@svgdom@@@z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: struct svgdom::StyleValue const * __thiscall svgdom::StyleStack::getStyleProperty(enum svgdom::StyleProperty_e)const " (?getStyleProperty@StyleStack@svgdom@@QBEPBUStyleValue@2@W4StyleProperty_e@2@@z) referenced in function "public: __thiscall svgren::Renderer::SetTempCairoContext::SetTempCairoContext(class svgren::Renderer &)" (??0SetTempCairoContext@Renderer@svgren@@QAE@AAV12@@z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: __thiscall svgdom::StyleStack::Push::Push(class svgdom::StyleStack &,struct svgdom::Styleable const &)" (??0Push@StyleStack@svgdom@@QAE@AAV12@ABUStyleable@2@@z) referenced in function "private: void __thiscall svgren::Renderer::renderSvgElement(struct svgdom::SvgElement const &,struct svgdom::Length const &,struct svgdom::Length const &)" (?renderSvgElement@Renderer@svgren@@AAEXABUSvgElement@svgdom@@ABULength@4@1@Z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: __thiscall svgdom::StyleStack::Push::~Push(void)" (??1Push@StyleStack@svgdom@@QAE@XZ) referenced in function "private: void __thiscall svgren::Renderer::renderSvgElement(struct svgdom::SvgElement const &,struct svgdom::Length const &,struct svgdom::Length const &)" (?renderSvgElement@Renderer@svgren@@AAEXABUSvgElement@svgdom@@ABULength@4@1@Z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: __thiscall svgdom::Finder::Finder(struct svgdom::Element const &)" (??0Finder@svgdom@@QAE@ABUElement@1@@z) referenced in function "public: __thiscall svgren::Renderer::Renderer(struct _cairo *,float,class std::array<float,2>,struct svgdom::SvgElement const &)" (??0Renderer@svgren@@QAE@PAU_cairo@@mv?$array@M$01@std@@ABUSvgElement@svgdom@@@z)
libsvgren.lib(Renderer.obj) : error LNK2019: unresolved external symbol "public: struct svgdom::Finder::ElementInfo const * __thiscall svgdom::Finder::findById(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)const " (?findById@Finder@svgdom@@QBEPBUElementInfo@12@ABV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) referenced in function "private: void __thiscall svgren::Renderer::setGradient(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?setGradient@Renderer@svgren@@AAEXABV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z)

`

Nuget for svgren on VS2012 results in compilation errors

I am new to all of these things and wanted to get my hands on SVG rendering and displaying.
I have VS2012 and tried to get svgren and its dependencies using VS2012 Manage Nuget Packages.
When I tried to include the files as described in the example, I run into all sort of issues. Would really appreciate if i can be provided with any pointers...

Here are the errors

1>------ Build started: Project: MyDiagramTest, Configuration: Debug Win32 ------
1> StdAfx.cpp
1> MyDiagram.cpp
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(10): error C2332: 'class' : missing tag name
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(10): error C2011: '' : 'enum' type redefinition
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\include\shlwapi.h(2278) : see declaration of ''
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(10): error C2143: syntax error : missing ',' before '...'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(10): error C2998: 'std::unique_ptr utki::makeUnique' : cannot be a template definition
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2332: 'class' : missing tag name
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2011: '' : 'enum' type redefinition
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\include\shlwapi.h(2278) : see declaration of ''
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2143: syntax error : missing ',' before '...'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2065: 'Args' : undeclared identifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2988: unrecognizable template declaration/definition
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(32): error C2059: syntax error : '...'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki/Unique.hpp(38): error C2143: syntax error : missing ';' before '}'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(28): error C2146: syntax error : missing ',' before identifier 'noexcept'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(28): error C2065: 'noexcept' : undeclared identifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(31): error C2059: syntax error : ';'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(31): error C2238: unexpected token(s) preceding ';'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(32): error C2059: syntax error : ';'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(32): error C2238: unexpected token(s) preceding ';'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(42): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(53): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(39): error C2780: '_OutTy *std::move(_InIt,_InIt,_OutTy (&)[_OutSize])' : expects 3 arguments - 1 provided
1> D:\Program Files\vs2012\VC\include\xutility(2556) : see declaration of 'std::move'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(39): error C2780: '_OutIt std::move(_InIt,_InIt,_OutIt)' : expects 3 arguments - 1 provided
1> D:\Program Files\vs2012\VC\include\xutility(2543) : see declaration of 'std::move'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(39): error C2893: Failed to specialize function template 'remove_reference<_Ty>::type &&std::move(_Ty &&) throw()'
1> With the following template arguments:
1> 'std::function &'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(40): error C2542: 'utki::ScopeExit::f' : class object has no constructor for initialization
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(43): error C2451: conditional expression of type 'std::function' is illegal
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(44): error C2064: term does not evaluate to a function taking 0 arguments
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(54): error C2780: '_OutTy *std::move(_InIt,_InIt,_OutTy (&)[_OutSize])' : expects 3 arguments - 1 provided
1> D:\Program Files\vs2012\VC\include\xutility(2556) : see declaration of 'std::move'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(54): error C2780: '_OutIt std::move(_InIt,_InIt,_OutIt)' : expects 3 arguments - 1 provided
1> D:\Program Files\vs2012\VC\include\xutility(2543) : see declaration of 'std::move'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(54): error C2893: Failed to specialize function template 'remove_reference<_Ty>::type &&std::move(_Ty &&) throw()'
1> With the following template arguments:
1> 'std::function &'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(55): error C2678: binary '=' : no operator found which takes a left-hand operand of type 'std::function' (or there is no acceptable conversion)
1> D:\Program Files\vs2012\VC\include\functional(689): could be 'std::function<_Fty> &std::function<_Fty>::operator =(_Fx &&)'
1> with
1> [
1> _Fx=nullptr
1> ]
1> D:\Program Files\vs2012\VC\include\functional(641): or 'std::function<_Fty> &std::function<_Fty>::operator =(const std::function<_Fty> &)'
1> D:\Program Files\vs2012\VC\include\functional(651): or 'std::function<_Fty> &std::function<_Fty>::operator =(std::function<_Fty> &)'
1> D:\Program Files\vs2012\VC\include\functional(678): or 'std::function<_Fty> &std::function<_Fty>::operator =(std::function<_Fty> &&)'
1> D:\Program Files\vs2012\VC\include\functional(704): or 'std::function<_Fty> &std::function<_Fty>::operator =(std::nullptr_t)'
1> while trying to match the argument list '(std::function, nullptr)'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(55): error C2582: 'operator =' function is unavailable in 'std::function'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(56): error C3536: 'ret': cannot be used before it is initialized
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(56): error C2663: 'std::function<_Fty>::function' : 8 overloads have no legal conversion for 'this' pointer
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(73): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(104): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(119): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(132): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(151): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(164): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(175): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(175): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(175): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(192): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(192): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(192): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(193): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(196): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(199): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(202): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(216): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(216): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(216): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(217): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(220): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(223): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(226): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(229): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(232): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(235): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(238): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(252): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(252): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(252): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(253): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(256): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(258): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(272): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(272): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(272): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(273): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(276): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(278): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(280): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(282): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(296): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(296): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(296): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(297): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(300): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(302): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(304): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(306): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(308): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(310): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(312): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(314): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(329): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(329): error C2039: 'uint16_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(329): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(346): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(346): error C2039: 'uint32_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(346): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(347): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(349): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(351): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(353): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(367): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(367): error C2039: 'uint64_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(367): error C3646: 'noexcept' : unknown override specifier
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(368): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(370): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(372): error C2039: 'uint8_t' : is not a member of 'std'
1>d:\MyProject\packages\libutki.1.0.32\build\native\include\utki\util.hpp(372): fatal error C1003: error count exceeds 100; stopping compilation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.