view opencl/c/d3d10.d @ 1:5b5ace425b37

* moved c.opencl to c.cl * updated c.cl_gl + c.d3d10
author Trass3r
date Wed, 14 Apr 2010 13:52:17 +0200
parents
children
line wrap: on
line source

/**********************************************************************************
 * Copyright (c) 2008-2009 The Khronos Group Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and/or associated documentation files (the
 * "Materials"), to deal in the Materials without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Materials, and to
 * permit persons to whom the Materials are furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Materials.
 *
 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
 **********************************************************************************/

// $Revision: 10911 $ on $Date: 2010-04-05 14:41:26 -0700 (Mon, 05 Apr 2010) $

module opencl.c.d3d10;

//import d3d10;
import opencl.c.cl;
import opencl.c.platform;

extern(C):

/******************************************************************************/

const cl_khr_d3d10_sharing = 1;

typedef cl_uint cl_d3d10_device_source_khr;
typedef cl_uint cl_d3d10_device_set_khr;

/******************************************************************************/

enum
{
//	Error Codes
	CL_INVALID_D3D10_DEVICE_KHR				= -1002,
	CL_INVALID_D3D10_RESOURCE_KHR			= -1003,
	CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR	= -1004,
	CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR		= -1005,

//	cl_d3d10_device_source_nv
	CL_D3D10_DEVICE_KHR						= 0x4010,
	CL_D3D10_DXGI_ADAPTER_KHR				= 0x4011,

//	cl_d3d10_device_set_nv
	CL_PREFERRED_DEVICES_FOR_D3D10_KHR		= 0x4012,
	CL_ALL_DEVICES_FOR_D3D10_KHR			= 0x4013,

//	cl_context_info
	CL_CONTEXT_D3D10_DEVICE_KHR						= 0x4014,
	CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR	= 0x402C,

//	cl_mem_info
	CL_MEM_D3D10_RESOURCE_KHR				= 0x4015,

//	cl_image_info
	CL_IMAGE_D3D10_SUBRESOURCE_KHR			= 0x4016,

//	cl_command_type
	CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR	= 0x4017,
	CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR	= 0x4018,
}

/******************************************************************************/

typedef cl_int (*clGetDeviceIDsFromD3D10KHR_fn)(
	cl_platform_id				platform,
	cl_d3d10_device_source_khr	d3d_device_source,
	void*						d3d_object,
	cl_d3d10_device_set_khr		d3d_device_set,
	cl_uint						num_entries,
	cl_device_id*				devices,
	cl_uint*					num_devices
);

typedef cl_mem (*clCreateFromD3D10BufferKHR_fn)(
	cl_context		context,
	cl_mem_flags	flags,
	void*			resource, // ID3D10Buffer*
	cl_int*			errcode_ret
);

typedef cl_mem (*clCreateFromD3D10Texture2DKHR_fn)(
	cl_context			context,
	cl_mem_flags		flags,
	void*				resource, // ID3D10Texture2D*
	UINT				subresource,
	cl_int*				errcode_ret
);

typedef cl_mem (*clCreateFromD3D10Texture3DKHR_fn)(
	cl_context			context,
	cl_mem_flags		flags,
	void*				resource, // ID3D10Texture3D*
	UINT				subresource,
	cl_int*				errcode_ret
);

typedef cl_int (*clEnqueueAcquireD3D10ObjectsKHR_fn)(
	cl_command_queue	command_queue,
	cl_uint				num_objects,
	const(cl_mem)*		mem_objects,
	cl_uint				num_events_in_wait_list,
	const(cl_event)*	event_wait_list,
	cl_event*			event
);

typedef cl_int (*clEnqueueReleaseD3D10ObjectsKHR_fn)(
	cl_command_queue	command_queue,
	cl_uint				num_objects,
	cl_mem*				mem_objects,
	cl_uint				num_events_in_wait_list,
	const(cl_event)*	event_wait_list,
	cl_event*			event
);