[][src]Struct rustacuda::memory::array::ArrayObject

pub struct ArrayObject { /* fields omitted */ }

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]

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]

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]

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]

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]

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]

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]

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.