/*
		 * Get list of available configurations
		 */
		public List<Configuration> getAvailableConfigurationList(ReleaseTypes releasesTypes, Platforms platforms)
		{
			List<ReleaseType> activeReleaseTypeList = releasesTypes.getReleaseTypeList().Where(x => x.isActive).ToList();
			List<IPlatform> activePlatformList = platforms.platformDictionary.Values.Where(x => x.getPlatformProperties().isSupported()).ToList();
			
			List<Configuration> configurationListResult = new List<Configuration>();

			foreach (ReleaseType releaseType in activeReleaseTypeList)
			{
				foreach (IPlatform platform in activePlatformList)
				{
					PlatformProperties platformProperties = platform.getPlatformProperties();
					
					foreach (DistributionPlatform distributionPlatform in platformProperties.getActiveDistributionPlatformList())
					{
						foreach (PlatformArchitecture platformArchitecture in platformProperties.getActivePlatformArchitectureList())
						{
							foreach (ITextureCompression textureCompression in platformProperties.getActiveTextureCompressionList())
							{
								Configuration configuration = new Configuration(releaseType, platform, distributionPlatform, platformArchitecture, textureCompression);
								
								if (!configurationList.Contains(configuration))
								{
									configurationListResult.Add(configuration); 
								}
							}
						}
					}
				}
			}
			
			return configurationListResult;
		}
		/*
		 * Constructor
		 */
		public PlatformsRenderer(Platforms platforms)
		{
			m_platforms = platforms;
			
			m_platformRendererList = new List<PlatformRenderer>()
			{
				new PlatformRenderer(m_platforms.getPlatformAndroid(), new PlatformAndroidAdditionalRenderer(m_platforms.getPlatformAndroid()), updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformiOS(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformWebPlayer(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformWindows(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformMac(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformLinux(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformWindowsPhone8(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformWindowsStore(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformWebGL(), null, updateSupportedPlatformList),
				new PlatformRenderer(m_platforms.getPlatformBlackBerry(), null, updateSupportedPlatformList),
			};
			
			updateSupportedPlatformList();
		}