java.lang.Object | ||
↳ | android.support.v8.renderscript.BaseObj | |
↳ | android.support.v8.renderscript.Allocation |
This class provides the primary method through which data is passed to
and from RenderScript kernels. An Allocation provides the backing store for
a given Type
.
An Allocation also contains a set of usage flags that denote how the
Allocation could be used. For example, an Allocation may have usage flags
specifying that it can be used from a script as well as input to a Sampler
. A developer must synchronize
across these different usages using
syncAll(int)
in
order to ensure that different users of the Allocation have a consistent view
of memory. For example, in the case where an Allocation is used as the output
of one kernel and as Sampler input in a later kernel, a developer must call
syncAll(Allocation.USAGE_SCRIPT)
prior to launching the
second kernel to ensure correctness.
An Allocation can be populated with the copyFrom(Bitmap)
routines. For
more complex Element types, the copyFromUnchecked(byte[])
methods can be
used to copy from byte arrays or similar constructs.
For more information about creating an application that uses RenderScript, read the RenderScript developer guide.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Allocation.MipmapControl | Controls mipmap behavior when using the bitmap creation and update functions. |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | USAGE_GRAPHICS_TEXTURE | The Allocation will be used as a texture source by one or more graphics programs. | |||||||||
int | USAGE_IO_INPUT | The Allocation will be used as a SurfaceTexture
consumer. |
|||||||||
int | USAGE_IO_OUTPUT | The Allocation will be used as a SurfaceTexture
producer. |
|||||||||
int | USAGE_SCRIPT | The Allocation will be bound to and accessed by scripts. | |||||||||
int | USAGE_SHARED | The Allocation's backing store will be inherited from another object
(usually a Bitmap ); copying to or from the
original source Bitmap will cause a synchronization rather than a full
copy. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy part of an Allocation into this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy an array into part of this Allocation.
| |||||||||||
Copy from an array into a rectangular region in this Allocation.
| |||||||||||
Copy from an array into a rectangular region in this Allocation.
| |||||||||||
Copy from an array into a rectangular region in this Allocation.
| |||||||||||
Copy from an array into a rectangular region in this Allocation.
| |||||||||||
Copy a
Bitmap into an Allocation. | |||||||||||
Copy a rectangular region from an Allocation into a rectangular region in
this Allocation.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy an array of RS objects to the Allocation.
| |||||||||||
Copy an Allocation from an Allocation.
| |||||||||||
Copy into an Allocation from a
Bitmap . | |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy into this Allocation from an array.
| |||||||||||
Copy from the Allocation into a byte array.
| |||||||||||
Copy from the Allocation into a int array.
| |||||||||||
Copy from the Allocation into a float array.
| |||||||||||
Copy from the Allocation into a short array.
| |||||||||||
Copy from the Allocation into a
Bitmap . | |||||||||||
Creates a non-mipmapped cubemap Allocation for use as a graphics texture
from a
Bitmap containing the horizontal list of
cube faces. | |||||||||||
Creates a cubemap Allocation from a
Bitmap
containing the horizontal list of cube faces. | |||||||||||
Creates a cubemap Allocation from 6
Bitmap
objects containing the cube faces. | |||||||||||
Creates a non-mipmapped cubemap Allocation for use as a sampler input
from 6
Bitmap objects containing the cube
faces. | |||||||||||
Creates an Allocation from a
Bitmap . | |||||||||||
Creates an Allocation from a
Bitmap . | |||||||||||
Creates a non-mipmapped Allocation to use as a graphics texture from the
Bitmap referenced by resource ID. | |||||||||||
Creates an Allocation from the Bitmap referenced
by resource ID.
| |||||||||||
Creates an Allocation containing string data encoded in UTF-8 format.
| |||||||||||
Creates an Allocation with a specified number of given elements
| |||||||||||
Creates an Allocation with a specified number of given elements
| |||||||||||
Creates an Allocation with the size specified by the type and no mipmaps
generated by default
| |||||||||||
Creates an Allocation for use by scripts with a given
Type and no mipmaps | |||||||||||
Creates a new Allocation with the given
Type , mipmap flag, and usage flags. | |||||||||||
Generate a mipmap chain.
| |||||||||||
Get the size of the Allocation in bytes.
| |||||||||||
Get the
Type of the Allocation. | |||||||||||
Get the usage flags of the Allocation.
| |||||||||||
Receive the latest input into the Allocation.
| |||||||||||
Send a buffer to the output stream.
| |||||||||||
This is only intended to be used by auto-generated code reflected from
the RenderScript script files and should not be used by developers.
| |||||||||||
This is only intended to be used by auto-generated code reflected from
the RenderScript script files.
| |||||||||||
Propagate changes from one usage of the Allocation to the
other usages of the Allocation.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
android.support.v8.renderscript.BaseObj
| |||||||||||
From class
java.lang.Object
|
The Allocation will be used as a texture source by one or more graphics programs.
The Allocation will be used as a SurfaceTexture
consumer. This usage will cause the Allocation to be created as
read-only.
The Allocation will be used as a SurfaceTexture
producer. The dimensions and format of the SurfaceTexture
will be forced to those of the
Allocation.
The Allocation will be bound to and accessed by scripts.
The Allocation's backing store will be inherited from another object
(usually a Bitmap
); copying to or from the
original source Bitmap will cause a synchronization rather than a full
copy. syncAll(int)
may also be used to synchronize the Allocation
and the source Bitmap.
This is set by default for allocations created with createFromBitmap(RenderScript, Bitmap)
in API version 18 and higher.
Copy an array into part of this Allocation. This variant is type checked and will generate exceptions if the Allocation type is not a 32 bit float type.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array. |
Copy an array into part of this Allocation. This variant is type checked and will generate exceptions if the Allocation type is not a 16 bit integer type.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy an array into part of this Allocation. This variant is type checked and will generate exceptions if the Allocation type is not a 32 bit integer type.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy part of an Allocation into this Allocation.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
data | the source data allocation. |
dataOff | off The offset of the first element in data to be copied. |
Copy an array into part of this Allocation. This variant is type checked and will generate exceptions if the Allocation type is not an 8 bit integer type.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy an array into part of this Allocation. This method does not guarantee that the Allocation is compatible with the input buffer.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy an array into part of this Allocation. This method does not guarantee that the Allocation is compatible with the input buffer.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy an array into part of this Allocation. This method does not guarantee that the Allocation is compatible with the input buffer.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy an array into part of this Allocation. This method does not guarantee that the Allocation is compatible with the input buffer.
off | The offset of the first element to be copied. |
---|---|
count | The number of elements to be copied. |
d | the source data array |
Copy from an array into a rectangular region in this Allocation. The array is assumed to be tightly packed.
xoff | X offset of the region to update in this Allocation |
---|---|
yoff | Y offset of the region to update in this Allocation |
w | Width of the region to update |
h | Height of the region to update |
data | to be placed into the Allocation |
Copy from an array into a rectangular region in this Allocation. The array is assumed to be tightly packed.
xoff | X offset of the region to update in this Allocation |
---|---|
yoff | Y offset of the region to update in this Allocation |
w | Width of the region to update |
h | Height of the region to update |
data | to be placed into the Allocation |
Copy from an array into a rectangular region in this Allocation. The array is assumed to be tightly packed.
xoff | X offset of the region to update in this Allocation |
---|---|
yoff | Y offset of the region to update in this Allocation |
w | Width of the region to update |
h | Height of the region to update |
data | to be placed into the Allocation |
Copy from an array into a rectangular region in this Allocation. The array is assumed to be tightly packed.
xoff | X offset of the region to update in this Allocation |
---|---|
yoff | Y offset of the region to update in this Allocation |
w | Width of the region to update |
h | Height of the region to update |
data | to be placed into the Allocation |
Copy a rectangular region from an Allocation into a rectangular region in this Allocation.
xoff | X offset of the region in this Allocation |
---|---|
yoff | Y offset of the region in this Allocation |
w | Width of the region to update. |
h | Height of the region to update. |
data | source Allocation. |
dataXoff | X offset in source Allocation |
dataYoff | Y offset in source Allocation |
Copy into this Allocation from an array. This variant is type checked
and will generate exceptions if the Allocation's Element
is not an 8 bit integer type.
d | the source data array |
---|
Copy into this Allocation from an array. This variant is type checked
and will generate exceptions if the Allocation's Element
is not a 32 bit integer type.
d | the source data array |
---|
Copy into this Allocation from an array. This variant is type checked
and will generate exceptions if the Allocation's Element
is not a 32 bit float type.
d | the source data array |
---|
Copy an array of RS objects to the Allocation.
d | Source array. |
---|
Copy an Allocation from an Allocation. The types of both allocations must be identical.
a | the source allocation |
---|
Copy into an Allocation from a Bitmap
. The
height, width, and format of the bitmap must match the existing
allocation.
If the Bitmap
is the same as the Bitmap
used to create the Allocation with createFromBitmap(RenderScript, Bitmap)
and USAGE_SHARED
is set on the Allocation,
this will synchronize the Allocation with the latest data from the Bitmap
, potentially avoiding the actual copy.
b | the source bitmap |
---|
Copy into this Allocation from an array. This variant is type checked
and will generate exceptions if the Allocation's Element
is not a 16 bit integer type.
d | the source data array |
---|
Copy into this Allocation from an array. This method does not guarantee that the Allocation is compatible with the input buffer; it copies memory without reinterpretation.
d | the source data array |
---|
Copy into this Allocation from an array. This method does not guarantee that the Allocation is compatible with the input buffer; it copies memory without reinterpretation.
d | the source data array |
---|
Copy into this Allocation from an array. This method does not guarantee that the Allocation is compatible with the input buffer; it copies memory without reinterpretation.
d | the source data array |
---|
Copy into this Allocation from an array. This method does not guarantee that the Allocation is compatible with the input buffer; it copies memory without reinterpretation.
d | the source data array |
---|
Copy from the Allocation into a byte array. The array must be at least
as large as the Allocation. The allocation must be of an 8 bit integer
Element
type.
d | The array to be set from the Allocation. |
---|
Copy from the Allocation into a int array. The array must be at least as
large as the Allocation. The allocation must be of an 32 bit integer
Element
type.
d | The array to be set from the Allocation. |
---|
Copy from the Allocation into a float array. The array must be at least
as large as the Allocation. The allocation must be of an 32 bit float
Element
type.
d | The array to be set from the Allocation. |
---|
Copy from the Allocation into a short array. The array must be at least
as large as the Allocation. The allocation must be of an 16 bit integer
Element
type.
d | The array to be set from the Allocation. |
---|
Copy from the Allocation into a Bitmap
. The
bitmap must match the dimensions of the Allocation.
b | The bitmap to be set from the Allocation. |
---|
Creates a non-mipmapped cubemap Allocation for use as a graphics texture
from a Bitmap
containing the horizontal list of
cube faces. Each face must be a square, have the same size as all other
faces, and have a width that is a power of 2.
rs | Context to which the allocation will belong. |
---|---|
b | bitmap with cubemap faces layed out in the following format: right, left, top, bottom, front, back |
Creates a cubemap Allocation from a Bitmap
containing the horizontal list of cube faces. Each face must be a square,
have the same size as all other faces, and have a width that is a power
of 2.
rs | Context to which the allocation will belong. |
---|---|
b | Bitmap with cubemap faces layed out in the following format: right, left, top, bottom, front, back |
mips | specifies desired mipmap behaviour for the cubemap |
usage | bit field specifying how the cubemap is utilized |
Creates a cubemap Allocation from 6 Bitmap
objects containing the cube faces. Each face must be a square, have the
same size as all other faces, and have a width that is a power of 2.
rs | Context to which the allocation will belong. |
---|---|
xpos | cubemap face in the positive x direction |
xneg | cubemap face in the negative x direction |
ypos | cubemap face in the positive y direction |
yneg | cubemap face in the negative y direction |
zpos | cubemap face in the positive z direction |
zneg | cubemap face in the negative z direction |
mips | specifies desired mipmap behaviour for the cubemap |
usage | bit field specifying how the cubemap is utilized |
Creates a non-mipmapped cubemap Allocation for use as a sampler input
from 6 Bitmap
objects containing the cube
faces. Each face must be a square, have the same size as all other faces,
and have a width that is a power of 2.
rs | Context to which the allocation will belong. |
---|---|
xpos | cubemap face in the positive x direction |
xneg | cubemap face in the negative x direction |
ypos | cubemap face in the positive y direction |
yneg | cubemap face in the negative y direction |
zpos | cubemap face in the positive z direction |
zneg | cubemap face in the negative z direction |
Creates an Allocation from a Bitmap
.
rs | Context to which the allocation will belong. |
---|---|
b | Bitmap source for the allocation data |
mips | specifies desired mipmap behaviour for the allocation |
usage | bit field specifying how the allocation is utilized |
Creates an Allocation from a Bitmap
.
This Allocation will be created with USAGE_SHARED
, and
USAGE_SCRIPT
.
rs | Context to which the allocation will belong. |
---|---|
b | bitmap source for the allocation data |
Creates a non-mipmapped Allocation to use as a graphics texture from the
Bitmap
referenced by resource ID.
This allocation will be created with USAGE_SCRIPT
and
USAGE_GRAPHICS_TEXTURE
.
rs | Context to which the allocation will belong. |
---|---|
res | application resources |
id | resource id to load the data from |
Creates an Allocation from the Bitmap referenced by resource ID.
rs | Context to which the allocation will belong. |
---|---|
res | application resources |
id | resource id to load the data from |
mips | specifies desired mipmap behaviour for the allocation |
usage | bit field specifying how the allocation is utilized |
Creates an Allocation containing string data encoded in UTF-8 format.
rs | Context to which the allocation will belong. |
---|---|
str | string to create the allocation from |
usage | bit field specifying how the allocaiton is utilized |
Creates an Allocation with a specified number of given elements
rs | Context to which the Allocation will belong. |
---|---|
e | Element to use in the Allocation |
count | the number of Elements in the Allocation |
usage | bit field specifying how the Allocation is utilized |
Creates an Allocation with a specified number of given elements
rs | Context to which the Allocation will belong. |
---|---|
e | Element to use in the Allocation |
count | the number of Elements in the Allocation |
Creates an Allocation with the size specified by the type and no mipmaps generated by default
rs | Context to which the allocation will belong. |
---|---|
type | renderscript type describing data layout |
usage | bit field specifying how the allocation is utilized |
Creates an Allocation for use by scripts with a given Type
and no mipmaps
rs | Context to which the Allocation will belong. |
---|---|
type | RenderScript Type describing data layout |
Creates a new Allocation with the given Type
, mipmap flag, and usage flags.
type | RenderScript type describing data layout |
---|---|
mips | specifies desired mipmap behaviour for the allocation |
usage | bit field specifying how the Allocation is utilized |
Generate a mipmap chain. This is only valid if the Type of the Allocation includes mipmaps.
This function will generate a complete set of mipmaps from the top level LOD and place them into the script memory space.
If the Allocation is also using other memory spaces, a call to syncAll(Allocation.USAGE_SCRIPT)
is required.
Get the size of the Allocation in bytes.
Get the usage flags of the Allocation.
Receive the latest input into the Allocation. This operation
is only valid if USAGE_IO_INPUT
is set on the Allocation.
Send a buffer to the output stream. The contents of the Allocation will
be undefined after this operation. This operation is only valid if USAGE_IO_OUTPUT
is set on the Allocation.
This is only intended to be used by auto-generated code reflected from the RenderScript script files and should not be used by developers.
This is only intended to be used by auto-generated code reflected from the RenderScript script files.
Propagate changes from one usage of the Allocation to the other usages of the Allocation.
Invoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.
Note that objects that override finalize
are significantly more expensive than
objects that don't. Finalizers may be run a long time after the object is no longer
reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup.
Note also that finalizers are run on a single VM-wide finalizer thread,
so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary
for a class that has a native peer and needs to call a native method to destroy that peer.
Even then, it's better to provide an explicit close
method (and implement
Closeable
), and insist that callers manually dispose of instances. This
works well for something like files, but less well for something like a BigInteger
where typical calling code would have to deal with lots of temporaries. Unfortunately,
code that creates lots of temporaries is the worst kind of code from the point of view of
the single finalizer thread.
If you must use finalizers, consider at least providing your own
ReferenceQueue
and having your own thread process that queue.
Unlike constructors, finalizers are not automatically chained. You are responsible for
calling super.finalize()
yourself.
Uncaught exceptions thrown by finalizers are ignored and do not terminate the finalizer thread. See Effective Java Item 7, "Avoid finalizers" for more.
Throwable |
---|