public AsyncC(CarSocket socket, RenderTexture renderTexture, FPSLogger logger) { this.socket = socket; this.logger = logger; this.renderTexture = renderTexture; for (int i = 0; i < readers.Length; ++i) { readers[i] = new GPUReader((int)socket.imageWidth * (int)socket.imageHeight); } }
private static void Roll(GPUReader[] array) { GPUReader tmp = array[0]; for (int i = 1; i < array.Length; ++i) { array[i - 1] = array[i]; } array[array.Length - 1] = tmp; }
private void Start() { mCamera = GetComponent <Camera>(); renderTexture = new RenderTexture((int)CarSocket.IMAGE_WIDTH, (int)CarSocket.IMAGE_HEIGHT, 24, RenderTextureFormat.ARGB32); renderTexture.antiAliasing = 2; for (int i = 0; i < readers.Length; ++i) { readers[i] = new GPUReader((int)CarSocket.IMAGE_WIDTH * (int)CarSocket.IMAGE_HEIGHT); } virtualPhoto = new Texture2D((int)CarSocket.IMAGE_WIDTH, (int)CarSocket.IMAGE_HEIGHT, TextureFormat.RGB24, false); Debug.Log("CameraOutputController started"); mCamera.rect = new Rect(0, 0, 1, 1); mCamera.aspect = 1.0f * CarSocket.IMAGE_WIDTH / CarSocket.IMAGE_HEIGHT; mCamera.targetTexture = renderTexture; mCamera.enabled = ShouldEnableCamera; RenderPipelineManager.endFrameRendering += OnEndFrameRendering; this.async = SystemInfo.supportsAsyncGPUReadback; Debug.Log("Async GPU Readback supported: " + this.async); logger = FindObjectOfType <FPSLogger>(); }