<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://horde3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fidora</id>
		<title>Horde3D Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://horde3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fidora"/>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Special:Contributions/Fidora"/>
		<updated>2026-04-05T19:08:25Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.3</generator>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Sound_Extension&amp;diff=499</id>
		<title>Sound Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Sound_Extension&amp;diff=499"/>
				<updated>2009-03-18T15:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=&lt;br /&gt;
The Sound Extension extends Horde3D with the capability of 3D positional audio with the help of OpenAL. It was designed to integrate as nicely as possible with Horde3D, therefore it lacks support for streaming resources. This means the whole audio file will be read and decoded all at once, which can be quite time consuming for larger files.&lt;br /&gt;
&lt;br /&gt;
The extension currently decodes ogg vorbis and wave audio files but decoders for more formats can quite easily be implemented. See the decoder.h file for documentation on how to implement more audio decoders.&lt;br /&gt;
&lt;br /&gt;
= Installation Windows =&lt;br /&gt;
To install the extension, copy the Extensions directory to the path where the Horde3D SDK resides.&lt;br /&gt;
In Visual Studio, add the extension, sample, ogg, vorbis and vorbisfile projects to the Horde3D solution. Then add the extension project to the project dependencies of the Horde3D Engine and the Horde3D Engine to the dependencies of the Sound Sample. After that, include 'Sound/Source/extension.h' in 'egExtensions.cpp' of the engine and add '#pragma comment( lib, &amp;quot;Extension_Sound.lib&amp;quot; )' to link against the sound extension.&lt;br /&gt;
Finally, add the following line to ExtensionManager::installExtensions to register the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
installExtension( Horde3DSound::getExtensionName, Horde3DSound::initExtension, Horde3DSound::releaseExtension );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The extension is then part of the Horde3D DLL and can be used with the Horde3DSound.h header file.&lt;br /&gt;
&lt;br /&gt;
= Using the extension =&lt;br /&gt;
To use the extension a sound device needs to be opened for playback, then a listener node needs to be created and activated. The activated listener node will act as the ears and all 3D sound calculations will be based on that node's position and orientation. Then you can start creating sound resources, attaching them to sound nodes and start playing the nodes.&lt;br /&gt;
&lt;br /&gt;
OpenAL will need to be installed to be able to run any applications using the Sound Extension.&lt;br /&gt;
&lt;br /&gt;
= Obtaining the extension =&lt;br /&gt;
The extension can either be downloaded [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_ExtSound_1.0.1.zip here] or from the community svn.&lt;br /&gt;
&lt;br /&gt;
= Changelog =&lt;br /&gt;
1.0.1&amp;amp;nbsp;- Adapted to Horde3D 1.0.0 Beta3&amp;lt;br /&amp;gt;&lt;br /&gt;
1.0&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;- Initial release&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{Extension_Summary|&lt;br /&gt;
name = Sound Extension|&lt;br /&gt;
screenshot = H3Dsound.jpg|&lt;br /&gt;
description = The Sound Extension extends Horde3D with the capability of 3D positional audio.|&lt;br /&gt;
version = 1.0.1|&lt;br /&gt;
horde3dversion = 1.0.0 Beta 3|&lt;br /&gt;
released = 2009-03-17|&lt;br /&gt;
author = Ulf Nilsson Tännström|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=494</id>
		<title>Community Branch</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=494"/>
				<updated>2009-01-31T15:48:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Community SVN Branch ==&lt;br /&gt;
&lt;br /&gt;
For a better integration of the community work we started a community SVN server branch. &lt;br /&gt;
&lt;br /&gt;
The new [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D repository] is provided by the  [http://mm-werkstatt.informatik.uni-augsburg.de University of Augsburg]&lt;br /&gt;
&lt;br /&gt;
To get informed about recent changes you can use the [http://cia.vc/stats/project/Horde3D CIA service].&lt;br /&gt;
&lt;br /&gt;
If you want to become part of the community and want to have write access, you can ask [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker] to create an account for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Of course there are some restrictions:'''&lt;br /&gt;
&lt;br /&gt;
You are not allowed to upload copyright protected files. You should commit only tested things and should not upload code that does not compile on your own development platform. If you are not sure if things you've developed are running on other platforms please post some details about your submission in the [http://horde3d.org/forums/viewforum.php?f=8 development section] on the [http://horde3d.org/forums/ forums], so other people get informed and can test it on their platforms.&lt;br /&gt;
&lt;br /&gt;
We can only accept code that is distributed under the LGPL license and assume that your submission is under that license.&lt;br /&gt;
&lt;br /&gt;
=== What's in ===&lt;br /&gt;
&lt;br /&gt;
Currently the community trunk branch contains nearly the same Horde3D version as the SF trunk branch. We will always try to keep the branches in sync, but since more people have write access to the community branch it may differ sometimes in some features that are not yet overtaken into the other branch.&lt;br /&gt;
Next to Horde3D itself, the community branch contains more language bindings, tools and non graphics related extensions. Currently there are a [[Sound Extension | Sound Extension]], a [http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ GameEngine Based on Components] and the [[Horde3D Scene Editor | Horde3D Scene Editor]].&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Filmstrip&amp;diff=480</id>
		<title>Template:Filmstrip</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Filmstrip&amp;diff=480"/>
				<updated>2009-01-27T16:02:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0 auto;&amp;quot; id=&amp;quot;dhtmlgoodies_slideshow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;galleryContainer&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;arrow_left&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/6/64/Arrow_left.gif&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;arrow_right&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/9/9c/Arrow_right.gif&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;theImages&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- Thumbnails --&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/a/a0/H3Dchicago.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/d/d5/H3Dknight.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=50&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/d/dd/H3Dalfred.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/1/1e/H3Dterrain.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/projects/ritchiegame/&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/a/ac/Cityrun.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/6/68/H3Deditor.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/projects/SheepMeUp&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/e/e0/SheepMeUp.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://www.stuckiegamez.co.uk/index.php?page=caffeine-weedunks&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/d/db/PliughtOfTheWeedunks.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://www.horde3d.org/wiki/index.php5?title=Sound_Extension&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/2/27/H3Dsound.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;!-- End thumbnails --&amp;gt;				&lt;br /&gt;
				&amp;lt;div id=&amp;quot;slideEnd&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Extensions&amp;diff=479</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Extensions&amp;diff=479"/>
				<updated>2009-01-27T16:00:50Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==List of all the available extensions for Horde3D==&lt;br /&gt;
&lt;br /&gt;
*[[Terrain Extension]]&lt;br /&gt;
*[[Sound Extension]]&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Sound_Extension&amp;diff=478</id>
		<title>Sound Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Sound_Extension&amp;diff=478"/>
				<updated>2009-01-27T16:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: New page: category: Extensions {| border=&amp;quot;0&amp;quot;  | {{ContentBlock|width=800|color=white |content= The Sound Extension extends Horde3D with the capability of 3D positional audio with the help of Ope...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=&lt;br /&gt;
The Sound Extension extends Horde3D with the capability of 3D positional audio with the help of OpenAL. It was designed to integrate as nicely as possible with Horde3D, therefore it comes with some limitations, such as the lack of streaming sound support. This means the whole audio file will be read and decoded all at once, which can be quite time consuming for larger files.&lt;br /&gt;
&lt;br /&gt;
The extension currently decodes ogg vorbis and wave audio files but decoders for more formats can quite easily be implemented. See the decoder.h file for documentation on how to implement more audio decoders.&lt;br /&gt;
&lt;br /&gt;
= Installation Windows =&lt;br /&gt;
To install the extension, copy the Extensions directory to the path where the Horde3D SDK resides.&lt;br /&gt;
&lt;br /&gt;
If your version of Horde3D SDK is &amp;lt;= 1.0.0 Beta 2 you will need to apply this patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- Bindings/C++/Horde3D.h	Sun Sep 14 21:50:46 2008&lt;br /&gt;
+++ Bindings/C++/Horde3D.h	Tue Dec 09 08:44:13 2008&lt;br /&gt;
@@ -791,11 +791,11 @@&lt;br /&gt;
 			res	- handle to the resource&lt;br /&gt;
 			&lt;br /&gt;
 		Returns:&lt;br /&gt;
 			type of the resource&lt;br /&gt;
 	*/&lt;br /&gt;
-	DLL ResourceTypes::List getResourceType( ResHandle res );&lt;br /&gt;
+	DLL int getResourceType( ResHandle res );&lt;br /&gt;
 &lt;br /&gt;
 	/* 	Function: getResourceName&lt;br /&gt;
 			Returns the name of a resource.&lt;br /&gt;
 		&lt;br /&gt;
 		This function returns a pointer to the name of a specified resource. If the resource handle&lt;br /&gt;
@@ -823,11 +823,11 @@&lt;br /&gt;
 			name	- name of the resource&lt;br /&gt;
 			&lt;br /&gt;
 		Returns:&lt;br /&gt;
 			handle to the resource or 0 if not found&lt;br /&gt;
 	*/&lt;br /&gt;
-	DLL ResHandle findResource( ResourceTypes::List type, const char *name );&lt;br /&gt;
+	DLL ResHandle findResource( int type, const char *name );&lt;br /&gt;
 	&lt;br /&gt;
 	/* 	Function: addResource&lt;br /&gt;
 			Adds a resource.&lt;br /&gt;
 		&lt;br /&gt;
 		This function tries to add a resource of a specified type and name to the resource manager. If&lt;br /&gt;
@@ -842,11 +842,11 @@&lt;br /&gt;
 			flags	- flags used for creating the resource&lt;br /&gt;
 			&lt;br /&gt;
 		Returns:&lt;br /&gt;
 			handle to the resource to be added or 0 in case of failure&lt;br /&gt;
 	*/&lt;br /&gt;
-	DLL ResHandle addResource( ResourceTypes::List type, const char *name, int flags );&lt;br /&gt;
+	DLL ResHandle addResource( int type, const char *name, int flags );&lt;br /&gt;
 &lt;br /&gt;
 	/* 	Function: cloneResource&lt;br /&gt;
 			Duplicates a resource.&lt;br /&gt;
 		&lt;br /&gt;
 		This function duplicates a specified resource. In the cloning process a new resource with the&lt;br /&gt;
--- Source/Horde3DEngine/egMain.cpp	Wed Sep 03 00:28:10 2008&lt;br /&gt;
+++ Source/Horde3DEngine/egMain.cpp	Tue Dec 09 08:44:13 2008&lt;br /&gt;
@@ -236,11 +236,11 @@&lt;br /&gt;
 &lt;br /&gt;
 	// *********************************************************************************************&lt;br /&gt;
 	// Resource functions&lt;br /&gt;
 	// *********************************************************************************************&lt;br /&gt;
 &lt;br /&gt;
-	DLLEXP ResourceTypes::List getResourceType( ResHandle res )&lt;br /&gt;
+	DLLEXP int getResourceType( ResHandle res )&lt;br /&gt;
 	{&lt;br /&gt;
 		Resource *r = Modules::resMan().resolveResHandle( res );&lt;br /&gt;
 		&lt;br /&gt;
 		if( r != 0x0 ) return r-&amp;gt;getType();&lt;br /&gt;
 		else&lt;br /&gt;
@@ -264,20 +264,20 @@&lt;br /&gt;
 			return &amp;amp;emptyString;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-	DLLEXP ResHandle findResource( ResourceTypes::List type, const char *name )&lt;br /&gt;
+	DLLEXP ResHandle findResource( int type, const char *name )&lt;br /&gt;
 	{&lt;br /&gt;
 		Resource *res = Modules::resMan().findResource( type, safeStr( name ) );&lt;br /&gt;
 		&lt;br /&gt;
 		if( res != 0x0 ) return res-&amp;gt;getHandle();&lt;br /&gt;
 		else return 0;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
-	DLLEXP ResHandle addResource( ResourceTypes::List type, const char *name, int flags )&lt;br /&gt;
+	DLLEXP ResHandle addResource( int type, const char *name, int flags )&lt;br /&gt;
 	{&lt;br /&gt;
 		return Modules::resMan().addResource( type, safeStr( name ), flags, true );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
--- Source/Horde3DEngine/egResource.cpp	Wed Sep 03 00:28:10 2008&lt;br /&gt;
+++ Source/Horde3DEngine/egResource.cpp	Tue Dec 09 08:42:30 2008&lt;br /&gt;
@@ -37,11 +37,11 @@&lt;br /&gt;
 &lt;br /&gt;
 // **********************************************************************************&lt;br /&gt;
 // Class Resource&lt;br /&gt;
 // **********************************************************************************&lt;br /&gt;
 &lt;br /&gt;
-Resource::Resource( ResourceTypes::List type, const string &amp;amp;name, int flags )&lt;br /&gt;
+Resource::Resource( int type, const string &amp;amp;name, int flags )&lt;br /&gt;
 {&lt;br /&gt;
 	_type = type;&lt;br /&gt;
 	_name = name;&lt;br /&gt;
 	_handle = 0;&lt;br /&gt;
 	_loaded = false;&lt;br /&gt;
@@ -192,11 +192,11 @@&lt;br /&gt;
 	// Initialize resource type&lt;br /&gt;
 	if( inf != 0 ) (*inf)();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-Resource *ResourceManager::findResource( ResourceTypes::List type, const string &amp;amp;name )&lt;br /&gt;
+Resource *ResourceManager::findResource( int type, const string &amp;amp;name )&lt;br /&gt;
 {&lt;br /&gt;
 	for( uint32 i = 0; i &amp;lt; _resources.size(); ++i )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( _resources[i] != 0x0 &amp;amp;&amp;amp; _resources[i]-&amp;gt;_type == type &amp;amp;&amp;amp; _resources[i]-&amp;gt;_name == name )&lt;br /&gt;
 		{&lt;br /&gt;
@@ -226,11 +226,11 @@&lt;br /&gt;
 	_resources.push_back( &amp;amp;resource );&lt;br /&gt;
 	return resource._handle;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-ResHandle ResourceManager::addResource( ResourceTypes::List type, const string &amp;amp;name,&lt;br /&gt;
+ResHandle ResourceManager::addResource( int type, const string &amp;amp;name,&lt;br /&gt;
 										int flags, bool userCall )&lt;br /&gt;
 {&lt;br /&gt;
 	if( name == &amp;quot;&amp;quot; || name.find( &amp;quot;:&amp;quot; ) != string::npos )&lt;br /&gt;
 	{	&lt;br /&gt;
 		Modules::log().writeDebugInfo( &amp;quot;Invalid name for added resource of type %i&amp;quot;, type );&lt;br /&gt;
--- Source/Horde3DEngine/egResource.h	Wed Sep 03 00:28:10 2008&lt;br /&gt;
+++ Source/Horde3DEngine/egResource.h	Tue Dec 09 08:42:30 2008&lt;br /&gt;
@@ -65,11 +65,11 @@&lt;br /&gt;
 &lt;br /&gt;
 class Resource&lt;br /&gt;
 {&lt;br /&gt;
 protected:&lt;br /&gt;
 &lt;br /&gt;
-	ResourceTypes::List	_type;&lt;br /&gt;
+	int					_type;&lt;br /&gt;
 	string				_name;&lt;br /&gt;
 	ResHandle			_handle;&lt;br /&gt;
 	bool				_loaded;&lt;br /&gt;
 	bool				_noQuery;&lt;br /&gt;
 	int					_flags;&lt;br /&gt;
@@ -77,11 +77,11 @@&lt;br /&gt;
 	uint32				_refCount;		// Number of other objects referencing to this resource&lt;br /&gt;
 	uint32				_userRefCount;	// Number of handles created by user&lt;br /&gt;
 &lt;br /&gt;
 public:&lt;br /&gt;
 &lt;br /&gt;
-	Resource( ResourceTypes::List type, const string &amp;amp;name, int flags );&lt;br /&gt;
+	Resource( int type, const string &amp;amp;name, int flags );&lt;br /&gt;
 	virtual ~Resource();&lt;br /&gt;
 	virtual Resource *clone();	// TODO: Implement this for all resource types&lt;br /&gt;
 	&lt;br /&gt;
 	virtual void initDefault();&lt;br /&gt;
 	virtual void release();&lt;br /&gt;
@@ -96,11 +96,11 @@&lt;br /&gt;
 	virtual bool setParamstr( int param, const char *value );&lt;br /&gt;
 &lt;br /&gt;
 	virtual const void *getData( int param );&lt;br /&gt;
 	virtual bool updateData( int param, const void *data, int size );&lt;br /&gt;
 &lt;br /&gt;
-	ResourceTypes::List &amp;amp;getType() { return _type; }&lt;br /&gt;
+	int &amp;amp;getType() { return _type; }&lt;br /&gt;
 	const string &amp;amp;getName() { return _name; }&lt;br /&gt;
 	ResHandle getHandle() { return _handle; }&lt;br /&gt;
 	bool isLoaded() { return _loaded; }&lt;br /&gt;
 	void addRef() { ++_refCount; }&lt;br /&gt;
 	void subRef() { --_refCount; }&lt;br /&gt;
@@ -169,12 +169,12 @@&lt;br /&gt;
 	~ResourceManager();&lt;br /&gt;
 &lt;br /&gt;
 	void registerType( int type, const string &amp;amp;typeString, ResTypeInitializationFunc inf,&lt;br /&gt;
 					   ResTypeReleaseFunc rf, ResTypeFactoryFunc ff );&lt;br /&gt;
 	&lt;br /&gt;
-	Resource *findResource( ResourceTypes::List type, const string &amp;amp;name );&lt;br /&gt;
-	ResHandle addResource( ResourceTypes::List type, const string &amp;amp;name, int flags, bool userCall );&lt;br /&gt;
+	Resource *findResource( int type, const string &amp;amp;name );&lt;br /&gt;
+	ResHandle addResource( int type, const string &amp;amp;name, int flags, bool userCall );&lt;br /&gt;
 	ResHandle addNonExistingResource( Resource &amp;amp;resource, bool userCall );&lt;br /&gt;
 	ResHandle cloneResource( ResHandle sourceRes, const string &amp;amp;name );&lt;br /&gt;
 	int removeResource( ResHandle handle, bool userCall );&lt;br /&gt;
 	void clear();&lt;br /&gt;
 	ResHandle queryUnloadedResource( int index );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Visual Studio, add the extension, sample, ogg, vorbis and vorbisfile projects to the Horde3D solution. Then add the extension project to the project dependencies of the Horde3D Engine and the Horde3D Engine to the dependencies of the Sound Sample. After that, include 'Sound/Source/extension.h' in 'egExtensions.cpp' of the engine and add '#pragma comment( lib, &amp;quot;Extension_Sound.lib&amp;quot; )' to link against the sound extension (under Windows).&lt;br /&gt;
Finally, add the following line to ExtensionManager::installExtensions to register the extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
installExtension( Horde3DSound::getExtensionName, Horde3DSound::initExtension, Horde3DSound::releaseExtension );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The extension is then part of the Horde3D DLL and can be used with the Horde3DSound.h header file.&lt;br /&gt;
&lt;br /&gt;
= Using the extension =&lt;br /&gt;
When using the extension a sound device needs to be opened for playback, then a listener node needs to be created and activated. The activated listener node will act as the ears and all 3D sound calculations will be based on that node's position and orientation. Then you can start creating sound resources, attaching them to sound nodes and start playing the nodes.&lt;br /&gt;
&lt;br /&gt;
OpenAL will need to be installed to be able to run any applications using the Sound Extension.&lt;br /&gt;
&lt;br /&gt;
= Obtaining the extension =&lt;br /&gt;
The extension can either be downloaded [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_ExtSound_1.0.zip here] or from the community svn.&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{Extension_Summary|&lt;br /&gt;
name = Sound Extension|&lt;br /&gt;
screenshot = H3Dsound.jpg|&lt;br /&gt;
description = The Sound Extension extends Horde3D with the capability of 3D positional audio.|&lt;br /&gt;
version = 1.0|&lt;br /&gt;
horde3dversion = 1.0.0 Beta 2|&lt;br /&gt;
released = 2009-01-27|&lt;br /&gt;
author = Ulf Nilsson Tännström|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:H3Dsound.jpg&amp;diff=477</id>
		<title>File:H3Dsound.jpg</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:H3Dsound.jpg&amp;diff=477"/>
				<updated>2009-01-27T15:58:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: screenshot of the sound extension's sample&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;screenshot of the sound extension's sample&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Basic_Pipeline_Tutorial&amp;diff=443</id>
		<title>Basic Pipeline Tutorial</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Basic_Pipeline_Tutorial&amp;diff=443"/>
				<updated>2009-01-04T12:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Fidora: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
In this tutorial, I will try to show you how the Horde3D pipeline system works. At the first look, when you haven't really work with an advanced pipeline system before, it may look a little bit complicated, but I will show how user friendly it is and how this powerful tool is useful.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&amp;lt;BR/&amp;gt;&lt;br /&gt;
- The Horde3D SDK 1.0.0 Beta2&lt;br /&gt;
&lt;br /&gt;
== Creating the pipeline ==&lt;br /&gt;
First of all, I will show you how to create a really basic pipeline with only one context. For this, we will use the chicago example in the Horde3D SDK to see how the pipeline and his context can affect a scene. If you use Visual Studio, open the &amp;quot;Horde3D.sln&amp;quot; file to get into the chicago sample, oterwhise use your configuration to open the chicago example or edit each files in your favorite editor. In the &amp;quot;app.cpp&amp;quot; file, we will change the foward pipeline resource to take our custom pipeline instead of the foward pipeline, so in the Application::init() function  change this line:&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  Old code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_forwardPipeRes = Horde3D::addResource( ResourceTypes::Pipeline, &amp;quot;forward.pipeline.xml&amp;quot;, 0 );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to this line:&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  New code code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
_forwardPipeRes = Horde3D::addResource( ResourceTypes::Pipeline, &amp;quot;myPipeline.pipeline.xml&amp;quot;, 0 );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, we need to create the &amp;quot;myPipeline.pipeline.xml&amp;quot; file. Go in the &amp;quot;Horde3D\Binaries\Content\pipelines&amp;quot; folder, and create a file named &amp;quot;myPipeline.pipeline.xml&amp;quot; . Open this file and add this :&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  myPipeline.pipeline.xml|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Pipeline&amp;gt;&lt;br /&gt;
	&amp;lt;CommandQueue&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
		&amp;lt;Stage id=&amp;quot;FirstStage&amp;quot; link=&amp;quot;globalSettings.material.xml&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;SwitchTarget target=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;ClearTarget depthBuf=&amp;quot;true&amp;quot; colBuf0=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;DrawGeometry context=&amp;quot;AMBIENTCOLOR&amp;quot; class=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/Stage&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;/CommandQueue&amp;gt;&lt;br /&gt;
&amp;lt;/Pipeline&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have tried to make this pipeline as simple as possible. I will explain how it works :&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  Pipeline tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Pipeline&amp;gt;&lt;br /&gt;
&amp;lt;/Pipeline&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This tag means that its child tags gonna be pipeline tags related.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  CommandQueuetag tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CommandQueue&amp;gt;	&lt;br /&gt;
&amp;lt;/CommandQueue&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This tag means that its child tags gonna be related to direct rendering tags.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  Stage tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Stage id=&amp;quot;FirstStage&amp;quot; link=&amp;quot;globalSettings.material.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/Stage&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The stage is here to include a series of actions, and you can have multiple stages if you want, even if in this example we have only one. It is useful since you can disable or enable a stage within an Horde3D function, and you can link it a material within the optional &amp;quot;link&amp;quot; attribute. If you want, you can look at the &amp;quot;globalSettings.material.xml&amp;quot; file to see what it contains, and if everyting is normal, you should see that a cube map is binded to the texture unit 7, this gonna be the ambient texture that will determine the ambient color of the scene. Finally, for each stages, don't forget to add an id, and in this example the id gonna be &amp;quot;FirstStage&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  SwitchTarget tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;SwitchTarget target=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This tag is useful to designate a render target. It can be a buffer, but in this example we don't have any buffers so the target is the screen. An empty &amp;quot;target&amp;quot; means that everyhing next, until a new &amp;quot;SwitchTarget&amp;quot; tag, gonna be rendered on the screen. When you use a buffer as a target, it is not rendered on the screen, so an empty &amp;quot;target&amp;quot; attribute is required somewhere for each pipelines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  ClearTarget tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ClearTarget depthBuf=&amp;quot;true&amp;quot; colBuf0=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This tag is used to clear the content of the current target. The attribute &amp;quot;depthBuf&amp;quot; is used to determine if you want to clear the depth buffer of the target, and each &amp;quot;colBufX&amp;quot; is an attribute to clear the specified color buffer of the target. In this example, we use only one color buffer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  DrawGeometry tag|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;DrawGeometry context=&amp;quot;AMBIENTCOLOR&amp;quot; class=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
This tag mean that you want to draw geometries in the current target. The &amp;quot;context&amp;quot; attribute designate the shader used to render the geometry. It is directly linked to the .shader.xml of each materials of each geometries. If a geometry linked to a material don't have this context in his shader file, the geometry won't be rendered. The class attribute linked to the material file, and an empty &amp;quot;class&amp;quot; attribute means that each class will be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have to compile the chicago example. Go in the &amp;quot;build&amp;quot; folder, and copy the new executable in the &amp;quot;win32&amp;quot; folder of the SDK. If you execute this example you should see nothing. If you look at the engine log and there is no error, it means that everyhing have been rightly done. If you see a black screen, it's because there is no &amp;quot;AMBIENTCOLOR&amp;quot; in each shader linked to each geometry. You have to add this context to each used shaders.&lt;br /&gt;
&lt;br /&gt;
In the chicago sample, three shaders are used : one for the animated model one for the sky and one for the parform. Open the &amp;quot;skinning.shader.xml&amp;quot; file since it's the shader used for the animated man. Next, you have to add this within the &amp;quot;shader&amp;quot; tag:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description=  Shader|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;Context id=&amp;quot;AMBIENTCOLOR&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;VertexShader&amp;gt;&lt;br /&gt;
			&amp;lt;InsCode code=&amp;quot;utilityLib/vertCommon.glsl&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;DefCode&amp;gt;&lt;br /&gt;
			&amp;lt;![CDATA[&lt;br /&gt;
				// Those attributes are given by the Horde3D context&lt;br /&gt;
				attribute vec2 texCoords0; 	// Tex coordinate&lt;br /&gt;
				attribute vec3 normal;		// The normal vector of the vertex&lt;br /&gt;
&lt;br /&gt;
				varying vec2 vTextCoords;	// Tex coordinate&lt;br /&gt;
				varying vec3 vNormal;		// The normal in world space&lt;br /&gt;
&lt;br /&gt;
				void main( void )&lt;br /&gt;
				{&lt;br /&gt;
				&lt;br /&gt;
					// Get the world position of the vertex. At his initial position, gl_Vertex is in object space,&lt;br /&gt;
					// so we must transform his initial position to get the world position&lt;br /&gt;
					vec4 pos = calcWorldPos( gl_Vertex );&lt;br /&gt;
					&lt;br /&gt;
					// Get the normal in the world space from the object space&lt;br /&gt;
					vNormal = calcWorldVec( normal );&lt;br /&gt;
					&lt;br /&gt;
					// Get the tex coordinate&lt;br /&gt;
					vTextCoords = texCoords0;&lt;br /&gt;
					&lt;br /&gt;
					// The gl_ModelViewProjectionMatrix contain two matrices. The first one is the modelview matrix, and &lt;br /&gt;
					// within the horde3d context, this matrix transform a position into the view space, or camera space.&lt;br /&gt;
					// To get the view space position with this matrix, you must first get the world position of the vertex before.&lt;br /&gt;
					// The second matrix is the projection matrix, it is used to project the image into clipping space.&lt;br /&gt;
					gl_Position = gl_ModelViewProjectionMatrix * pos;&lt;br /&gt;
				}&lt;br /&gt;
			]]&amp;gt;&lt;br /&gt;
			&amp;lt;/DefCode&amp;gt;&lt;br /&gt;
		&amp;lt;/VertexShader&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;FragmentShader&amp;gt;&lt;br /&gt;
			&amp;lt;DefCode&amp;gt;&lt;br /&gt;
			&amp;lt;![CDATA[&lt;br /&gt;
				uniform sampler2D tex0;		// This is the first texture, it is defined within the material file of the man&lt;br /&gt;
				uniform samplerCube tex7;	// This texture is from the global setting material that we have linked in the pipeline file&lt;br /&gt;
				varying vec3 vNormal;		// The normal in world space&lt;br /&gt;
				varying vec2 vTextCoords;	// The tex coordinate&lt;br /&gt;
&lt;br /&gt;
				void main( void )&lt;br /&gt;
				{&lt;br /&gt;
					// Get the texture color of the current texel&lt;br /&gt;
					vec3 albedo = texture2D( tex0, vTextCoords ).rgb;&lt;br /&gt;
					&lt;br /&gt;
					// Get the ambient color of the texel within the ambient cubemap defined in the &amp;quot;globalSettings.material.xml&amp;quot; file.&lt;br /&gt;
					vec3 ambient = textureCube( tex7, vNormal ).rgb;&lt;br /&gt;
					&lt;br /&gt;
					// Get the final texel color by mixing the ambient and the albedo color&lt;br /&gt;
					gl_FragColor.rgb = albedo * ambient;&lt;br /&gt;
				}&lt;br /&gt;
			]]&amp;gt;&lt;br /&gt;
			&amp;lt;/DefCode&amp;gt;&lt;br /&gt;
		&amp;lt;/FragmentShader&amp;gt;&lt;br /&gt;
	&amp;lt;/Context&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&amp;lt;BR/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the id of the context tag is &amp;quot;AMBIENTCOLOR&amp;quot;, exactly like the context in our pipeline. It means that within this context this shader will be executed for the current geometry. Then, you have the &amp;quot;InsCode&amp;quot; tag. It is here to insert the &amp;quot;vertCommon.glsl&amp;quot; file wich contain some really useful functions for the vertex shader, like &amp;quot;calcWorldVec()&amp;quot; and &amp;quot;calcWorldPos()&amp;quot;. Finally, I have tried to make the vertex and the pixel shader self-explained, so you can read them if you want to learn how basically the context for the shader is within Horde3D.&lt;br /&gt;
&lt;br /&gt;
Now you can execute the chicago sample and you should see each man moving, but they sould not have any animations because, in the shader, we don't use skinning. If you want to learn how skining work with Horde3D, look at the shader within the &amp;quot;AMBIENT&amp;quot; context of the file, and you should see the difference between both vertex shaders. For the other two shaders, the one for the sly and the one for the platform, you can copy the &amp;quot;AMBIENT&amp;quot; context of each shaders file and name them &amp;quot;AMBIENTCOLOR&amp;quot; to see them in the scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Finally, I have tried to make this tutorial as simple as possible, with a basic pipeline, so that it shouldn't be too hard for any programmers to learn how the pipeline system work. It's why there is no lighting or multiple buffers, but with the basics, you can learn more by yourself by looking at any of the others Horde3D SDK pipelines and by trying things by yourself!&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Tutorial - Basic Pipeline Tutoial&lt;br /&gt;
|screenshot = &lt;br /&gt;
|description = A basic pipeline tutorial&lt;br /&gt;
|version = 1.0&lt;br /&gt;
|horde3dversion = 1.0 beta 2&lt;br /&gt;
|released = 2009-01-04&lt;br /&gt;
|author = [http://www.horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=154 Mikmacer]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorial]]&lt;/div&gt;</summary>
		<author><name>Fidora</name></author>	</entry>

	</feed>