rpms/ogre/F-12 ogre-NULL-fix-9337.patch, NONE, 1.1 ogre-RenderQueueGroupID-doc-9196.patch, NONE, 1.1 ogre-default-shadows-9213.patch, NONE, 1.1 ogre-line-list-stencil-shadows-9342.patch, NONE, 1.1 ogre-modifiers-option-9283.patch, NONE, 1.1 ogre-multiple-contexts-GL-9202.patch, NONE, 1.1 ogre-no-empty-dropdowns-9269.patch, NONE, 1.1 ogre-vertex-split-poses-9195.patch, NONE, 1.1 ogre.spec, 1.55, 1.56

Bruno Wolff III bruno at fedoraproject.org
Sat Nov 28 19:42:51 UTC 2009


Author: bruno

Update of /cvs/pkgs/rpms/ogre/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12704

Modified Files:
	ogre.spec 
Added Files:
	ogre-NULL-fix-9337.patch 
	ogre-RenderQueueGroupID-doc-9196.patch 
	ogre-default-shadows-9213.patch 
	ogre-line-list-stencil-shadows-9342.patch 
	ogre-modifiers-option-9283.patch 
	ogre-multiple-contexts-GL-9202.patch 
	ogre-no-empty-dropdowns-9269.patch 
	ogre-vertex-split-poses-9195.patch 
Log Message:
Get upstream fixes since 1.6.4 was released. This includes a few crash fixes.



ogre-NULL-fix-9337.patch:
 OgreD3D9RenderWindow.cpp |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE ogre-NULL-fix-9337.patch ---
