/// <summary> /// Registers a new graphics interop resource for interop with DirectX /// </summary> /// <param name="d3dResource">DirectX resource to register</param> /// <param name="flags">register Flags</param> /// <param name="version">DirectX version</param> public CudaDirectXInteropResource(IntPtr d3dResource, CUGraphicsRegisterFlags flags, CudaContext.DirectXVersion version) { _cudaResource = new CUgraphicsResource(); _d3dResource = d3dResource; _registerFlags = flags; _version = version; switch (version) { case CudaContext.DirectXVersion.D3D9: res = DirectX9NativeMethods.CUDA3.cuGraphicsD3D9RegisterResource(ref _cudaResource, _d3dResource, flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D9RegisterResource", res)); break; case CudaContext.DirectXVersion.D3D10: res = DirectX10NativeMethods.CUDA3.cuGraphicsD3D10RegisterResource(ref _cudaResource, _d3dResource, flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D10RegisterResource", res)); break; case CudaContext.DirectXVersion.D3D11: res = DirectX11NativeMethods.cuGraphicsD3D11RegisterResource(ref _cudaResource, _d3dResource, flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsD3D11RegisterResource", res)); break; default: throw new ArgumentException("DirectX version not supported.", "dXVersion"); } if (res != CUResult.Success) { throw new CudaException(res); } _IsRegistered = true; _IsMapped = false; }
/// <summary> /// Registers a new graphics interop resource for interop with DirectX /// </summary> /// <param name="d3dResource">DirectX resource to register</param> /// <param name="flags">register Flags</param> /// <param name="version">DirectX version</param> /// <param name="mapFlags">resource mapping flags</param> public CudaDirectXInteropResource(IntPtr d3dResource, CUGraphicsRegisterFlags flags, CudaContext.DirectXVersion version, CUGraphicsMapResourceFlags mapFlags) : this(d3dResource, flags, version) { SetMapFlags(mapFlags); }