<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: libPNG Tutorial: Loading PNG files from streams</title>
	<atom:link href="http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/feed" rel="self" type="application/rss+xml" />
	<link>http://www.piko3d.com</link>
	<description>Straight forward little 3D engine</description>
	<lastBuildDate>Mon, 19 Dec 2011 12:36:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Wracky</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-3#comment-9061</link>
		<dc:creator>Wracky</dc:creator>
		<pubDate>Mon, 19 Dec 2011 12:36:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-9061</guid>
		<description>Hi Benson, and thanks for posting!

The pUInt is actually one of our own typedefs. It guarantees a 32 bit int, same as the PNG one.
I thought I&#039;d removed all our own types for the sake of this tutorial, but I guess this one slipped by, so thanks!

Regards,
Wracky.</description>
		<content:encoded><![CDATA[<p>Hi Benson, and thanks for posting!</p>
<p>The pUInt is actually one of our own typedefs. It guarantees a 32 bit int, same as the PNG one.<br />
I thought I&#8217;d removed all our own types for the sake of this tutorial, but I guess this one slipped by, so thanks!</p>
<p>Regards,<br />
Wracky.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Benson</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-3#comment-9012</link>
		<dc:creator>Benson</dc:creator>
		<pubDate>Sun, 18 Dec 2011 01:33:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-9012</guid>
		<description>Out of curiosity, should

        pUInt q = (imgHeight- i - 1) * stride;

actually be:

        png_uint_32 q = (imgHeight- i - 1) * stride;

?</description>
		<content:encoded><![CDATA[<p>Out of curiosity, should</p>
<p>        pUInt q = (imgHeight- i &#8211; 1) * stride;</p>
<p>actually be:</p>
<p>        png_uint_32 q = (imgHeight- i &#8211; 1) * stride;</p>
<p>?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Arena</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-7092</link>
		<dc:creator>Chris Arena</dc:creator>
		<pubDate>Sat, 03 Sep 2011 16:26:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-7092</guid>
		<description>Thanks for the tutorial!!

BTW, you don&#039;t have to check for non-NULL before doing:

   delete [] rowPtrs;
or 
   delete ptr;

The delete operator accepts NULL gracefully.

Cheers!!</description>
		<content:encoded><![CDATA[<p>Thanks for the tutorial!!</p>
<p>BTW, you don&#8217;t have to check for non-NULL before doing:</p>
<p>   delete [] rowPtrs;<br />
or<br />
   delete ptr;</p>
<p>The delete operator accepts NULL gracefully.</p>
<p>Cheers!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ash McConnell</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-5519</link>
		<dc:creator>Ash McConnell</dc:creator>
		<pubDate>Mon, 25 Apr 2011 19:52:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-5519</guid>
		<description>Thanks for the tutorial, it helped a lot.  I had a problem with mirrored and flipped images.</description>
		<content:encoded><![CDATA[<p>Thanks for the tutorial, it helped a lot.  I had a problem with mirrored and flipped images.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-3732</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Wed, 09 Feb 2011 16:09:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-3732</guid>
		<description>Very nice, thank you very much.  Saved me at least a week of tinkering!</description>
		<content:encoded><![CDATA[<p>Very nice, thank you very much.  Saved me at least a week of tinkering!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-3471</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Tue, 25 Jan 2011 11:33:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-3471</guid>
		<description>Awesome tutorial... thanks for the effort. Much appreciated.</description>
		<content:encoded><![CDATA[<p>Awesome tutorial&#8230; thanks for the effort. Much appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wracky</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-3081</link>
		<dc:creator>Wracky</dc:creator>
		<pubDate>Wed, 05 Jan 2011 17:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-3081</guid>
		<description>Cool, thanks :D I&#039;ve added your explanation to the tutorial.</description>
		<content:encoded><![CDATA[<p>Cool, thanks <img src='http://www.piko3d.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  I&#8217;ve added your explanation to the tutorial.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mario</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-3074</link>
		<dc:creator>Mario</dc:creator>
		<pubDate>Tue, 04 Jan 2011 23:08:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-3074</guid>
		<description>Old image file formats (tga, bmp...) by default stores the data bottom up because of very old displays of the time, that raster bottom up.
As Guest saids, OpenGL uses bottom up to be consistent with 3d coordinates (small UV coordinate, small axis position)</description>
		<content:encoded><![CDATA[<p>Old image file formats (tga, bmp&#8230;) by default stores the data bottom up because of very old displays of the time, that raster bottom up.<br />
As Guest saids, OpenGL uses bottom up to be consistent with 3d coordinates (small UV coordinate, small axis position)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wracky</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-2322</link>
		<dc:creator>Wracky</dc:creator>
		<pubDate>Wed, 13 Oct 2010 07:53:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-2322</guid>
		<description>Hi Ferneu!

Thanks for Commenting. As you already concluded, there are no reset functions.
I haven&#039;t looked into the libPNG code itself though... but the functions provided indeed suggest that the infoPtr etc are only to be used once.

You could look into the LibPNG source to find out what&#039;s exactly in the infoPtr.
See if it is safe to just reset it and find out what values would be appropriate.

That&#039;s all I know really ;-)</description>
		<content:encoded><![CDATA[<p>Hi Ferneu!</p>
<p>Thanks for Commenting. As you already concluded, there are no reset functions.<br />
I haven&#8217;t looked into the libPNG code itself though&#8230; but the functions provided indeed suggest that the infoPtr etc are only to be used once.</p>
<p>You could look into the LibPNG source to find out what&#8217;s exactly in the infoPtr.<br />
See if it is safe to just reset it and find out what values would be appropriate.</p>
<p>That&#8217;s all I know really <img src='http://www.piko3d.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ferneu</title>
		<link>http://www.piko3d.com/tutorials/libpng-tutorial-loading-png-files-from-streams/comment-page-2#comment-2311</link>
		<dc:creator>Ferneu</dc:creator>
		<pubDate>Mon, 11 Oct 2010 21:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.piko3d.com/?page_id=68#comment-2311</guid>
		<description>by the way, the PNG docs are not clear so I&#039;ll ask here: is it possible/safe to reuse the pngPtr and the infoPtr? A certain png API that was used to &quot;initialize&quot; the infoPtr is deprecated (and I don&#039;t really know if it was safe using it on the first place). And I have not found how to &quot;reset&quot; the requested transformations eighter. Perhaps they are not supposed to be reused, that is why there is no API for reseting them...

Oh well...</description>
		<content:encoded><![CDATA[<p>by the way, the PNG docs are not clear so I&#8217;ll ask here: is it possible/safe to reuse the pngPtr and the infoPtr? A certain png API that was used to &#8220;initialize&#8221; the infoPtr is deprecated (and I don&#8217;t really know if it was safe using it on the first place). And I have not found how to &#8220;reset&#8221; the requested transformations eighter. Perhaps they are not supposed to be reused, that is why there is no API for reseting them&#8230;</p>
<p>Oh well&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