Index: RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp
===================================================================
--- RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp	(revision 9336)
+++ RenderSystems/Direct3D9/src/OgreD3D9RenderWindow.cpp	(revision 9337)
@@ -779,7 +779,7 @@
 			}
 			else
 			{
-				hr = mpD3DDevice->Present( NULL, NULL, 0, NULL );
+				hr = mpD3DDevice->Present( NULL, NULL, NULL, NULL );
 			}
 			if( D3DERR_DEVICELOST == hr )
 			{

ogre-RenderQueueGroupID-doc-9196.patch:
 OgreMovableObject.h |    3 ++-
 OgreRenderQueue.h   |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

--- NEW FILE ogre-RenderQueueGroupID-doc-9196.patch ---
Index: OgreMain/include/OgreMovableObject.h
===================================================================
--- OgreMain/include/OgreMovableObject.h	(revision 9195)
+++ OgreMain/include/OgreMovableObject.h	(revision 9196)
@@ -322,7 +322,8 @@
             a 3D menu system or such.
         @par
             See RenderQueue for more details.
-        @param queueID Enumerated value of the queue group to use.
+        @param queueID Enumerated value of the queue group to use. See the
+			enum RenderQueueGroupID for what kind of values can be used here.
         */
         virtual void setRenderQueueGroup(uint8 queueID);
 
Index: OgreMain/include/OgreRenderQueue.h
===================================================================
--- OgreMain/include/OgreRenderQueue.h	(revision 9195)
+++ OgreMain/include/OgreRenderQueue.h	(revision 9196)
@@ -225,7 +225,8 @@
         ushort getDefaultRenderablePriority(void) const;
 
         /** Sets the current default queue group, which will be used for all renderable which do not
-            specify which group they wish to be on.
+            specify which group they wish to be on. See the enum RenderQueueGroupID for what kind of
+			values can be used here.
         */
         void setDefaultQueueGroup(uint8 grp);
         

ogre-default-shadows-9213.patch:
 Shadows.cpp |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE ogre-default-shadows-9213.patch ---
Index: Samples/Shadows/src/Shadows.cpp
===================================================================
--- Samples/Shadows/src/Shadows.cpp	(revision 9212)
+++ Samples/Shadows/src/Shadows.cpp	(revision 9213)
@@ -1388,7 +1388,7 @@
 				switch(mat)
 				{
 				case MAT_STANDARD:
-					mSceneMgr->setShadowTexturePixelFormat(PF_L8);
+					mSceneMgr->setShadowTexturePixelFormat(PF_X8R8G8B8);
 					mSceneMgr->setShadowTextureCasterMaterial(StringUtil::BLANK);
 					mSceneMgr->setShadowTextureReceiverMaterial(StringUtil::BLANK);
 					mSceneMgr->setShadowTextureSelfShadow(false);	

ogre-line-list-stencil-shadows-9342.patch:
 OgreEdgeListBuilder.cpp |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

--- NEW FILE ogre-line-list-stencil-shadows-9342.patch ---
Index: OgreMain/src/OgreEdgeListBuilder.cpp
===================================================================
--- OgreMain/src/OgreEdgeListBuilder.cpp	(revision 9341)
+++ OgreMain/src/OgreEdgeListBuilder.cpp	(revision 9342)
@@ -432,11 +432,14 @@
         assert(triangleFaceNormals.size() == triangleLightFacings.size());
 
         // Use optimised util to determine if triangle's face normal are light facing
-        OptimisedUtil::getImplementation()->calculateLightFacing(
-            lightPos,
-            &triangleFaceNormals.front(),
-            &triangleLightFacings.front(),
-            triangleLightFacings.size());
+		if(!triangleFaceNormals.empty())
+		{
+			OptimisedUtil::getImplementation()->calculateLightFacing(
+				lightPos,
+				&triangleFaceNormals.front(),
+				&triangleLightFacings.front(),
+				triangleLightFacings.size());
+		}
     }
     //---------------------------------------------------------------------
     void EdgeData::updateFaceNormals(size_t vertexSet, 

ogre-modifiers-option-9283.patch:
 ogrehelp/ogremeshesexporter.html |   12 ++++++------
 ogremeshesexporter.py            |   14 +++++++++++---
 ogrepkg/meshexport.py            |   12 ++++++++----
 3 files changed, 25 insertions(+), 13 deletions(-)

--- NEW FILE ogre-modifiers-option-9283.patch ---
Index: Tools/BlenderExport/ogremeshesexporter.py
===================================================================
--- Tools/BlenderExport/ogremeshesexporter.py	(revision 9282)
+++ Tools/BlenderExport/ogremeshesexporter.py	(revision 9283)
@@ -24,7 +24,7 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 __author__ = 'Michael Reimpell (Maintainer: Lih-Hern Pang)'
-__version__ = '1.1'
+__version__ = '1.3'
 __url__ = ["Help, http://www.ogre3d.org/phpBB2/search.php", "Ogre3D, http://www.ogre3d.org"]
 __bpydoc__ = "Please see the external documentation that comes with the script."
 
@@ -1309,7 +1309,7 @@
 				for proxyManager in self.armatureAnimationProxyManagerDict.values():
 					proxyManager.savePackageSettings()
 				return
-			def export(self, exportPath, exportMaterial, materialScriptName, customMaterial, customMaterialTplPath, colouredAmbient, gameEngineMaterials, exportMesh, fixUpAxis, skeletonUseMeshName, convertXML, copyTextures, requireFaceMats):
+			def export(self, exportPath, exportMaterial, materialScriptName, customMaterial, customMaterialTplPath, colouredAmbient, gameEngineMaterials, exportMesh, fixUpAxis, skeletonUseMeshName, applyModifiers, convertXML, copyTextures, requireFaceMats):
 				# create MaterialManager
 				if len(self.selectedList):
 					materialManager = MaterialManager(exportPath, materialScriptName, gameEngineMaterials, customMaterial, customMaterialTplPath, requireFaceMats)
@@ -1325,7 +1325,7 @@
 						if self.armatureAnimationProxyManagerDict.has_key(name):
 							self.armatureAnimationProxyManagerDict[name].toAnimations(meshExporter.getArmatureExporter())
 						# export
-						meshExporter.export(exportPath, materialManager, fixUpAxis, exportMesh, colouredAmbient, convertXML)
+						meshExporter.export(exportPath, materialManager, fixUpAxis, exportMesh, colouredAmbient, applyModifiers, convertXML)
 					# export materials
 					if (exportMaterial):
 						materialManager.export(exportPath, materialScriptName, copyTextures)
@@ -1635,6 +1635,7 @@
 				self.copyTextures = ToggleModel(0)
 				self.requireFaceMats = ToggleModel(True)
 				self.skeletonUseMeshName = ToggleModel(1)
+				self.applyModifiers = ToggleModel(0)
 
 				matTglGrp = ToggleGroup()
 				matTglGrp.addToggle(self.renderingMaterial)
@@ -1709,6 +1710,8 @@
 				ToggleView(globalSettingLayout1, Size([Size.INFINITY, 20], [150, 20]), self.skeletonUseMeshName, T("Skeleton name follow mesh"), \
 					T("Use mesh name for the exported skeleton name instead of the armature name."))
 				globalSettingLayout2 = HorizontalLayout(globalSettingLayout)
+				ToggleView(globalSettingLayout2, Size([Size.INFINITY, 20], [150, 20]), self.applyModifiers, T("Apply Modifiers"), \
+					T("Apply mesh modifier before export. This option is slow and may break vert order for morph targets."))
 				ToggleView(globalSettingLayout2, Size([Size.INFINITY, 20], [100, 20]), self.convertXML, T("OgreXMLConverter"), \
 					T("Run OgreXMLConverter on the exported XML files."))
 				## buttons
@@ -1778,6 +1781,9 @@
 				skeletonUseMeshName = PackageSettings.getSingleton().getSetting('skeletonUseMeshName')
 				if skeletonUseMeshName is not None:
 					self.skeletonUseMeshName.setValue(skeletonUseMeshName)
+				applyModifiers = PackageSettings.getSingleton().getSetting('applyModifiers')
+				if applyModifiers is not None:
+					self.applyModifiers.setValue(applyModifiers)
 				convertXML = PackageSettings.getSingleton().getSetting('convertXML')
 				if convertXML is not None:
 					self.convertXML.setValue(convertXML)
@@ -1798,6 +1804,7 @@
 				PackageSettings.getSingleton().setSetting('exportMesh', self.exportMesh.getValue())
 				PackageSettings.getSingleton().setSetting('fixUpAxis', self.fixUpAxis.getValue())
 				PackageSettings.getSingleton().setSetting('skeletonUseMeshName', self.skeletonUseMeshName.getValue())
+				PackageSettings.getSingleton().setSetting('applyModifiers', self.applyModifiers.getValue())
 				PackageSettings.getSingleton().setSetting('convertXML', self.convertXML.getValue())
 				PackageSettings.getSingleton().setSetting('exportPath', self.exportPath.getValue())
 				PackageSettings.getSingleton().save()
@@ -1873,6 +1880,7 @@
 						self.app.exportMesh.getValue(), \
 						self.app.fixUpAxis.getValue(), \
 						self.app.skeletonUseMeshName.getValue(), \
+						self.app.applyModifiers.getValue(), \
 						self.app.convertXML.getValue(), \
 						self.app.copyTextures.getValue(), \
 						self.app.requireFaceMats.getValue(), \
Index: Tools/BlenderExport/ogrehelp/images/meshesexporter.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Tools/BlenderExport/ogrehelp/ogremeshesexporter.html
===================================================================
--- Tools/BlenderExport/ogrehelp/ogremeshesexporter.html	(revision 9282)
+++ Tools/BlenderExport/ogrehelp/ogremeshesexporter.html	(revision 9283)
@@ -194,9 +194,15 @@
   <dt>Fix Up Axis to Y</dt>
   <dd>Blender uses Z as up axis. This toggle switch allows changing the mesh to use Y as up axis.</dd>
 
+  <dt>Require Materials</dt>
+  <dd>Generate Error message when part of a mesh is not assigned with a material.</dd>
+
   <dt>Skeleton name follow mesh</dt>
   <dd>Force skeleton name to follow mesh name. Uncheck to make it use armature name instead.</dd>
 
+  <dt>Apply Modifiers</dt>
+  <dd>Apply mesh modifiers before export. This option is slow and may break vert order for morph targets. Not recommended for animated meshes.</dd>
+
   <dt>OgreXMLConverter</dt>
   <dd>Convert the XML files to binary files via the OgreXMLConverter. The exporter must be able to find the converter executable. You can specify its location in the preferences.</dd>
 
@@ -465,12 +471,6 @@
 	<li>[textureName]._tex_address_mode</li>
 	<li>[textureName]._filtering</li>
 	<li>[textureName]._colour_op</li>
-	<li>[textureName]._sizeX</li>
-	<li>[textureName]._sizeY</li>
-	<li>[textureName]._sizeZ</li>
-	<li>[textureName]._offsetX</li>
-	<li>[textureName]._offsetY</li>
-	<li>[textureName]._offsetZ</li>
 </ul>
 
 <p>
Index: Tools/BlenderExport/ogrepkg/meshexport.py
===================================================================
--- Tools/BlenderExport/ogrepkg/meshexport.py	(revision 9282)
+++ Tools/BlenderExport/ogrepkg/meshexport.py	(revision 9283)
@@ -858,7 +858,7 @@
 		# populated on export
 		self.submeshManager = None
 		return
-	def export(self, dir, materialManager, fixUpAxis=True, exportMesh=True, colouredAmbient=False, convertXML=False):
+	def export(self, dir, materialManager, fixUpAxis=True, exportMesh=True, colouredAmbient=False, applyModifiers=False, convertXML=False):
 		# leave editmode
 		editmode = Blender.Window.EditMode()
 		if editmode:
@@ -871,7 +871,7 @@
 				self.armatureExporter.export(dir, fixUpAxis, convertXML)
 
 		## export meshdata
-		self._generateSubmeshes(fixUpAxis, materialManager, colouredAmbient, exportMesh)
+		self._generateSubmeshes(fixUpAxis, materialManager, colouredAmbient, applyModifiers, exportMesh)
 
 		if exportMesh:
 			## export vertex animations
@@ -895,11 +895,15 @@
 		return self.armatureExporter
 	def getSubmeshManager(self):
 		return self.submeshManager
-	def _generateSubmeshes(self, fixUpAxis, materialManager, colouredAmbient, exportMesh):
+	def _generateSubmeshes(self, fixUpAxis, materialManager, colouredAmbient, applyModifiers, exportMesh):
 		"""Generates submeshes of the mesh.
 		"""
 		#NMesh# Blender.Mesh.Mesh does not provide access to mesh shape keys, use Blender.NMesh.NMesh
-		bMesh = self.bObject.getData(mesh=True)
+		if applyModifiers:
+			bMesh = Blender.Mesh.New('tmp')
+			bMesh.getFromObject(self.bObject)
+		else:
+			bMesh = self.bObject.getData(mesh=True)
 		self.submeshManager = SubmeshManager(bMesh, fixUpAxis, self.armatureExporter)
 		for bMFace in bMesh.faces:
 			faceMaterial = materialManager.getMaterial(bMesh, bMFace, colouredAmbient, self.name)

ogre-multiple-contexts-GL-9202.patch:
 OgreGLRenderSystem.cpp |   11 +++++++++++
 1 file changed, 11 insertions(+)

--- NEW FILE ogre-multiple-contexts-GL-9202.patch ---
Index: RenderSystems/GL/src/OgreGLRenderSystem.cpp
===================================================================
--- RenderSystems/GL/src/OgreGLRenderSystem.cpp	(revision 9201)
+++ RenderSystems/GL/src/OgreGLRenderSystem.cpp	(revision 9202)
@@ -3259,6 +3259,17 @@
 		if (mCurrentFragmentProgram)
 			mCurrentFragmentProgram->unbindProgram();
 
+		// Disable lights
+		for (unsigned short i = 0; i < mCurrentLights; ++i)
+		{
+			setGLLight(i, NULL);
+			mLights[i] = NULL;
+		}
+		mCurrentLights = 0;
+
+		// Disable textures
+		_disableTextureUnitsFrom(0);
+
 		// It's ready to switching
 		if (mCurrentContext)
 			mCurrentContext->endCurrent();

ogre-no-empty-dropdowns-9269.patch:
 OgreConfigDialog.cpp |    6 ++++++
 1 file changed, 6 insertions(+)

--- NEW FILE ogre-no-empty-dropdowns-9269.patch ---
Index: OgreMain/src/GLX/OgreConfigDialog.cpp
===================================================================
--- OgreMain/src/GLX/OgreConfigDialog.cpp	(revision 9268)
+++ OgreMain/src/GLX/OgreConfigDialog.cpp	(revision 9269)
@@ -427,6 +427,12 @@
 	// Process each option and create an optionmenu widget for it
 	for (ConfigOptionMap::iterator it = options.begin();
 					it != options.end(); it++) {
+		// if the config option does not have any possible value, then skip it.
+		// if we create a popup with zero entries, it will crash when you click
+		// on it.
+		if (it->second.possibleValues.empty())
+			continue;
+
 		Widget lb1 = XtVaCreateManagedWidget("topLabel", labelWidgetClass, box, XtNlabel, it->second.name.c_str(), XtNborderWidth, 0,
 			XtNwidth, col1w, 	// Fixed width
 			XtNheight, 18,

ogre-vertex-split-poses-9195.patch:
 OgreMesh.cpp |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

--- NEW FILE ogre-vertex-split-poses-9195.patch ---
Index: OgreMain/src/OgreMesh.cpp
===================================================================
--- OgreMain/src/OgreMesh.cpp	(revision 9194)
+++ OgreMain/src/OgreMesh.cpp	(revision 9195)
@@ -1245,7 +1245,31 @@
 						}
 						
 					}
+				}
 
+				// Update poses (some vertices might have been duplicated)
+				// we will just check which vertices have been split and copy
+				// the offset for the original vertex to the corresponding new vertex
+				PoseIterator pose_it = getPoseIterator();
+
+				while( pose_it.hasMoreElements() )
+				{
+					Pose* current_pose = pose_it.getNext();
+					const Pose::VertexOffsetMap& offset_map = current_pose->getVertexOffsets();
+
+					for( TangentSpaceCalc::VertexSplits::iterator it = res.vertexSplits.begin();
+						it != res.vertexSplits.end(); ++it )
+					{
+						TangentSpaceCalc::VertexSplit& split = *it;
+
+						Pose::VertexOffsetMap::const_iterator found_offset = offset_map.find( split.first );
+
+						// copy the offset
+						if( found_offset != offset_map.end() )
+						{
+							current_pose->addVertex( split.second, found_offset->second );
+						}
+					}
 				}
 			}
 		}


