void OnApplicationQuit() { // HACK(KARAN): This is temporary for saving car controls if (this.name == "Front") { if (debugCarControlsData.Length != 0) { sw.WriteLine(debugCarControlsData); } sw.Close(); } if (doubleBuffer.IsNotEmpty()) { String filePath = capturedImagesDirectory + "\\" + (fileNum++) + ".raw"; byte[] remainingImages = doubleBuffer.FlushAndGetAllData(); int imageSize = rawHeader.imageWidth * rawHeader.imageHeight * rawHeader.bytesPerPixel; rawHeader.numImages = remainingImages.Length / imageSize; rawHeaderSerialized = rawHeader.ToByteArray(); WriteRawFile(filePath, rawHeader, rawHeaderSerialized, remainingImages); } System.IO.File.WriteAllText(capturedImagesDirectory + "\\" + this.name + "_debugCaptureFPS.csv", debugShutterRateData); }
public void Start() { // HACK(KARAN): This is temporary for saving car controls if (this.name == "Front" && sw == null) { sw = new StreamWriter(Application.dataPath + "\\CapturedImages~\\carControls.csv", false); } if (settings.useDefault) { settings.imageWidth = 256; settings.imageHeight = 256; settings.bytesPerPixel = 3; settings.numFramesToBuffer = 100; settings.captureFPS = 15; } secondsPerImage = (1.0f / settings.captureFPS); imageRect = new Rect(0, 0, settings.imageWidth, settings.imageHeight); /* Texture Formats: RGBA32, RGB24*/ TextureFormat format = settings.bytesPerPixel == 3 ? TextureFormat.RGB24 : TextureFormat.RGBA32; image = new Texture2D(settings.imageWidth, settings.imageHeight, format, false); cameraComponent = GetComponent <Camera>(); cameraComponent.targetTexture = new RenderTexture(settings.imageWidth, settings.imageHeight, 0, RenderTextureFormat.ARGB32); cameraComponent.enabled = false; // NOTE(KARAN): Setting up of double buffer for the async version. rawHeader = new RawHeader(); rawHeader.imageHeight = settings.imageHeight; rawHeader.imageWidth = settings.imageWidth; rawHeader.bytesPerPixel = settings.bytesPerPixel; rawHeader.numImages = settings.numFramesToBuffer; rawHeaderSerialized = rawHeader.ToByteArray(); int fileSize = rawHeader.imageWidth * rawHeader.imageHeight * rawHeader.bytesPerPixel * rawHeader.numImages; doubleBuffer = new DoubleBuffer(fileSize); capturedImagesDirectory = Application.dataPath + "\\CapturedImages~\\" + this.name; if (!Directory.Exists(capturedImagesDirectory)) { Directory.CreateDirectory(capturedImagesDirectory); } }