<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Exploits of Plouj &#187; svn</title>
	<atom:link href="http://www.plouj.com/blog/tag/svn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.plouj.com/blog</link>
	<description>A blog by Michael Ploujnikov</description>
	<lastBuildDate>Wed, 01 Sep 2010 17:05:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Google Earth trip video capture in GNU/Linux with Yukon/Seom</title>
		<link>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/</link>
		<comments>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:21:55 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[capture]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[googleearth]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[seom]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[yukon]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=385</guid>
		<description><![CDATA[This is documentation of how I used Yukon and Seom to video capture a Google Earth trip for a recent video project in Fedora 10. I used the official installation guide as a starting point. Compile the Seom library I choose to install both Seom and Yukon in a custom prefix /home/plouj/yukon, rather than the [...]]]></description>
			<content:encoded><![CDATA[<p>This is documentation of how I used <a href="https://devel.neopsis.com/projects/yukon/">Yukon and Seom</a> to video capture a <a href="http://earth.google.com/">Google Earth</a> <a href="http://earth.google.com/tour.html#v=4">trip</a> for a recent video project in <a href="http://fedoraproject.org/">Fedora</a> 10. I used the <a href="https://devel.neopsis.com/projects/yukon/wiki/HowTo/Install">official installation guide</a> as a starting point.</p>
<h2>Compile the Seom library</h2>
<p>I choose to install both Seom and Yukon in a custom prefix <em>/home/plouj/yukon</em>, rather than the system wide <em>/usr</em> or <em>/usr/local</em>.</p>
<pre>
$ svn co https://devel.neopsis.com/svn/seom/branches/packetized-stream seom
$ cd seom
$ ./configure --prefix=/home/plouj/yukon --arch="x86" --cflags="-W -Wall" &#038;&#038; \
make CC="gcc -m32" &#038;&#038; make install LIBDIR="lib"
</pre>
<p>Note that &#8220;&#8211;arch=&#8221;x86&#8243; and &#8220;-m32&#8243; are only necessary for me because my operating system is 64bit and I need 32bit versions of seom and yukon (to work with 32bit Google Earth).</p>
<h2>Compile and install Yukon</h2>
<pre>
$ svn co https://devel.neopsis.com/svn/yukon/branches/rewrite yukon
$ cd yukon
$ ./configure --prefix=/home/plouj/yukon/ --libdir="lib" --arch="x86" &#038;&#038; \
make CC="gcc -L/home/plouj/yukon/lib -I/home/plouj/yukon/include -m32" &#038;&#038; \
make install
</pre>
<h2>Install Google Earth for Linux</h2>
<p>Obviously get it here: <a href="http://earth.google.com/">http://earth.google.com/</a></p>
<h2>Modify the Google Earth startup script</h2>
<p>Since I chose <em>/home/plouj/bin/</em> as the &#8220;Binary path&#8221; for Google Earth I was editing <em>/home/plouj/bin/googleearth</em>. All I had to do was to add yukon/seom library and executable paths at the end of the script:</p>
<pre>
...
cd "${GOOGLEEARTH_DATA_PATH}/"
LD_LIBRARY_PATH=/home/plouj/yukon/lib/:$LD_LIBRARY_PATH \
PATH=/home/plouj/yukon/bin:$PATH exec yukon "./googleearth-bin" "$@"
</pre>
<p>instead of the original:</p>
<pre>
cd "${GOOGLEEARTH_DATA_PATH}/"
exec "./googleearth-bin" "$@"
</pre>
<h2>Capture</h2>
<p>Finally, the <a href="https://devel.neopsis.com/projects/yukon/wiki/HowTo/Capture">capture</a> process is well documented on the Yukon website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/07/15/google-earth-trip-video-capture-in-gnulinux-with-yukonseom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO increase Blender&#8217;s memory cache limit for command line renders</title>
		<link>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/</link>
		<comments>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 03:23:37 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[render]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=308</guid>
		<description><![CDATA[Blender sequencer gives the ability to optimize rendering of repeated frames by keeping the first result in memory cache and re-using it. Depending on the project, it might be necessary to increase this limit beyond the default 32MB. If the limit is surpassed while rendering a single frame, Blender clears the cache before proceeding to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blender.org/">Blender</a> sequencer gives the ability to optimize rendering of repeated frames by keeping the first result in memory cache and re-using it. Depending on the project, it might be necessary to increase this limit beyond the default 32MB. If the limit is surpassed while rendering a single frame, Blender clears the cache before proceeding to the next frame and the re-renders everything from scratch.</p>
<p>Increasing the cache limit is easy to do in the UI:<br />
<img class="alignnone size-full wp-image-315" title="blender-cache-limit" src="http://www.plouj.com/blog/wp-content/uploads/2009/06/blender-cache-limit.png" alt="blender-cache-limit"/><br />
This setting is stored in the user&#8217;s preference file (<em>~/.B.blend</em> on Linux systems) and, therefore, applies to all projects. However, rendering from the command line requires using the <a href="http://wiki.blender.org/index.php/Doc:Manual/Render/Command_Line_Options">-b argument</a>, which explicitly ignores the user&#8217;s preference file. Apart from editing and re-compiling the Blender source code, I found only one way to increase the memory cache limit.</p>
<p>The trick is to use a Python script, like below, to change the user preferences before rendering the scene:</p>
<pre>import sys
import bpy

def main():
	bpy.config.sequenceMemCacheLimit=4096

if __name__ == '__main__':
	main()</pre>
<p>Add the script to the command line like this:</p>
<pre>./bin/blender -b sample-static-text.blend -P render_settings.py -a</pre>
<p>Note that the order of arguments matters because first we need to load the scene (with <em>-b</em>), then change settings through Pythons (using the <em>-P</em> option) and finally render the animation (with <em>-a</em>). Also, you need at least version <strong>2.49a</strong> of Blender for this to work.</p>
<p>For reference, here&#8217;s is the the source file which hardcodes the 32MB limit:</p>
<p><a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php/branches/blender2.5/blender/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp?annotate=17433&#038;root=bf-blender">intern/memutil/intern/MEM_CacheLimiterC-Api.cpp:</a></p>
<pre>...
static intptr_t &#038; get_max()
{
        static intptr_t m = 32*1024*1024;
        return m;
}
...</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/06/08/howto-increase-blenders-memory-cache-for-command-line-renders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO build DXX-Rebirth for Windows with MSYS/MinGW</title>
		<link>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/</link>
		<comments>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 00:07:32 +0000</pubDate>
		<dc:creator>plouj</dc:creator>
				<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[descent]]></category>
		<category><![CDATA[dxx-rebirth]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[mingw]]></category>
		<category><![CDATA[msys]]></category>
		<category><![CDATA[physfs]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scons]]></category>
		<category><![CDATA[sdl]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[toolchain]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.plouj.com/blog/?p=243</guid>
		<description><![CDATA[Introduction In this post I&#8217;ll document the steps I had to take to build DXX-Rebirth (a modernized Descent game engine) for Windows using MSYS and MinGW. MinGW, MSYS From  Pantokrator&#8217;s blog: install MinGW choose a lowercase install path: c:\mingw choose to download and install current version enable g++ (for physfs) install MSYS install msysDTK SDL [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In this post I&#8217;ll document the steps I had to take to build <a href="http://www.dxx-rebirth.com/">DXX-Rebirth</a> (a modernized <a href="http://en.wikipedia.org/wiki/Descent_(computer_game)">Descent</a> game engine) for Windows using <a href="http://www.mingw.org/wiki/msys">MSYS</a> and <a href="http://www.mingw.org/">MinGW</a>.</p>
<h2>MinGW, MSYS</h2>
<p>From  <a href="http://blog.pantokrator.net/2006/08/08/setting-up-msysmingw-build-system-for-compiling-sdlopengl-applications/">Pantokrator&#8217;s blog</a>:</p>
<ul>
<li>install <a href="http://prdownloads.sf.net/mingw/MinGW-5.0.2.exe">MinGW</a>
<ul>
<li>choose a lowercase install path: c:\mingw</li>
<li>choose to download and install current version</li>
<li>enable g++ (for physfs)</li>
</ul>
</li>
<li>install <a href="http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe">MSYS</a></li>
<li>install <a href="http://prdownloads.sf.net/mingw/msysDTK-1.0.1.exe">msysDTK</a></li>
</ul>
<h2>SDL and SDL_mixer</h2>
<p>Also from  <a href="http://blog.pantokrator.net/2006/08/08/setting-up-msysmingw-build-system-for-compiling-sdlopengl-applications/">Pantokrator&#8217;s blog</a>:</p>
<ul>
<li>download the <a href="http://www.libsdl.org/release/SDL-1.2.13.tar.gz">SDL</a> source</li>
<li>in the MSYS shell, compile it with</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<ul>
<li>download the <a href="http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.8.tar.gz">SDL_mixer</a> source and in a MSYS shell, build it with the same command:</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<h2>PhysicsFS</h2>
<ul>
<li>Download the <a href="http://icculus.org/physfs/downloads/physfs-1.1.0.tar.gz">physfs 1.1.0</a> source.</li>
</ul>
<ul>
<li>Compile with the same command again:</li>
</ul>
<pre>./configure --prefix=/mingw &amp;&amp; make &amp;&amp; make install</pre>
<h2>SCons and Python</h2>
<p>From <a href="http://globulation2.org/wiki/Mingw_compilation">Globulation2 MinGW instructions</a>:</p>
<ul>
<li> install <a href="http://www.python.org/ftp/python/2.6/python-2.6.msi">Python 2.6</a></li>
<li> install <a href="http://prdownloads.sourceforge.net/scons/scons-1.1.0.win32.exe">SCons</a></li>
<li> add:</li>
</ul>
<pre>PATH=$PATH:/c/Python26:/c/Python26/Scripts</pre>
<ul>
<li> to the end of <em>/etc/profile</em> in MSYS so that SCons can run from the MSYS shell.</li>
</ul>
<h2>Subversion</h2>
<ul>
<li>install <a href="http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi">TortoiseSVN</a></li>
</ul>
<h2>DXX-Rebirth</h2>
<ul>
<li>checkout DXX-Rebirth from <em>https://dxx-rebirth.svn.sourceforge.net/svnroot/dxx-rebirth</em></li>
<li>change the SConstruct script to call sdl-config as &#8216;sh sdl-config &#8216;:</li>
</ul>
<pre>...
Flags and stuff for all platforms...
env.ParseConfig('sh sdl-config --cflags')
env.ParseConfig('sh sdl-config --libs')
env.Append(CPPFLAGS = ['-Wall', '-funsigned-char'])
...</pre>
<ul>
<li>finally, in the MSYS shell, built with:</li>
</ul>
<pre>scons sdlmixer=1</pre>
<h2>Final Remarks</h2>
<p>I had trouble with the latest version of PhysicsFS (1.1.1) because it uses cmake. For some reason it failing to find some prerequisites in MSYS. I also had trouble with version 1.0.1 of PhysicsFS (this is the version the official <a style="font-weight: normal;" href="http://downloads.sourceforge.net/dxx-rebirth/d1x-rebirth_v0.55.1-win.zip">d1x-rebirth_v0.55.1-win.zip</a> is built with) because the built failed with the following error:</p>
<pre>warning: cannot find entry symbol _DllMainCRTStartup@12; defaulting to 00401000
...
undefined reference to WinMain@16</pre>
<p>If you notice any problems or mistakes in this post, please mention them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.plouj.com/blog/2009/03/07/howto-build-dxx-rebirth-for-windows-with-msysmingw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
