Пример #1
0
		private void BuildFFPSubRenderState( int subRenderStateOrder, string subRenderStateType,
		                                     ShaderGenerator.SGPass sgPass, TargetRenderState renderState )
		{
			if ( subRenderStateOrder == -1 )
			{
				throw new Exception( "Actual sub render type needs to be declared" );
			}

			SubRenderState subRenderState;

			subRenderState = sgPass.GetCustomFFPSubState( subRenderStateOrder );

			if ( subRenderState == null )
			{
				subRenderState = ShaderGenerator.Instance.CreateSubRenderState( subRenderStateType );
			}

			if ( subRenderState.PreAddToRenderState( renderState, sgPass.SrcPass, sgPass.DstPass ) )
			{
				renderState.AddSubRenderStateInstance( subRenderState );
			}
			else
			{
				ShaderGenerator.Instance.DestroySubRenderState( subRenderState );
			}
		}