[−][src]Struct rustacuda::memory::array::ArrayObject
A CUDA Array. Can be bound to a texture or surface.
Implementations
impl ArrayObject[src]
pub fn from_descriptor(descriptor: &ArrayDescriptor) -> CudaResult<Self>[src]
Constructs a generic ArrayObject from an ArrayDescriptor.
pub fn new(
dims: [usize; 3],
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
dims: [usize; 3],
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Allocates a new CUDA Array that is up to 3-dimensions.
dims contains the extents of the array. dims[0] must be non-zero. dims[1] must be
non-zero if dims[2] is non-zero. The rank of the array is equal to the number of non-zero
dims.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; let one_dim_array = ArrayObject::new([10, 0, 0], ArrayFormat::Float, 1)?; let two_dim_array = ArrayObject::new([10, 12, 0], ArrayFormat::Float, 1)?; let three_dim_array = ArrayObject::new([10, 12, 14], ArrayFormat::Float, 1)?;
pub fn new_1d(
width: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
width: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Allocates a new 1D CUDA Array.
width must be non-zero.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates a 1D array of 10 single-precision, single-channel floating point values. let one_dim_array = ArrayObject::new_1d(10, ArrayFormat::Float, 1)?;
pub fn new_2d(
dims: [usize; 2],
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
dims: [usize; 2],
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Allocates a new CUDA Array that is up to 2-dimensions.
dims contains the extents of the array. dims[0] must be non-zero. The rank of the array
is equal to the number of non-zero dims.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates an 8x24 array of single-precision, single-channel floating point values. let one_dim_array = ArrayObject::new_2d([8, 24], ArrayFormat::Float, 1)?;
pub fn new_layered(
dims: [usize; 2],
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
dims: [usize; 2],
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Creates a new Layered 1D or 2D CUDA Array.
dims contains the extents of the array. dims[0] must be non-zero. The rank of the array
is equivalent to the number of non-zero dimensions.
num_layers determines the number of layers in the array.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates a 7x8 array with 10 layers of single-precision, single-channel floating // point values. let layered_array = ArrayObject::new_layered([7, 8], 10, ArrayFormat::Float, 1)?;
pub fn new_layered_1d(
width: usize,
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
width: usize,
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Creates a new Layered 1D CUDA Array.
width must be non-zero.
num_layers determines the number of layers in the array.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates a 5-element array with 10 layers of single-precision, single-channel floating // point values. let layered_array = ArrayObject::new_layered_1d(5, 10, ArrayFormat::Float, 1)?;
pub fn new_cubemap(
side: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
side: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Creates a new Cubemap CUDA Array. The array is represented as 6 side x side 2D arrays.
side is the length of an edge of the cube.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates an 8x8 Cubemap array of single-precision, single-channel floating point // numbers. let layered_array = ArrayObject::new_cubemap(8, ArrayFormat::Float, 1)?; // All non-layered cubemap arrays have a depth of 6. assert_eq!(6, layered_array.descriptor()?.depth());
pub fn new_layered_cubemap(
side: usize,
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>[src]
side: usize,
num_layers: usize,
format: ArrayFormat,
num_channels: c_uint
) -> CudaResult<Self>
Creates a new Layered Cubemap CUDA Array. The array is represented as multiple 6 side x side 2D arrays.
side is the length of an edge of the cube.
num_layers is the number of cubemaps in the array. The actual "depth" of the array is
num_layers * 6.
format determines the data-type of the array.
num_channels determines the number of channels per array element (1, 2, or 4).
use rustacuda::memory::array::{ArrayObject, ArrayFormat}; // Allocates an 8x8 Layered Cubemap array of single-precision, single-channel floating point // values with 5 layers. let layered_array = ArrayObject::new_layered_cubemap(8, 5, ArrayFormat::Float, 1)?; // The depth of a layered cubemap array is equal to the number of layers * 6. assert_eq!(30, layered_array.descriptor()?.depth());
pub fn descriptor(&self) -> CudaResult<ArrayDescriptor>[src]
Gets the descriptor associated with this array.
pub fn drop(array: ArrayObject) -> DropResult<ArrayObject>[src]
Try to destroy an ArrayObject. Can fail - if it does, returns the CUDA error and the
un-destroyed array object
Trait Implementations
impl Debug for ArrayObject[src]
impl Drop for ArrayObject[src]
Auto Trait Implementations
impl RefUnwindSafe for ArrayObject
impl !Send for ArrayObject
impl !Sync for ArrayObject
impl Unpin for ArrayObject
impl UnwindSafe for ArrayObject
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,