void updateTime(long nanoSecs, UpdateType updateType) {
		// Initialise the any variables to their starting values
		if (previousGameTime == 0) {
			previousGameTime = nanoSecs;
		}

		// Work out the elapsed time since the previous update
		elapsedGameTimeNano = nanoSecs - previousGameTime;
		elapsedGameTimeMilli = elapsedGameTimeNano / 1000000l;

		previousGameTime = nanoSecs;

		// Update our stats of updates per second and renders per second
		switch (updateType) {
			case LOGIC_ONLY:
				logicUpdateCount++;
				break;
			case RENDER_ONLY:
				renderUpdateCount++;
				break;
			case RENDER_AND_LOGIC:
				logicUpdateCount++;
				renderUpdateCount++;
				break;
		}

		// Increment the 'total' elapsed time, this is used to check if one
		// second has passed, which we can then use to get the FPS/UPS
		totalElapsedGameTime += elapsedGameTimeNano;

		// Work out if a second has passed, if so output the average FPS
		// I liked 1.7's use of underscores in numbers :(
		// which use to have :
		// if (nanoSecs > FPSRecordingTime + 1_000_000_000l) {
		if (totalElapsedGameTime > 1000000000l) {
			logger.info("FPS :: ", renderUpdateCount,
					" UPS :: ", logicUpdateCount);

			// Take away a second from our total recording time, but keep the
			// offset for more reliable results
			totalElapsedGameTime -= 1000000000l;
			// totalElapsedGameTime = 0;

			// reset all of our tracking
			logicUpdateCount = 0;
			renderUpdateCount = 0;
		}
	}