internal static Camera TryGet(IntPtr handle)
        {
            if (handle == IntPtr.Zero)
                return null;

            var camera = Cameras.FirstOrDefault(x => x.Handle == handle);
            if (camera != null)
                return camera;

            camera = new Camera();
            camera.Handle = handle;

            Cameras.Add(camera);

            return camera;
        }