Example #1
0
        /// <summary>
        /// Update preview.
        /// </summary>
        /// <param name="carId">Car ID.</param>
        /// <param name="skinId">Skin ID.</param>
        /// <param name="destination">Destination filename.</param>
        /// <param name="carData">Car data (provide it only if it’s already loaded, so Updater won’t load it again).</param>
        /// <param name="information">Some lines for EXIF data, optional.</param>
        /// <param name="callback">Callback in Task version? Because, with Delayed Convertation enabled, image might be saved later.</param>
        public async Task ShotAsync(string carId, string skinId, string destination = null, DataWrapper carData = null,
                                    ImageUtils.ImageInformation information         = null, Action callback     = null)
        {
            if (_carId != carId)
            {
                if (_renderer == null)
                {
                    _renderer = await Task.Run(() => CreateRenderer(_acRoot, _options, GetCarDescription(carId, carData), skinId)).ConfigureAwait(false);
                }
                else
                {
                    await _renderer.SetCarAsync(GetCarDescription(carId, carData), skinId);
                }
                _carId = carId;
                UpdateCamera();
            }
            else
            {
                _renderer.SelectSkin(skinId);
            }

            await ShotInnerAsync(carId, skinId, destination, information, callback).ConfigureAwait(false);
        }