[aqsis] Update to current bugfix

Nicolas Chauvet kwizart at fedoraproject.org
Tue Mar 29 16:07:52 UTC 2011


commit 549df81fc97bb074aae2a765f7ed367b2d88880f
Author: Nicolas Chauvet <kwizart at gmail.com>
Date:   Tue Mar 29 18:08:02 2011 +0200

    Update to current bugfix

 aqsis-1.6.0-bugfix20110329.patch |  748 ++++++++++++++++++++++++++++++++++++++
 aqsis.spec                       |   14 +-
 2 files changed, 758 insertions(+), 4 deletions(-)
---
diff --git a/aqsis-1.6.0-bugfix20110329.patch b/aqsis-1.6.0-bugfix20110329.patch
new file mode 100644
index 0000000..be3e5fb
--- /dev/null
+++ b/aqsis-1.6.0-bugfix20110329.patch
@@ -0,0 +1,748 @@
+diff --git a/include/aqsis/ri/slo.h b/include/aqsis/ri/slo.h
+index 49cde91..71a49c6 100644
+--- a/include/aqsis/ri/slo.h
++++ b/include/aqsis/ri/slo.h
+@@ -60,6 +60,7 @@ extern "C"
+ 	    SLO_STOR_VARIABLE,
+ 	    SLO_STOR_TEMPORARY,
+ 	    SLO_STOR_PARAMETER,
++	    SLO_STOR_OUTPUTPARAMETER,
+ 	    SLO_STOR_GSTATE
+ 	} SLO_STORAGE;
+ 
+diff --git a/include/aqsis/ri/slx.h b/include/aqsis/ri/slx.h
+index c72096e..f30ae35 100644
+--- a/include/aqsis/ri/slx.h
++++ b/include/aqsis/ri/slx.h
+@@ -60,6 +60,7 @@ extern "C"
+ 	    SLX_STOR_VARIABLE,
+ 	    SLX_STOR_TEMPORARY,
+ 	    SLX_STOR_PARAMETER,
++	    SLX_STOR_OUTPUTPARAMETER,
+ 	    SLX_STOR_GSTATE
+ 	} SLX_STORAGE;
+ 
+diff --git a/include/aqsis/shadervm/ishader.h b/include/aqsis/shadervm/ishader.h
+index 926f4d4..8bdfb1f 100644
+--- a/include/aqsis/shadervm/ishader.h
++++ b/include/aqsis/shadervm/ishader.h
+@@ -23,6 +23,7 @@
+ 
+ #include	<aqsis/core/interfacefwd.h>
+ #include	<aqsis/riutil/primvartype.h>
++#include	<aqsis/shadervm/ishaderdata.h>
+ #include	<aqsis/util/exception.h>
+ 
+ namespace Aqsis {
+@@ -133,10 +134,10 @@ struct AQSIS_SHADERVM_SHARE IqShader
+ 	virtual	TqInt	Uses() const = 0;
+ 	/** Variable creation function.
+ 	 */
+-	virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, bool fArgument = false, bool fOutput = false ) = 0;
++	virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, IqShaderData::EqStorage storage = IqShaderData::Unknown ) = 0;
+ 	/** Variable array creation function.
+ 	 */
+-	virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, bool fArgument = false, bool fOutput = false  ) = 0;
++	virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, IqShaderData::EqStorage storage = IqShaderData::Unknown ) = 0;
+ 	/** Function to create some temporary storage which complies to the IqShaderData interface.
+ 	 */
+ 	virtual IqShaderData* CreateTemporaryStorage( EqVariableType type, EqVariableClass _class ) = 0;
+diff --git a/include/aqsis/shadervm/ishaderdata.h b/include/aqsis/shadervm/ishaderdata.h
+index 65c9c4b..bf50705 100644
+--- a/include/aqsis/shadervm/ishaderdata.h
++++ b/include/aqsis/shadervm/ishaderdata.h
+@@ -29,6 +29,16 @@ namespace Aqsis {
+ 
+ struct IqShaderData
+ {
++	/** \brief Storage type within the shader context
++ 	 */
++	enum EqStorage
++	{
++		Unknown,         ///< Don't know the storage
++		Temporary,       ///< An internal temporary variable
++		Parameter,       ///< A parameter to the shader
++		OutputParameter  ///< An output parameter for the shader
++	};
++
+ 	/// Virtual destructor so that derived classes get cleaned up properly.
+ 	virtual	~IqShaderData()
+ 	{}
+@@ -257,10 +267,12 @@ struct IqShaderData
+ 	 * \return Read only reference to a CqString class.
+ 	 */
+ 	virtual	const CqString&	strName() const = 0;
+-	/** Determine whether this data storage represents a shader argument.
+-	 * \return True if a shader argument, false otherwise.
++	/** Get the storage type
++ 	 *
++	 * \return the storage type on the shader, that is, whether it's a
++	 * temporary, parameter, etc.
+ 	 */
+-	virtual	bool	fParameter() const = 0;
++	virtual	EqStorage Storage() const = 0;
+ 
+ 	/** Pure virtual, prepare the variable for the SIMD size.
+ 	 * \param uGridRes The size of the SIMD grid in u.
+diff --git a/libs/core/shaders.h b/libs/core/shaders.h
+index f77b6bf..c5c842e 100644
+--- a/libs/core/shaders.h
++++ b/libs/core/shaders.h
+@@ -284,18 +284,18 @@ class CqLayeredShader : public IqShader
+ 			// Gather the uses from all layers as they are added.
+ 			return ( m_Uses );
+ 		}
+-		virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, bool fArgument = false, bool fOutput = false  )
++		virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, IqShaderData::EqStorage storage )
+ 		{
+ 			// Call CreateVariable on the first shader in the list, all layers must be the same type.
+ 			if(!m_Layers.empty())
+-				return(m_Layers.front().second->CreateVariable(Type, Class, name, fArgument, fOutput));
++				return(m_Layers.front().second->CreateVariable(Type, Class, name, storage));
+ 			return ( NULL );
+ 		}
+-		virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, bool fArgument = false, bool fOutput = false  )
++		virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, IqShaderData::EqStorage storage )
+ 		{
+ 			// Call CreateVariableArray on the first shader in the list, all layers must be the same type.
+ 			if(!m_Layers.empty())
+-				return(m_Layers.front().second->CreateVariableArray(Type, Class, name, Count, fArgument, fOutput));
++				return(m_Layers.front().second->CreateVariableArray(Type, Class, name, Count, storage));
+ 			return ( NULL );
+ 		}
+ 		virtual IqShaderData* CreateTemporaryStorage( EqVariableType type, EqVariableClass _class )
+diff --git a/libs/shadervm/shadervariable.h b/libs/shadervm/shadervariable.h
+index ed1ab9c..bde269c 100644
+--- a/libs/shadervm/shadervariable.h
++++ b/libs/shadervm/shadervariable.h
+@@ -59,7 +59,7 @@ class CqShaderVariable : public IqShaderData
+ {
+ 	public:
+ 		CqShaderVariable();
+-		CqShaderVariable( const char* strName, bool fParameter = false );
++		CqShaderVariable( const char* strName, EqStorage storage = Unknown );
+ 		virtual	~CqShaderVariable() {}
+ 
+ 		virtual void GetBool( bool& res, TqInt index = 0 ) const
+@@ -93,16 +93,16 @@ class CqShaderVariable : public IqShaderData
+ 
+ 		/** Determine if this variable is storage for a shader argument.
+ 		 */
+-		virtual bool fParameter() const
++		virtual EqStorage Storage() const
+ 		{
+-			return ( m_fParameter );
++			return ( m_storage );
+ 		}
+ 
+ 		/** Indicate whether or not this variable is a shader argument.
+ 		 */
+-		void SetfParameter( bool fParameter = true )
++		void SetStorage(EqStorage storage)
+ 		{
+-			m_fParameter = fParameter;
++			m_storage = storage;
+ 		}
+ 
+ 		virtual bool	isArray() const
+@@ -120,7 +120,7 @@ class CqShaderVariable : public IqShaderData
+ 
+ 	protected:
+ 		CqString	m_strName;		///< Name of this variable.
+-		bool	m_fParameter;	///< Flag indicating this variable is a shader argument.
++		EqStorage m_storage;	///< variable storage: temporary, shader parameter, etc
+ }
+ ;
+ 
+@@ -138,9 +138,9 @@ class CqShaderVariableArray: public CqShaderVariable
+ 		/** Default constructor.
+ 		 * \param name Character pointer to the name to use.
+ 		 * \param Count the size of the array.
+-		 * \param fParameter Boolean value, true indicates the shader variable is a shader parameter.
++		 * \param storage behaviour on the shader (temporary / shader parameter etc)
+ 		 */
+-		CqShaderVariableArray( const char* name, TqInt Count, bool fParameter = false ) : CqShaderVariable( name, fParameter )
++		CqShaderVariableArray( const char* name, TqInt Count, EqStorage storage = Unknown ) : CqShaderVariable( name, storage )
+ 		{
+ 			assert( Count > 0 );
+ 			m_aVariables.resize( Count );
+@@ -444,7 +444,7 @@ class CqShaderVariableUniform : public CqShaderVariable
+ 		CqShaderVariableUniform() : CqShaderVariable()
+ 		{
+ 		}
+-		CqShaderVariableUniform( const char* strName, bool fParameter = false ) : CqShaderVariable( strName, fParameter )
++		CqShaderVariableUniform( const char* strName, EqStorage storage = Unknown ) : CqShaderVariable( strName, storage )
+ 		{
+ 
+ 		}
+@@ -663,7 +663,7 @@ class CqShaderVariableUniformFloat : public CqShaderVariableUniform<type_float,
+ 		CqShaderVariableUniformFloat( ) : CqShaderVariableUniform<type_float, TqFloat>()
+ 		{
+ 		}
+-		CqShaderVariableUniformFloat( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_float, TqFloat>( strName, fParameter )
++		CqShaderVariableUniformFloat( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_float, TqFloat>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetFloat( TqFloat& res, TqInt index = 0 ) const
+@@ -716,7 +716,7 @@ class CqShaderVariableUniformString : public CqShaderVariableUniform<type_string
+ 		CqShaderVariableUniformString( ) : CqShaderVariableUniform<type_string, CqString>()
+ 		{
+ 		}
+-		CqShaderVariableUniformString( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_string, CqString>( strName, fParameter )
++		CqShaderVariableUniformString( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_string, CqString>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetString( CqString& res, TqInt index = 0 ) const
+@@ -761,7 +761,7 @@ class CqShaderVariableUniformPoint : public CqShaderVariableUniform<type_point,
+ 		CqShaderVariableUniformPoint() : CqShaderVariableUniform<type_point, CqVector3D>()
+ 		{
+ 		}
+-		CqShaderVariableUniformPoint( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_point, CqVector3D>( strName, fParameter )
++		CqShaderVariableUniformPoint( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_point, CqVector3D>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+@@ -830,7 +830,7 @@ class CqShaderVariableUniformVector : public CqShaderVariableUniform<type_vector
+ 		CqShaderVariableUniformVector() : CqShaderVariableUniform<type_vector, CqVector3D>()
+ 		{
+ 		}
+-		CqShaderVariableUniformVector( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_vector, CqVector3D>( strName, fParameter )
++		CqShaderVariableUniformVector( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_vector, CqVector3D>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+@@ -899,7 +899,7 @@ class CqShaderVariableUniformNormal : public CqShaderVariableUniform<type_normal
+ 		CqShaderVariableUniformNormal() : CqShaderVariableUniform<type_normal, CqVector3D>()
+ 		{
+ 		}
+-		CqShaderVariableUniformNormal( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_normal, CqVector3D>( strName, fParameter )
++		CqShaderVariableUniformNormal( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_normal, CqVector3D>( strName, storage )
+ 		{}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+ 		{
+@@ -967,7 +967,7 @@ class CqShaderVariableUniformColor : public CqShaderVariableUniform<type_color,
+ 		CqShaderVariableUniformColor() : CqShaderVariableUniform<type_color, CqColor>()
+ 		{
+ 		}
+-		CqShaderVariableUniformColor( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_color, CqColor>( strName, fParameter )
++		CqShaderVariableUniformColor( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_color, CqColor>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetColor( CqColor& res, TqInt index = 0 ) const
+@@ -1008,7 +1008,7 @@ class CqShaderVariableUniformMatrix : public CqShaderVariableUniform<type_matrix
+ 		CqShaderVariableUniformMatrix() : CqShaderVariableUniform<type_matrix, CqMatrix>()
+ 		{
+ 		}
+-		CqShaderVariableUniformMatrix( const char* strName, bool fParameter = false ) : CqShaderVariableUniform<type_matrix, CqMatrix>( strName, fParameter )
++		CqShaderVariableUniformMatrix( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableUniform<type_matrix, CqMatrix>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetMatrix( CqMatrix& res, TqInt index = 0 ) const
+@@ -1056,7 +1056,7 @@ class CqShaderVariableVarying : public CqShaderVariable
+ 			m_aValue.resize( 1 );
+ 		}
+ 
+-		CqShaderVariableVarying( const char* strName, bool fParameter = false ) : CqShaderVariable( strName, fParameter )
++		CqShaderVariableVarying( const char* strName, EqStorage storage = Unknown ) : CqShaderVariable( strName, storage )
+ 		{
+ 			m_aValue.resize( 1 );
+ 		}
+@@ -1264,7 +1264,7 @@ class CqShaderVariableVaryingFloat : public CqShaderVariableVarying<type_float,
+ 		CqShaderVariableVaryingFloat( ) : CqShaderVariableVarying<type_float, TqFloat>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingFloat( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_float, TqFloat>( strName, fParameter )
++		CqShaderVariableVaryingFloat( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_float, TqFloat>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetFloat( TqFloat& res, TqInt index = 0 ) const
+@@ -1343,7 +1343,7 @@ class CqShaderVariableVaryingString : public CqShaderVariableVarying<type_string
+ 		CqShaderVariableVaryingString( ) : CqShaderVariableVarying<type_string, CqString>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingString( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_string, CqString>( strName, fParameter )
++		CqShaderVariableVaryingString( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_string, CqString>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetString( CqString& res, TqInt index = 0 ) const
+@@ -1414,7 +1414,7 @@ class CqShaderVariableVaryingPoint : public CqShaderVariableVarying<type_point,
+ 		CqShaderVariableVaryingPoint( ) : CqShaderVariableVarying<type_point, CqVector3D>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingPoint( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_point, CqVector3D>( strName, fParameter )
++		CqShaderVariableVaryingPoint( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_point, CqVector3D>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+@@ -1524,7 +1524,7 @@ class CqShaderVariableVaryingVector : public CqShaderVariableVarying<type_vector
+ 		CqShaderVariableVaryingVector( ) : CqShaderVariableVarying<type_vector, CqVector3D>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingVector( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_vector, CqVector3D>( strName, fParameter )
++		CqShaderVariableVaryingVector( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_vector, CqVector3D>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+@@ -1634,7 +1634,7 @@ class CqShaderVariableVaryingNormal : public CqShaderVariableVarying<type_normal
+ 		CqShaderVariableVaryingNormal( ) : CqShaderVariableVarying<type_normal, CqVector3D>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingNormal( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_normal, CqVector3D>( strName, fParameter )
++		CqShaderVariableVaryingNormal( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_normal, CqVector3D>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetPoint( CqVector3D& res, TqInt index = 0 ) const
+@@ -1744,7 +1744,7 @@ class CqShaderVariableVaryingColor : public CqShaderVariableVarying<type_color,
+ 		CqShaderVariableVaryingColor( ) : CqShaderVariableVarying<type_color, CqColor>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingColor( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_color, CqColor>( strName, fParameter )
++		CqShaderVariableVaryingColor( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_color, CqColor>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetColor( CqColor& res, TqInt index = 0 ) const
+@@ -1814,7 +1814,7 @@ class CqShaderVariableVaryingMatrix : public CqShaderVariableVarying<type_matrix
+ 		CqShaderVariableVaryingMatrix( ) : CqShaderVariableVarying<type_matrix, CqMatrix>( )
+ 		{
+ 		}
+-		CqShaderVariableVaryingMatrix( const char* strName, bool fParameter = false ) : CqShaderVariableVarying<type_matrix, CqMatrix>( strName, fParameter )
++		CqShaderVariableVaryingMatrix( const char* strName, EqStorage storage = Unknown ) : CqShaderVariableVarying<type_matrix, CqMatrix>( strName, storage )
+ 		{
+ 		}
+ 		virtual	void	GetMatrix( CqMatrix& res, TqInt index = 0 ) const
+@@ -1882,12 +1882,12 @@ class CqShaderVariableVaryingMatrix : public CqShaderVariableVarying<type_matrix
+ 
+ inline CqShaderVariable::CqShaderVariable()
+ 	: m_strName(),
+-	m_fParameter(false)
++	m_storage(Unknown)
+ {}
+ 
+-inline CqShaderVariable::CqShaderVariable(const char* strName, bool fParameter)
++inline CqShaderVariable::CqShaderVariable(const char* strName, EqStorage storage)
+ 	: m_strName(strName),
+-	m_fParameter(fParameter)
++	m_storage(storage)
+ {}
+ 
+ } // namespace Aqsis
+diff --git a/libs/shadervm/shadervm.cpp b/libs/shadervm/shadervm.cpp
+index f2177c3..3e52ff5 100644
+--- a/libs/shadervm/shadervm.cpp
++++ b/libs/shadervm/shadervm.cpp
+@@ -584,7 +584,7 @@ CqShaderVM::~CqShaderVM()
+  *  Function to create a local variable for a specific shader
+  */
+ 
+-IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, bool fParameter, bool fOutput )
++IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, IqShaderData::EqStorage storage )
+ {
+ 	// Create a VM specific shader variable, which implements the IqShaderData interface,
+ 	// based on the type and class specified.
+@@ -597,9 +597,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingFloat( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingFloat( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformFloat( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformFloat( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -612,9 +612,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingPoint( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingPoint( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformPoint( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformPoint( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -627,9 +627,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingNormal( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingNormal( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformNormal( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformNormal( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -642,9 +642,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingVector( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingVector( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformVector( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformVector( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -657,9 +657,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingString( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingString( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformString( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformString( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -672,9 +672,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingColor( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingColor( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformColor( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformColor( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -693,9 +693,9 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+ 				switch ( Class )
+ 				{
+ 						case class_varying:
+-						return ( new CqShaderVariableVaryingMatrix( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableVaryingMatrix( name.c_str(), storage ) );
+ 						case class_uniform:
+-						return ( new CqShaderVariableUniformMatrix( name.c_str(), fParameter ) );
++						return ( new CqShaderVariableUniformMatrix( name.c_str(), storage ) );
+ 						default: // Clear up compiler warnings
+ 						break;
+ 				}
+@@ -714,63 +714,63 @@ IqShaderData* CqShaderVM::CreateVariable( EqVariableType Type, EqVariableClass C
+  *  Function to create a local variable array for a specific shader
+  */
+ 
+-IqShaderData* CqShaderVM::CreateVariableArray( EqVariableType VarType, EqVariableClass VarClass, const CqString& name, TqInt Count, bool fParameter, bool fOutput )
++IqShaderData* CqShaderVM::CreateVariableArray( EqVariableType VarType, EqVariableClass VarClass, const CqString& name, TqInt Count, IqShaderData::EqStorage storage )
+ {
+ 	IqShaderData * pVar = 0;
+ 	switch ( VarType )
+ 	{
+ 			case type_float:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingFloat( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingFloat( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformFloat( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformFloat( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_point:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingPoint( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingPoint( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformPoint( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformPoint( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_normal:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingNormal( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingNormal( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformNormal( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformNormal( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_vector:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingVector( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingVector( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformVector( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformVector( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_color:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingColor( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingColor( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformColor( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformColor( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_string:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingString( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingString( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformString( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformString( name.c_str(), storage );
+ 			break;
+ 
+ 			case type_matrix:
+ 			if ( VarClass == class_varying )
+-				pVar = new CqShaderVariableVaryingMatrix( name.c_str(), fParameter );
++				pVar = new CqShaderVariableVaryingMatrix( name.c_str(), storage );
+ 			else
+-				pVar = new CqShaderVariableUniformMatrix( name.c_str(), fParameter );
++				pVar = new CqShaderVariableUniformMatrix( name.c_str(), storage );
+ 			break;
+ 			default: // Clear up the warnings
+ 			break;
+ 	}
+-	CqShaderVariableArray* pArray = new CqShaderVariableArray( name.c_str(), Count, fParameter );
++	CqShaderVariableArray* pArray = new CqShaderVariableArray( name.c_str(), Count, storage );
+ 	pArray->aVariables() [ 0 ] = pVar;
+ 	TqInt i;
+ 	for ( i = 1; i < Count; i++ )
+@@ -787,7 +787,7 @@ IqShaderData* CqShaderVM::CreateVariableArray( EqVariableType VarType, EqVariabl
+ IqShaderData* CqShaderVM::CreateTemporaryStorage( EqVariableType type, EqVariableClass _class )
+ {
+ 	CqString strName( "__temporary__" );
+-	return ( CreateVariable( type, _class, strName ) );
++	return ( CreateVariable( type, _class, strName, IqShaderData::Temporary ) );
+ }
+ 
+ 
+@@ -1015,8 +1015,7 @@ void CqShaderVM::LoadProgram( std::istream* pFile )
+ 			EqVariableType VarType = type_invalid;
+ 			EqVariableClass VarClass = class_varying;
+ 			bool fVarArray = false;
+-			bool fParameter = false;
+-			bool fOutput = false;
++			IqShaderData::EqStorage varStorage = IqShaderData::Temporary;
+ 			switch ( Segment )
+ 			{
+ 				case Seg_Data:
+@@ -1025,9 +1024,14 @@ void CqShaderVM::LoadProgram( std::istream* pFile )
+ 					while ( VarType == type_invalid )
+ 					{
+ 						if ( ohash == htoken) // == "output"
+-							fOutput = true;
++							varStorage = IqShaderData::OutputParameter;
+ 						else if ( phash == htoken) // == "param"
+-							fParameter = true;
++						{
++							// "output" implies "param"; careful not to
++							// overwrite the "output" designation.
++							if ( varStorage != IqShaderData::OutputParameter)
++								varStorage = IqShaderData::Parameter;
++						}
+ 						else if ( vhash == htoken) // == "varying"
+ 							VarClass = class_varying;
+ 						else if ( uhash == htoken) // == "uniform"
+@@ -1059,9 +1063,9 @@ void CqShaderVM::LoadProgram( std::istream* pFile )
+ 						continue;
+ 
+ 					if ( fVarArray )
+-						AddLocalVariable( CreateVariableArray( VarType, VarClass, token, array_count, fParameter, fOutput ) );
++						AddLocalVariable( CreateVariableArray( VarType, VarClass, token, array_count, varStorage ) );
+ 					else
+-						AddLocalVariable( CreateVariable( VarType, VarClass, token, fParameter, fOutput ) );
++						AddLocalVariable( CreateVariable( VarType, VarClass, token, varStorage ) );
+ 					break;
+ 
+ 				case Seg_Init:
+diff --git a/libs/shadervm/shadervm.h b/libs/shadervm/shadervm.h
+index 51cc8e0..94fd39b 100644
+--- a/libs/shadervm/shadervm.h
++++ b/libs/shadervm/shadervm.h
+@@ -174,8 +174,8 @@ class AQSIS_SHADERVM_SHARE CqShaderVM : public CqShaderStack, public IqShader, p
+ 		{
+ 			return ( m_Uses );
+ 		}
+-		virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, bool fArgument = false, bool fOutput = false  );
+-		virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, bool fParameter = false, bool fOutput = false  );
++		virtual IqShaderData* CreateVariable( EqVariableType Type, EqVariableClass Class, const CqString& name, IqShaderData::EqStorage storage );
++		virtual IqShaderData* CreateVariableArray( EqVariableType Type, EqVariableClass Class, const CqString& name, TqInt Count, IqShaderData::EqStorage storage );
+ 		virtual	IqShaderData* CreateTemporaryStorage( EqVariableType type, EqVariableClass _class );
+ 		virtual void DeleteTemporaryStorage( IqShaderData* pData );
+ 		virtual void DefaultSurface();
+diff --git a/libs/slxargs/slx.cpp b/libs/slxargs/slx.cpp
+index 5012132..c5bec84 100644
+--- a/libs/slxargs/slx.cpp
++++ b/libs/slxargs/slx.cpp
+@@ -87,6 +87,7 @@ static const char * SLX_STOR_CONSTANT_STR = "constant";
+ static const char * SLX_STOR_VARIABLE_STR = "variable";
+ static const char * SLX_STOR_TEMPORARY_STR = "temporary";
+ static const char * SLX_STOR_PARAMETER_STR = "parameter";
++static const char * SLX_STOR_OUTPUTPARAMETER_STR = "output parameter";
+ static const char * SLX_STOR_GSTATE_STR = "gstate";
+ 
+ static const char * SLX_DETAIL_UNKNOWN_STR = "unknown";
+@@ -239,7 +240,8 @@ static void FreeArgRecStorage( SLX_VISSYMDEF * theShaderArgArray, int theShaderN
+  * Store info in the shader arg record specified by index
+ */
+ static RtInt StoreShaderArgDef( SLX_VISSYMDEF * theArgsArray, int argsArrayIdx,
+-                                char * varName, SLX_TYPE varType, char * spacename, char * defaultVal, int arrayLen )
++                                char * varName, SLX_TYPE varType, SLX_STORAGE storage,
++								char * spacename, char * defaultVal, int arrayLen )
+ {
+ 	SLX_VISSYMDEF * theShaderArgRec;
+ 	RtInt result;
+@@ -252,7 +254,7 @@ static RtInt StoreShaderArgDef( SLX_VISSYMDEF * theArgsArray, int argsArrayIdx,
+ 
+ 	theShaderArgRec->svd_type = varType;
+ 
+-	theShaderArgRec->svd_storage = SLX_STOR_PARAMETER;
++	theShaderArgRec->svd_storage = storage;
+ 
+ 	theShaderArgRec->svd_detail = SLX_DETAIL_UNIFORM;
+ 
+@@ -327,7 +329,21 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 	int	arrayLen = 0;
+ 	int	arrayIndex;
+ 
+-	if ( shaderVar != NULL && shaderVar->fParameter() )
++	SLX_STORAGE storage = SLX_STOR_UNKNOWN;
++	switch(shaderVar->Storage())
++	{
++		case IqShaderData::Parameter:
++			storage = SLX_STOR_PARAMETER;
++			break;
++		case IqShaderData::OutputParameter:
++			storage = SLX_STOR_OUTPUTPARAMETER;
++			break;
++		default:
++			storage = SLX_STOR_UNKNOWN;
++			break;
++	}
++
++	if ( shaderVar != NULL && storage != SLX_STOR_UNKNOWN )
+ 	{
+ 		theType = shaderVar->Type();
+ 		theClass = shaderVar->Class();
+@@ -370,7 +386,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					spacename = ( char * ) malloc( 1 );
+ 					*spacename = 0x0;	// NULL string
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -407,7 +423,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					spacename = ( char * ) malloc( 1 );
+ 					*spacename = 0x0;	// NULL string
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -447,7 +463,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					strcpy( spacename, "current" );
+ 
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -487,7 +503,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					strcpy( spacename, "current" );
+ 
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -527,7 +543,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					strcpy( spacename, "current" );
+ 
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -567,7 +583,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					strcpy( spacename, "rgb" );
+ 
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -633,7 +649,7 @@ static void AddShaderVar( IqShaderData * shaderVar,
+ 					strcpy( spacename, "current" );
+ 
+ 					StoreShaderArgDef( theArgsArray, *theNArgs, theVarNameStr, slxType,
+-					                   spacename, defaultVal, arrayLen );
++					                   storage, spacename, defaultVal, arrayLen );
+ 					( *theNArgs ) ++;
+ 				}
+ 				break;
+@@ -663,7 +679,7 @@ static RtInt GetCurrentShaderInfo( char * name, char * filePath )
+ 	{
+ 		try
+ 		{
+-			boost::shared_ptr<IqShader> pShader = createShaderVM(0, slxFile, DSOPath);
++			boost::shared_ptr<IqShader> pShader = createShaderVM(0, slxFile, DSOPath ? DSOPath : "");
+ 			pShader->SetstrName( filePath );
+ 			pShader->PrepareDefArgs();
+ 
+@@ -1337,6 +1353,9 @@ char *SLX_StortoStr ( SLX_STORAGE storage )
+ 			case SLX_STOR_PARAMETER:
+ 			slxStorageStr = ( char * ) SLX_STOR_PARAMETER_STR;
+ 			break;
++			case SLX_STOR_OUTPUTPARAMETER:
++			slxStorageStr = ( char * ) SLX_STOR_OUTPUTPARAMETER_STR;
++			break;
+ 			case SLX_STOR_GSTATE:
+ 			slxStorageStr = ( char * ) SLX_STOR_GSTATE_STR;
+ 			break;
+diff --git a/tools/aqsltell/aqsltell.cpp b/tools/aqsltell/aqsltell.cpp
+index a4310ff..e5ab61b 100644
+--- a/tools/aqsltell/aqsltell.cpp
++++ b/tools/aqsltell/aqsltell.cpp
+@@ -151,9 +151,10 @@ int main( int argc, const char** argv )
+ 						if ( symPtr->svd_arraylen != 0 )
+ 							arrayLen = symPtr->svd_arraylen;
+ 
+-						std::cout << "    \"" << symPtr->svd_name << "\" \"parameter " <<
+-						SLX_DetailtoStr( symPtr->svd_detail ) << " " <<
+-						SLX_TypetoStr( symPtr->svd_type );
++						std::cout << "    \"" << symPtr->svd_name << "\" \""
++							<< SLX_StortoStr( symPtr->svd_storage ) << " "
++							<< SLX_DetailtoStr( symPtr->svd_detail ) << " "
++							<< SLX_TypetoStr( symPtr->svd_type );
+ 
+ 						if ( symPtr->svd_arraylen != 0 )
+ 							std::cout << "[" << arrayLen << "]";
+diff --git a/tools/displays/sdcBMP/d_sdcBMP.cpp b/tools/displays/sdcBMP/d_sdcBMP.cpp
+index b6edb26..1be42ba 100644
+--- a/tools/displays/sdcBMP/d_sdcBMP.cpp
++++ b/tools/displays/sdcBMP/d_sdcBMP.cpp
+@@ -169,7 +169,7 @@ extern "C" PtDspyError DspyImageOpen(PtDspyImageHandle    *image,
+ 
+    // Initialize our global resources
+ 
+-	memset(&g_Data, sizeof(AppData), 0);
++	memset(&g_Data, 0, sizeof(AppData));
+ 
+ 	flagstuff->flags = PkDspyFlagsWantsScanLineOrder;
+ 
+diff --git a/tools/displays/sdcWin32/d_sdcWin32.cpp b/tools/displays/sdcWin32/d_sdcWin32.cpp
+index 53d9259..ae2f62e 100644
+--- a/tools/displays/sdcWin32/d_sdcWin32.cpp
++++ b/tools/displays/sdcWin32/d_sdcWin32.cpp
+@@ -247,7 +247,7 @@ static bool InitApplication(HINSTANCE hInstance)
+ 
+ 	// Initialize our global application data
+ 
+-	memset(&g_Data, sizeof(AppData), 0);
++	memset(&g_Data, 0, sizeof(AppData));
+ 
+ 
+ 	// Save our instance handle.
diff --git a/aqsis.spec b/aqsis.spec
index b7e8988..2968156 100644
--- a/aqsis.spec
+++ b/aqsis.spec
@@ -1,13 +1,14 @@
 Name:		aqsis
 Version:	1.6.0
-Release:	7%{?dist}
+Release:	8%{?dist}
 Summary:	Open source 3D rendering solution adhering to the RenderMan standard
 Group:		Applications/Multimedia
 
 License:	GPLv2+ and LGPLv2+
 URL:		http://www.aqsis.org
 Source0:	http://downloads.sourceforge.net/aqsis/aqsis-%{version}.tar.gz
-Patch0:		aqsis-1.6.0-cstdlib.patch
+Patch0:         aqsis-1.6.0-bugfix20110329.patch
+Patch1:		aqsis-1.6.0-cstdlib.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  desktop-file-utils
@@ -20,7 +21,7 @@ BuildRequires:  fltk-devel >= 1.1.0, fltk-fluid
 BuildRequires:  libjpeg-devel >= 6
 BuildRequires:  libtiff-devel >= 3.7.1
 BuildRequires:  libxslt
-BuildRequires:  tinyxml-devel
+#BuildRequires:  tinyxml-devel
 BuildRequires:  OpenEXR-devel
 BuildRequires:  zlib-devel >= 1.1.4
 
@@ -98,6 +99,7 @@ integration with third-party applications.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 
 %build
@@ -119,7 +121,7 @@ pushd build
   -DAQSIS_BOOST_THREAD_LIBRARY_NAME=boost_thread-mt \
   -DAQSIS_BOOST_WAVE_LIBRARY_NAME=boost_wave-mt \
   -DCMAKE_CXX_FLAGS="$CXXFLAGS -DBOOST_FILESYSTEM_VERSION=2" \
-  -DAQSIS_USE_EXTERNAL_TINYXML:BOOL=ON ..
+  -DAQSIS_USE_EXTERNAL_TINYXML:BOOL=OFF ..
 
 make VERBOSE=1 %{?_smp_mflags}
 
@@ -242,6 +244,10 @@ fi || :
 
 
 %changelog
+* Tue Mar 29 2011 Nicolas Chauvet <kwizart at gmail.com> - 1.6.0-8
+- Update to current bugfix
+- Disable tinyxml
+
 * Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.6.0-7
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 


More information about the scm-commits mailing list