public DxgiSurface3(object resource)
        {
            IntPtr ptr = Marshal.GetIUnknownForObject(resource);

            try
            {
                this.surface = (IDxgiSurface2)Marshal.GetObjectForIUnknown(ptr);
            }
            finally
            {
                Marshal.Release(ptr);
            }
        }
        public DxgiSurface2(object resource)
        {
            IntPtr ptr = Marshal.GetIUnknownForObject(resource);

            try
            {
                this.surface = (IDxgiSurface2)Marshal.GetObjectForIUnknown(ptr);
            }
            finally
            {
                Marshal.Release(ptr);
            }
        }
 internal DxgiSurface3(IDxgiSurface2 surface)
 {
     this.surface = surface;
 }
 internal DxgiSurface2(IDxgiSurface2 surface)
 {
     this.surface = surface;
 }