/// <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; }
public CUarray GetGraphicsSubResourceMappedArray(CUgraphicsResource resource, uint arrIndex, uint mipLevel) { CUarray pArray = new CUarray(); this.LastError = CUDADriver.cuGraphicsSubResourceGetMappedArray(ref pArray, resource, arrIndex, mipLevel); return(pArray); }
public ulong GetGraphicsResourceMappedPointerSize(CUgraphicsResource resource) { CUdeviceptr pDevPtr = new CUdeviceptr(); SizeT pSize = 0; this.LastError = CUDADriver.cuGraphicsResourceGetMappedPointer(ref pDevPtr, ref pSize, resource); return(pSize); }
public CUdeviceptr GetGraphicsResourceMappedPointer(CUgraphicsResource resource, out uint size) { CUdeviceptr pDevPtr = new CUdeviceptr(); SizeT pSize = 0; this.LastError = CUDADriver.cuGraphicsResourceGetMappedPointer(ref pDevPtr, ref pSize, resource); size = pSize; return(pDevPtr); }
/// <summary> /// Registers a new graphics interop resource for interop with OpenGL buffer /// </summary> /// <param name="resource">OpenGL resource to register</param> /// <param name="flags">register Flags</param> public CudaOpenGLBufferInteropResource(uint resource, CUGraphicsRegisterFlags flags) { _cudaResource = new CUgraphicsResource(); _resource = resource; _registerFlags = flags; res = OpenGLNativeMethods.CUDA3.cuGraphicsGLRegisterBuffer(ref _cudaResource, _resource, flags); Debug.WriteLine(String.Format("{0:G}, {1}: {2}", DateTime.Now, "cuGraphicsGLRegisterBuffer", res)); if (res != CUResult.Success) { throw new CudaException(res); } _IsRegistered = true; _IsMapped = false; }
public static extern CUResult cuGraphicsD3D10RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, uint Flags);
public static extern CUResult cuGraphicsD3D9RegisterResource(ref CUgraphicsResource pCudaResource, IntPtr pD3DResource, CUGraphicsRegisterFlags Flags);
public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, uint target, uint Flags);
public static extern CUResult cuGraphicsGLRegisterBuffer(ref CUgraphicsResource pCudaResource, uint buffer, uint Flags);
public static extern CUResult cuGraphicsGLRegisterImage(ref CUgraphicsResource pCudaResource, uint image, CudaOpenGLImageInteropResource.OpenGLImageTarget target, CUGraphicsRegisterFlags Flags);
public void SetGraphicsResourceMapFlags(CUgraphicsResource resource, CUGraphicsMapResourceFlags flags) { this.LastError = CUDADriver.cuGraphicsResourceSetMapFlags(resource, (uint)flags); }
public CUdeviceptr GetGraphicsResourceMappedPointer(CUgraphicsResource resource) { uint num; return(this.GetGraphicsResourceMappedPointer(resource, out num)); }
public void UnregisterGraphicsResource(CUgraphicsResource resource) { this.LastError = CUDADriver.cuGraphicsUnregisterResource(resource); }