private void addUniform( String uniformName, String uniformType, HashMap<String, ArrayList<GLSLStruct>> structs )
	{
		boolean addThis = true;
		ArrayList<GLSLStruct> structComponents = structs.get( uniformType );

		if ( structComponents != null )
		{
			addThis = false;
			for ( GLSLStruct struct : structComponents )
			{
				addUniform( uniformName + "." + struct.name, struct.type, structs );
			}
		}

		if ( !addThis )
			return;

		int uniformLocation = glGetUniformLocation( resource.getProgram(), uniformName );

		if ( uniformLocation == 0xFFFFFFFF )
		{
			System.err.println( "Error: Could not find uniform: " + uniformName + ": not influenced the result" );
			new Exception().printStackTrace();
			System.exit( 1 );
		}

		resource.getUniforms().put( uniformName, uniformLocation );
	}