Index: ogre.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ogre/F-12/ogre.spec,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -p -r1.55 -r1.56
--- ogre.spec	25 Nov 2009 05:00:25 -0000	1.55
+++ ogre.spec	28 Nov 2009 19:42:51 -0000	1.56
@@ -1,6 +1,6 @@
 Name:           ogre
 Version:        1.6.4
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Object-Oriented Graphics Rendering Engine
 # LGPLv2+ with exceptions - main library
 # CC-BY-SA - devel docs
@@ -24,6 +24,14 @@ Patch1:         ogre-1.6.0rc1-glew.patch
 Patch2:         ogre-1.6.4-system-tinyxml.patch
 Patch3:         ogre-1.6.1-fix-ppc-build.patch
 Patch4:         ogre-renderer-libs.patch
+Patch5:         ogre-vertex-split-poses-9195.patch
+Patch6:         ogre-RenderQueueGroupID-doc-9196.patch
+Patch7:         ogre-multiple-contexts-GL-9202.patch
+Patch8:         ogre-default-shadows-9213.patch
+Patch9:         ogre-no-empty-dropdowns-9269.patch
+Patch10:        ogre-modifiers-option-9283.patch
+Patch11:        ogre-NULL-fix-9337.patch
+Patch12:        ogre-line-list-stencil-shadows-9342.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  cegui-devel zziplib-devel freetype-devel
 BuildRequires:  libXaw-devel libXrandr-devel libXxf86vm-devel libGLU-devel
@@ -81,6 +89,14 @@ with the wrapper script called "Ogre-Sam
 %patch2 -p1 -z .sys-tinyxml
 %patch3 -p1 -z .ppc
 %patch4 -p1
+%patch5
+%patch6
+%patch7
+%patch8
+%patch9
+%patch10
+%patch11
+%patch12
 # remove execute bits from src-files for -debuginfo package
 chmod -x `find RenderSystems/GL -type f` \
   `find Samples/DeferredShading -type f` Samples/DynTex/src/DynTex.cpp
@@ -219,6 +235,9 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Sat Nov 28 2009 Bruno Wolff III <bruno at wolff.to> - 1.6.4-3
+- Get upstream fixes since 1.6.4 release. This includes a couple of crash bugs.
+
 * Tue Nov 24 2009 Bruno Wolff III <bruno at wolff.to> - 1.6.4-2
 - Allow CEGIUOgreRenderer to find needed libraries
 - Spec file cleanups




More information about the fedora-extras-commits mailing list