public class Allocation
extends BaseObj
java.lang.Object | ||
↳ | android.renderscript.BaseObj | |
↳ | android.renderscript.Allocation |
Known Direct Subclasses |
这个类提供了通过RenderScript内核传递数据的主要方法。 分配为给定的Type
提供后备存储。
分配还包含一组使用标志,表示如何使用分配。 例如,分配可能有使用标志,指定它可以从脚本中使用以及输入到Sampler
。 开发人员必须使用syncAll(int)
来跨这些不同用途进行syncAll(int)
,以确保分配的不同用户拥有一致的内存视图。 例如,在将Allocation用作一个内核的输出和在稍后的内核中用作采样器输入的情况下,开发者必须在启动第二个内核之前调用syncAll(Allocation.USAGE_SCRIPT)
以确保正确性。
分配可以用copyFrom(Bitmap)
例程填充。 对于更复杂的元素类型,可以使用copyFromUnchecked(byte[])
方法从字节数组或类似结构进行复制。
有关创建使用RenderScript的应用程序的更多信息,请阅读 RenderScript开发人员指南。
Nested classes |
|
---|---|
枚举 |
Allocation.MipmapControl 控制使用位图创建和更新功能时的mipmap行为。 |
interface |
Allocation.OnBufferAvailableListener 通过 |
Constants |
|
---|---|
int |
USAGE_GRAPHICS_CONSTANTS 该分配将被一个或多个程序用作着色器常量的来源。 |
int |
USAGE_GRAPHICS_RENDER_TARGET 分配将用作屏幕外渲染的目标这在API级别16中已弃用。 |
int |
USAGE_GRAPHICS_TEXTURE 分配将被一个或多个图形程序用作纹理源。 |
int |
USAGE_GRAPHICS_VERTEX 分配将用作图形网格。 |
int |
USAGE_IO_INPUT 分配将用作 |
int |
USAGE_IO_OUTPUT 分配将用作 |
int |
USAGE_SCRIPT 分配将被绑定到脚本并被脚本访问。 |
int |
USAGE_SHARED 分配的后备存储将从另一个对象继承(通常为 |
Public methods |
|
---|---|
void |
copy1DRangeFrom(int off, int count, float[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFrom(int off, int count, short[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFrom(int off, int count, Object array) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFrom(int off, int count, Allocation data, int dataOff) 将分配的一部分复制到此分配中。 |
void |
copy1DRangeFrom(int off, int count, int[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFrom(int off, int count, byte[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFromUnchecked(int off, int count, byte[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFromUnchecked(int off, int count, short[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFromUnchecked(int off, int count, Object array) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFromUnchecked(int off, int count, int[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeFromUnchecked(int off, int count, float[] d) 将数组复制到此Allocation的一维区域。 |
void |
copy1DRangeTo(int off, int count, short[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeTo(int off, int count, Object array) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeTo(int off, int count, int[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeTo(int off, int count, float[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeTo(int off, int count, byte[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeToUnchecked(int off, int count, byte[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeToUnchecked(int off, int count, short[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeToUnchecked(int off, int count, Object array) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeToUnchecked(int off, int count, int[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy1DRangeToUnchecked(int off, int count, float[] d) 将此Allocation的一维区域复制到数组中。 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, Allocation data, int dataXoff, int dataYoff) 将分配中的矩形区域复制到此分配中的矩形区域。 |
void |
copy2DRangeFrom(int xoff, int yoff, Bitmap data) 将 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, byte[] data) 从数组中复制到此分配中的矩形区域。 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, Object array) 从数组中复制到此分配中的矩形区域。 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, int[] data) 从数组中复制到此分配中的矩形区域。 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, float[] data) 从数组中复制到此分配中的矩形区域。 |
void |
copy2DRangeFrom(int xoff, int yoff, int w, int h, short[] data) 从数组中复制到此分配中的矩形区域。 |
void |
copy2DRangeTo(int xoff, int yoff, int w, int h, short[] data) 将此Allocation中的矩形区域复制到数组中。 |
void |
copy2DRangeTo(int xoff, int yoff, int w, int h, byte[] data) 将此Allocation中的矩形区域复制到数组中。 |
void |
copy2DRangeTo(int xoff, int yoff, int w, int h, Object array) 将此Allocation中的矩形区域复制到数组中。 |
void |
copy2DRangeTo(int xoff, int yoff, int w, int h, float[] data) 将此Allocation中的矩形区域复制到数组中。 |
void |
copy2DRangeTo(int xoff, int yoff, int w, int h, int[] data) 将此Allocation中的矩形区域复制到数组中。 |
void |
copy3DRangeFrom(int xoff, int yoff, int zoff, int w, int h, int d, Allocation data, int dataXoff, int dataYoff, int dataZoff) 从另一个分配中将矩形区域复制到分配中。 |
void |
copy3DRangeFrom(int xoff, int yoff, int zoff, int w, int h, int d, Object array) 在此分配中从数组复制到3D区域。 |
void |
copy3DRangeTo(int xoff, int yoff, int zoff, int w, int h, int d, Object array) |
void |
copyFrom(Bitmap b) 从 |
void |
copyFrom(short[] d) 从数组复制到此分配中。 |
void |
copyFrom(int[] d) 从数组复制到此分配中。 |
void |
copyFrom(BaseObj[] d) 将RS对象数组复制到分配。 |
void |
copyFrom(byte[] d) 从数组复制到此分配中。 |
void |
copyFrom(float[] d) 从数组复制到此分配中。 |
void |
copyFrom(Allocation a) 从分配中复制分配。 |
void |
copyFrom(Object array) 从数组复制到此分配中。 |
void |
copyFromUnchecked(float[] d) 从数组复制到此分配中。 |
void |
copyFromUnchecked(Object array) 从数组复制到此分配中。 |
void |
copyFromUnchecked(short[] d) 从数组复制到此分配中。 |
void |
copyFromUnchecked(int[] d) 从数组复制到此分配中。 |
void |
copyFromUnchecked(byte[] d) 从数组复制到此分配中。 |
void |
copyTo(Bitmap b) 从分配中复制到 |
void |
copyTo(short[] d) 从分配中复制到一个短阵列中。 |
void |
copyTo(byte[] d) 从分配复制到一个字节数组中。 |
void |
copyTo(float[] d) 从分配中复制到浮点数组中。 |
void |
copyTo(int[] d) 从Allocation复制到一个int数组中。 |
void |
copyTo(Object array) 从分配复制到数组中。 |
static Allocation[] |
createAllocations(RenderScript rs, Type t, int usage, int numAlloc) 用给定的 |
static Allocation |
createCubemapFromBitmap(RenderScript rs, Bitmap b, Allocation.MipmapControl mips, int usage) |
static Allocation |
createCubemapFromBitmap(RenderScript rs, Bitmap b) 创建一个非mipmapped立方体贴图分配,用作包含立方体面的水平列表的 |
static Allocation |
createCubemapFromCubeFaces(RenderScript rs, Bitmap xpos, Bitmap xneg, Bitmap ypos, Bitmap yneg, Bitmap zpos, Bitmap zneg) 创建一个非mipmapped立方体贴图分配,用作包含立方体面的6个 |
static Allocation |
createCubemapFromCubeFaces(RenderScript rs, Bitmap xpos, Bitmap xneg, Bitmap ypos, Bitmap yneg, Bitmap zpos, Bitmap zneg, Allocation.MipmapControl mips, int usage) |
static Allocation |
createFromBitmap(RenderScript rs, Bitmap b) 从 |
static Allocation |
createFromBitmap(RenderScript rs, Bitmap b, Allocation.MipmapControl mips, int usage) 从 |
static Allocation |
createFromBitmapResource(RenderScript rs, Resources res, int id, Allocation.MipmapControl mips, int usage) 从资源ID引用的位图创建分配。 |
static Allocation |
createFromBitmapResource(RenderScript rs, Resources res, int id) 创建一个非映射的分配,用作资源ID引用的 |
static Allocation |
createFromString(RenderScript rs, String str, int usage) 创建一个包含以UTF-8格式编码的字符串数据的分配。 |
static Allocation |
createSized(RenderScript rs, Element e, int count) 使用指定数量的给定元素创建一个分配 |
static Allocation |
createSized(RenderScript rs, Element e, int count, int usage) 使用指定数量的给定元素创建一个分配 |
static Allocation |
createTyped(RenderScript rs, Type type, Allocation.MipmapControl mips, int usage) 使用给定的 |
static Allocation |
createTyped(RenderScript rs, Type type) |
static Allocation |
createTyped(RenderScript rs, Type type, int usage) 按照类型指定的大小创建一个Allocation,默认情况下不生成mipmap |
void |
destroy() 对于USAGE_IO_OUTPUT,destroy()意味着setSurface(null)。 |
void |
generateMipmaps() 生成一个mipmap链。 |
ByteBuffer |
getByteBuffer() 获取或创建一个包含当前分配的原始数据的ByteBuffer。 |
int |
getBytesSize() 以字节为单位获取分配的大小。 |
Element |
getElement() |
long |
getStride() 获取分配的步幅。 |
Surface |
getSurface() 返回由屏幕合成器管理的原始缓冲区的句柄。 |
long |
getTimeStamp() 获取此Allocation拥有的最新缓冲区的时间戳。 |
Type |
getType() 获取分配的 |
int |
getUsage() 获取分配的使用标志。 |
void |
ioReceive() 接收分配中的最新输入。 |
void |
ioSend() 发送缓冲区到输出流。 |
void |
resize(int dimX) 此方法在API级别18中已弃用。RenderScript对象在创建后应为不可变的。 替换是创建一个新的分配并复制内容。 如果使用API 21或更高版本,此函数将引发异常。 |
void |
setAutoPadding(boolean useAutoPadding) 当数据从Allocation复制到数组时,指定Allocation的单元格和数组元素之间的映射,反之亦然。 |
void |
setFromFieldPacker(int xoff, int component_number, FieldPacker fp) 这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。 |
void |
setFromFieldPacker(int xoff, FieldPacker fp) 这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。 |
void |
setFromFieldPacker(int xoff, int yoff, int zoff, int component_number, FieldPacker fp) 这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。 |
void |
setOnBufferAvailableListener(Allocation.OnBufferAvailableListener callback) 为 |
void |
setSurface(Surface sur) 将 |
void |
syncAll(int srcLocation) 将分配的一种用法更改为分配的其他用法。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class android.renderscript.BaseObj
|
|
From class java.lang.Object
|
int USAGE_GRAPHICS_CONSTANTS
该分配将被一个或多个程序用作着色器常量的来源。 这在API级别16中已被弃用。
常量值:8(0x00000008)
int USAGE_GRAPHICS_RENDER_TARGET
分配将用作屏幕外渲染的目标这在API级别16中已弃用。
常量值:16(0x00000010)
int USAGE_GRAPHICS_TEXTURE
分配将被一个或多个图形程序用作纹理源。
常量值:2(0x00000002)
int USAGE_GRAPHICS_VERTEX
分配将用作图形网格。 这在API级别16中已被弃用。
常量值:4(0x00000004)
int USAGE_IO_INPUT
分配将用作Surface
消费者。 这种用法会导致分配被创建为只读。
常量值:32(0x00000020)
int USAGE_IO_OUTPUT
分配将用作Surface
生产者。 Surface
的尺寸和格式将被强制为分配的尺寸和格式。
常量值:64(0x00000040)
int USAGE_SHARED
分配的后备存储将从另一个对象(通常是Bitmap
)继承; 复制到或从原始源位图将导致同步而不是完整副本。 syncAll(int)
也可能用于同步分配和源位图。
对于API版本18和更高版本中使用 createFromBitmap(RenderScript, Bitmap)
创建的分配,这是默认设置。
常量值:128(0x00000080)
void copy1DRangeFrom (int off, int count, float[] d)
将数组复制到此Allocation的一维区域。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,那么数组的大小必须至少为该区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素且AutoPadding
已启用,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
float : the source array. |
void copy1DRangeFrom (int off, int count, short[] d)
将数组复制到此Allocation的一维区域。 如果分配的Element
不是16位整数,也不是16位整数Element.DataType
的向量,则此类型将被检查并会生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
short : the source array |
void copy1DRangeFrom (int off, int count, Object array)
将数组复制到此Allocation的一维区域。 如果分配的Element
与传入的数组的组件类型不匹配,则会检查该变体的类型并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
array |
Object : The source array. |
void copy1DRangeFrom (int off, int count, Allocation data, int dataOff)
将分配的一部分复制到此分配中。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
data |
Allocation : the source data allocation. |
dataOff |
int : off The offset of the first element in data to be copied. |
void copy1DRangeFrom (int off, int count, int[] d)
将数组复制到此Allocation的一维区域。 如果分配的Element
不是32位整数,也不是32位整数Element.DataType
的向量,则此类型会被检查类型并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
int : the source array |
void copy1DRangeFrom (int off, int count, byte[] d)
将数组复制到此Allocation的一维区域。 如果分配的Element
不是8位整数,也不是8位整数Element.DataType
的向量,则此类型会被检查类型并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
byte : the source array |
void copy1DRangeFromUnchecked (int off, int count, byte[] d)
将数组复制到此Allocation的一维区域。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
byte : the source array |
void copy1DRangeFromUnchecked (int off, int count, short[] d)
将数组复制到此Allocation的一维区域。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素且AutoPadding
已启用,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
short : the source array |
void copy1DRangeFromUnchecked (int off, int count, Object array)
将数组复制到此Allocation的一维区域。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
array |
Object : The source array |
void copy1DRangeFromUnchecked (int off, int count, int[] d)
将数组复制到此Allocation的一维区域。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
int : the source array |
void copy1DRangeFromUnchecked (int off, int count, float[] d)
将数组复制到此Allocation的一维区域。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为该区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
float : the source array |
void copy1DRangeTo (int off, int count, short[] d)
将此Allocation的一维区域复制到数组中。 如果分配的Element
既不是16位整数也不是16位整数Element.DataType
的向量,则此类型会被检查类型并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
short : the source array |
void copy1DRangeTo (int off, int count, Object array)
将此Allocation的一维区域复制到数组中。 如果分配的Element
与传入的数组的组件类型不匹配,则会检查该类型的方法并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为该区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
array |
Object : The source array. |
void copy1DRangeTo (int off, int count, int[] d)
将此Allocation的一维区域复制到数组中。 如果分配的Element
既不是32位整数,也不是32位整数Element.DataType
的向量,则此类型会被检查并会生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
int : the source array |
void copy1DRangeTo (int off, int count, float[] d)
将此Allocation的一维区域复制到数组中。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
float : the source array. |
void copy1DRangeTo (int off, int count, byte[] d)
将此Allocation的一维区域复制到数组中。 如果分配的Element
既不是8位整数,也不是8位整数Element.DataType
的向量,则此类型会检查类型并生成异常。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
byte : the source array |
void copy1DRangeToUnchecked (int off, int count, byte[] d)
将此Allocation的一维区域复制到数组中。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
byte : the source array |
void copy1DRangeToUnchecked (int off, int count, short[] d)
将此Allocation的一维区域复制到数组中。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
short : the source array |
void copy1DRangeToUnchecked (int off, int count, Object array)
将此Allocation的一维区域复制到数组中。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
array |
Object : The dest array |
void copy1DRangeToUnchecked (int off, int count, int[] d)
将此Allocation的一维区域复制到数组中。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
int : the source array |
void copy1DRangeToUnchecked (int off, int count, float[] d)
将此Allocation的一维区域复制到数组中。 此方法不保证分配与输入缓冲区兼容。
该地区的大小是:count * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
off |
int : The offset of the first element to be copied. |
count |
int : The number of elements to be copied. |
d |
float : the source array |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, Allocation data, int dataXoff, int dataYoff)
将分配中的矩形区域复制到此分配中的矩形区域。
Parameters | |
---|---|
xoff |
int : X offset of the region in this Allocation |
yoff |
int : Y offset of the region in this Allocation |
w |
int : Width of the region to update. |
h |
int : Height of the region to update. |
data |
Allocation : source Allocation. |
dataXoff |
int : X offset in source Allocation |
dataYoff |
int : Y offset in source Allocation |
void copy2DRangeFrom (int xoff, int yoff, Bitmap data)
将Bitmap
复制到分配中。 更新的高度和宽度将使用Bitmap
的高度和宽度。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
data |
Bitmap : the Bitmap to be copied |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, byte[] data)
从数组中复制到此分配中的矩形区域。 该阵列被认为是紧密包装。 如果分配的Element
不是8位整数,也不是8位整数Element.DataType
的向量,则此类变量将进行类型检查并生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
data |
byte : to be placed into the Allocation |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, Object array)
从数组中复制到此分配中的矩形区域。 该阵列被认为是紧密包装。 如果分配的Element
与输入数据类型不匹配,则此类型会检查类型并生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
array |
Object : Data to be placed into the Allocation |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, int[] data)
从数组中复制到此分配中的矩形区域。 该阵列被认为是紧密包装。 如果分配的Element
不是32位整数,也不是32位整数Element.DataType
的向量,则此类变量将进行类型检查并生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
data |
int : to be placed into the Allocation |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, float[] data)
从数组中复制到此分配中的矩形区域。 该阵列被认为是紧密包装。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素且AutoPadding
已启用,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
data |
float : to be placed into the Allocation |
void copy2DRangeFrom (int xoff, int yoff, int w, int h, short[] data)
从数组中复制到此分配中的矩形区域。 该阵列被认为是紧密包装。 这种变体是类型检查,如果分配的会产生异常Element
不是一个16位整数,也不是16个整数的向量Element.DataType
。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,那么数组的大小必须至少为该区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
data |
short : to be placed into the Allocation |
void copy2DRangeTo (int xoff, int yoff, int w, int h, short[] data)
将此Allocation中的矩形区域复制到数组中。 这种变体类型检查,并会产生异常,如果分配的Element
既不是一个16位整数,也不是16个整数的向量Element.DataType
。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to copy in this Allocation |
yoff |
int : Y offset of the region to copy in this Allocation |
w |
int : Width of the region to copy |
h |
int : Height of the region to copy |
data |
short : Dest Array to be copied into |
void copy2DRangeTo (int xoff, int yoff, int w, int h, byte[] data)
将此Allocation中的矩形区域复制到数组中。 如果分配的Element
既不是8位整数,也不是8位整数Element.DataType
的向量,则此类型将被检查并会生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to copy in this Allocation |
yoff |
int : Y offset of the region to copy in this Allocation |
w |
int : Width of the region to copy |
h |
int : Height of the region to copy |
data |
byte : Dest Array to be copied into |
void copy2DRangeTo (int xoff, int yoff, int w, int h, Object array)
将此Allocation中的矩形区域复制到数组中。 如果分配的Element
与传入的数组的组件类型不匹配,则此方法将进行类型检查并生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组的大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to copy in this Allocation |
yoff |
int : Y offset of the region to copy in this Allocation |
w |
int : Width of the region to copy |
h |
int : Height of the region to copy |
array |
Object : Dest Array to be copied into |
void copy2DRangeTo (int xoff, int yoff, int w, int h, float[] data)
将此Allocation中的矩形区域复制到数组中。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to copy in this Allocation |
yoff |
int : Y offset of the region to copy in this Allocation |
w |
int : Width of the region to copy |
h |
int : Height of the region to copy |
data |
float : Dest Array to be copied into |
void copy2DRangeTo (int xoff, int yoff, int w, int h, int[] data)
将此Allocation中的矩形区域复制到数组中。 如果分配的Element
既不是32位整数,也不是32位整数Element.DataType
的向量,则此类变量将进行类型检查并生成异常。
该地区的大小是:w * h * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to copy in this Allocation |
yoff |
int : Y offset of the region to copy in this Allocation |
w |
int : Width of the region to copy |
h |
int : Height of the region to copy |
data |
int : Dest Array to be copied into |
void copy3DRangeFrom (int xoff, int yoff, int zoff, int w, int h, int d, Allocation data, int dataXoff, int dataYoff, int dataZoff)
从另一个分配中将矩形区域复制到分配中。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
zoff |
int : Z offset of the region to update in this Allocation |
w |
int : Width of the region to update. |
h |
int : Height of the region to update. |
d |
int : Depth of the region to update. |
data |
Allocation : source allocation. |
dataXoff |
int : X offset of the region in the source Allocation |
dataYoff |
int : Y offset of the region in the source Allocation |
dataZoff |
int : Z offset of the region in the source Allocation |
void copy3DRangeFrom (int xoff, int yoff, int zoff, int w, int h, int d, Object array)
在此分配中从数组复制到3D区域。 该阵列被认为是紧密包装。 如果分配的Element
与输入数据类型不匹配,则此类型将被检查并生成异常。
该地区的大小是:w * h * d * getElement()
。 getBytesSize()
。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为区域的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为区域的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为区域大小的3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
xoff |
int : X offset of the region to update in this Allocation |
yoff |
int : Y offset of the region to update in this Allocation |
zoff |
int : Z offset of the region to update in this Allocation |
w |
int : Width of the region to update |
h |
int : Height of the region to update |
d |
int : Depth of the region to update |
array |
Object : to be placed into the allocation |
void copy3DRangeTo (int xoff, int yoff, int zoff, int w, int h, int d, Object array)
Parameters | |
---|---|
xoff |
int
|
yoff |
int
|
zoff |
int
|
w |
int
|
h |
int
|
d |
int
|
array |
Object
|
void copyFrom (Bitmap b)
复制到Bitmap
的分配。 位图的高度,宽度和格式必须与现有分配相匹配。
如果 Bitmap
是一样的 Bitmap
用于与创建分配 createFromBitmap(RenderScript, Bitmap)
和 USAGE_SHARED
被设置在分配,这会从最新数据的同步分配 Bitmap
,有可能避免实际的复制。
Parameters | |
---|---|
b |
Bitmap : the source bitmap |
void copyFrom (short[] d)
从数组复制到此分配中。 如果分配的Element
不是16位整数,也不是16位整数Element.DataType
的向量,则此类变量将进行类型检查并生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
short : the source array |
void copyFrom (int[] d)
从数组复制到此分配中。 如果分配的Element
不是32位整数,也不是32位整数Element.DataType
的向量,则此类型会被检查类型并生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
int : the source array |
void copyFrom (BaseObj[] d)
将RS对象数组复制到分配。
Parameters | |
---|---|
d |
BaseObj : Source array. |
void copyFrom (byte[] d)
从数组复制到此分配中。 如果分配的Element
不是8位整数,也不是8位整数Element.DataType
的向量,则此类型会被检查类型并生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
byte : the source array |
void copyFrom (float[] d)
从数组复制到此分配中。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
float : the source array |
void copyFrom (Allocation a)
从分配中复制分配。 两种分配的类型必须相同。
Parameters | |
---|---|
a |
Allocation : the source allocation |
void copyFrom (Object array)
从数组复制到此分配中。 如果分配的Element
与数组的基本类型不匹配,则此类型将被检查并会生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素且AutoPadding
已启用,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
array |
Object : The source array |
void copyFromUnchecked (float[] d)
从数组复制到此分配中。 此方法不保证分配与输入缓冲区兼容; 它复制内存而不重新解释。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素且AutoPadding
已启用,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
float : the source array |
void copyFromUnchecked (Object array)
从数组复制到此分配中。 此方法不保证分配与输入缓冲区兼容; 它复制内存而不重新解释。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
array |
Object : The source array |
void copyFromUnchecked (short[] d)
从数组复制到此分配中。 此方法不保证分配与输入缓冲区兼容; 它复制内存而不重新解释。
如果分配没有Vec3元素,那么以字节为单位的数组大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少大于分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配有Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
short : the source array |
void copyFromUnchecked (int[] d)
从数组复制到此分配中。 此方法不保证分配与输入缓冲区兼容; 它复制内存而不重新解释。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配具有Vec3元素且启用了AutoPadding
,则数组的大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
int : the source array |
void copyFromUnchecked (byte[] d)
从数组复制到此分配中。 此方法不保证分配与输入缓冲区兼容; 它复制内存而不重新解释。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元的填充字节必须是数组的一部分。
如果分配包含Vec3元素,并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
byte : the source array |
void copyTo (Bitmap b)
从分配中复制到Bitmap
。 位图必须与分配的维度相匹配。
Parameters | |
---|---|
b |
Bitmap : The bitmap to be set from the Allocation. |
void copyTo (short[] d)
从分配中复制到一个短阵列中。 如果分配的Element
不是16位整数,也不是16位整数Element.DataType
的向量,则此类型将被检查并会生成异常。
如果分配不包含Vec3元素,则数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元格的填充字节将成为数组的一部分。
如果分配具有Vec3元素并且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
short : The array to be set from the Allocation. |
void copyTo (byte[] d)
从分配复制到一个字节数组中。 如果分配的Element
既不是8位整数,也不是8位整数Element.DataType
的向量,则此类型将被检查并会生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元格的填充字节将成为数组的一部分。
如果分配包含Vec3元素且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
byte : The array to be set from the Allocation. |
void copyTo (float[] d)
从分配中复制到浮点数组中。 该变型是类型检查并生成异常,如果分配的Element
既不是32位浮点也不32位的向量浮标Element.DataType
。
如果分配没有Vec3元素,则数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元格的填充字节将成为数组的一部分。
如果分配包含Vec3元素且启用了AutoPadding
,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
float : The array to be set from the Allocation. |
void copyTo (int[] d)
从Allocation复制到一个int数组中。 如果分配的Element
不是32位整数,也不是32位整数Element.DataType
的向量,则此类型会被检查并会生成异常。
如果分配不包含Vec3元素,则数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配的Vec3元素和AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元格的填充字节将成为数组的一部分。
如果分配有Vec3元素并且启用了AutoPadding
,则数组的大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
d |
int : The array to be set from the Allocation. |
void copyTo (Object array)
从分配复制到数组中。 该方法是类型检查,如果分配的Element
与输入数据类型不匹配,则会生成异常。
如果分配没有Vec3元素,那么数组的大小必须至少为分配 getBytesSize()
的大小。
如果分配有Vec3元素并且AutoPadding
被禁用,则数组的大小必须至少为分配getBytesSize()
的大小。 单元格的填充字节将成为数组的一部分。
如果分配有Vec3元素且AutoPadding
已启用,则数组大小必须至少为分配getBytesSize()
3/4。 单元格的填充字节不能是数组的一部分。
Parameters | |
---|---|
array |
Object : The array to be set from the Allocation. |
Allocation[] createAllocations (RenderScript rs, Type t, int usage, int numAlloc)
用给定的Type
和使用标志创建一个新的分配数组。 注意:如果输入分配的用法是:USAGE_IO_INPUT,则创建的Allocation将共享相同的BufferQueue。
Parameters | |
---|---|
rs |
RenderScript : RenderScript context |
t |
Type : RenderScript type describing data layout |
usage |
int : bit field specifying how the Allocation is utilized |
numAlloc |
int : Number of Allocations in the array. |
Returns | |
---|---|
Allocation[] |
Allocation[] |
Allocation createCubemapFromBitmap (RenderScript rs, Bitmap b, Allocation.MipmapControl mips, int usage)
从包含立方体面的水平列表的Bitmap
创建立方体Bitmap
分配。 每个面必须是正方形,与所有其他面的大小相同,并且宽度为2的幂。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
b |
Bitmap : Bitmap with cubemap faces layed out in the following format: right, left, top, bottom, front, back |
mips |
Allocation.MipmapControl : specifies desired mipmap behaviour for the cubemap |
usage |
int : bit field specifying how the cubemap is utilized |
Returns | |
---|---|
Allocation |
allocation containing cubemap data |
Allocation createCubemapFromBitmap (RenderScript rs, Bitmap b)
创建非mipmapped立方体贴图分配,用作包含立方体面的水平列表的Bitmap
中的图形纹理。 每个面必须是正方形,与所有其他面的大小相同,并且宽度为2的幂。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
b |
Bitmap : bitmap with cubemap faces layed out in the following format: right, left, top, bottom, front, back |
Returns | |
---|---|
Allocation |
allocation containing cubemap data |
Allocation createCubemapFromCubeFaces (RenderScript rs, Bitmap xpos, Bitmap xneg, Bitmap ypos, Bitmap yneg, Bitmap zpos, Bitmap zneg)
创建一个非mipmapped立方体贴图分配,用作包含立方体面的6个Bitmap
对象的取样器输入。 每个面必须是正方形,与所有其他面的大小相同,并且宽度为2的幂。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
xpos |
Bitmap : cubemap face in the positive x direction |
xneg |
Bitmap : cubemap face in the negative x direction |
ypos |
Bitmap : cubemap face in the positive y direction |
yneg |
Bitmap : cubemap face in the negative y direction |
zpos |
Bitmap : cubemap face in the positive z direction |
zneg |
Bitmap : cubemap face in the negative z direction |
Returns | |
---|---|
Allocation |
allocation containing cubemap data |
Allocation createCubemapFromCubeFaces (RenderScript rs, Bitmap xpos, Bitmap xneg, Bitmap ypos, Bitmap yneg, Bitmap zpos, Bitmap zneg, Allocation.MipmapControl mips, int usage)
从包含立方体面的6个Bitmap
对象创建立方体Bitmap
分配。 每个面必须是正方形,与所有其他面的大小相同,并且宽度为2的幂。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
xpos |
Bitmap : cubemap face in the positive x direction |
xneg |
Bitmap : cubemap face in the negative x direction |
ypos |
Bitmap : cubemap face in the positive y direction |
yneg |
Bitmap : cubemap face in the negative y direction |
zpos |
Bitmap : cubemap face in the positive z direction |
zneg |
Bitmap : cubemap face in the negative z direction |
mips |
Allocation.MipmapControl : specifies desired mipmap behaviour for the cubemap |
usage |
int : bit field specifying how the cubemap is utilized |
Returns | |
---|---|
Allocation |
allocation containing cubemap data |
Allocation createFromBitmap (RenderScript rs, Bitmap b)
从 Bitmap
创建一个分配。
随着目标API版本18或更高,这种分配将被创建USAGE_SHARED
, USAGE_SCRIPT
,并USAGE_GRAPHICS_TEXTURE
。 如果目标API版本为17或更低,则将使用USAGE_GRAPHICS_TEXTURE
创建此分配。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
b |
Bitmap : bitmap source for the allocation data |
Returns | |
---|---|
Allocation |
Allocation containing bitmap data |
Allocation createFromBitmap (RenderScript rs, Bitmap b, Allocation.MipmapControl mips, int usage)
从 Bitmap
创建一个分配。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
b |
Bitmap : Bitmap source for the allocation data |
mips |
Allocation.MipmapControl : specifies desired mipmap behaviour for the allocation |
usage |
int : bit field specifying how the allocation is utilized |
Returns | |
---|---|
Allocation |
Allocation containing bitmap data |
Allocation createFromBitmapResource (RenderScript rs, Resources res, int id, Allocation.MipmapControl mips, int usage)
从资源ID引用的位图创建分配。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
res |
Resources : application resources |
id |
int : resource id to load the data from |
mips |
Allocation.MipmapControl : specifies desired mipmap behaviour for the allocation |
usage |
int : bit field specifying how the allocation is utilized |
Returns | |
---|---|
Allocation |
Allocation containing resource data |
Allocation createFromBitmapResource (RenderScript rs, Resources res, int id)
创建一个非mipmapped分配,用作资源ID引用的 Bitmap
的图形纹理。
对于目标API版本18或更高版本,将使用USAGE_SCRIPT
和USAGE_GRAPHICS_TEXTURE
创建此分配。 对于目标API版本17或更低版本,将使用USAGE_GRAPHICS_TEXTURE
创建此分配。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
res |
Resources : application resources |
id |
int : resource id to load the data from |
Returns | |
---|---|
Allocation |
Allocation containing resource data |
Allocation createFromString (RenderScript rs, String str, int usage)
创建一个包含以UTF-8格式编码的字符串数据的分配。
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
str |
String : string to create the allocation from |
usage |
int : bit field specifying how the allocaiton is utilized |
Returns | |
---|---|
Allocation |
Allocation createSized (RenderScript rs, Element e, int count)
使用指定数量的给定元素创建一个分配
Parameters | |
---|---|
rs |
RenderScript : Context to which the Allocation will belong. |
e |
Element : Element to use in the Allocation |
count |
int : the number of Elements in the Allocation |
Returns | |
---|---|
Allocation |
allocation |
Allocation createSized (RenderScript rs, Element e, int count, int usage)
使用指定数量的给定元素创建一个分配
Parameters | |
---|---|
rs |
RenderScript : Context to which the Allocation will belong. |
e |
Element : Element to use in the Allocation |
count |
int : the number of Elements in the Allocation |
usage |
int : bit field specifying how the Allocation is utilized |
Returns | |
---|---|
Allocation |
allocation |
Allocation createTyped (RenderScript rs, Type type, Allocation.MipmapControl mips, int usage)
使用给定的 Type
,mipmap标志和使用标志创建新的分配。
Parameters | |
---|---|
rs |
RenderScript
|
type |
Type : RenderScript type describing data layout |
mips |
Allocation.MipmapControl : specifies desired mipmap behaviour for the allocation |
usage |
int : bit field specifying how the Allocation is utilized |
Returns | |
---|---|
Allocation |
Allocation createTyped (RenderScript rs, Type type)
创建一个分配,供具有给定 Type
的脚本使用
Parameters | |
---|---|
rs |
RenderScript : Context to which the Allocation will belong. |
type |
Type : RenderScript Type describing data layout |
Returns | |
---|---|
Allocation |
allocation |
Allocation createTyped (RenderScript rs, Type type, int usage)
按照类型指定的大小创建一个Allocation,默认情况下不生成mipmap
Parameters | |
---|---|
rs |
RenderScript : Context to which the allocation will belong. |
type |
Type : renderscript type describing data layout |
usage |
int : bit field specifying how the allocation is utilized |
Returns | |
---|---|
Allocation |
allocation |
void generateMipmaps ()
生成一个mipmap链。 这只有在分配类型包含mipmap时才有效。
该功能将从顶层LOD生成一套完整的mipmap并将它们放入脚本内存空间。
如果分配也使用其他内存空间,则需要致电 syncAll(Allocation.USAGE_SCRIPT)
。
ByteBuffer getByteBuffer ()
获取或创建一个包含当前分配的原始数据的ByteBuffer。
如果使用USAGE_IO_INPUT创建分配,则返回的ByteBuffer将包含最新数据为只读。 对于二维或三维分配,可以填充原始数据,以便分配的每一行具有一定的对齐。 可以使用getStride()
方法查询包含填充(称为步幅)的每一行的大小。 注意:在已销毁的Allocation的ByteBuffer上操作会触发错误。
Returns | |
---|---|
ByteBuffer |
ByteBuffer The ByteBuffer associated with raw data pointer of the Allocation. |
int getBytesSize ()
以字节为单位获取分配的大小。
Returns | |
---|---|
int |
size of the Allocation in bytes. |
long getStride ()
获取分配的步幅。 对于二维或三维分配,可以填充原始数据,以便分配的每一行具有一定的对齐。 包含这种填充的每一行的大小称为步幅。
Returns | |
---|---|
long |
the stride. For 1D Allocation, the stride will be the number of bytes of this Allocation. For 2D and 3D Allocations, the stride will be the stride in X dimension measuring in bytes. |
Surface getSurface ()
返回由屏幕合成器管理的原始缓冲区的句柄。 此操作仅适用于USAGE_IO_INPUT
分配。
Returns | |
---|---|
Surface |
Surface object associated with allocation |
long getTimeStamp ()
获取此Allocation拥有的最新缓冲区的时间戳。 时间戳保证是唯一的,单调递增。 默认值:-1。 时间戳将在每次ioReceive()
通话后更新。 通过比较使用android.hardware.camera2
API时的唯一时间戳,可以将其用于识别图像。 示例步骤:1.捕获完成时保存TotalCaptureResult
。 2.获得ioReceive()
电话后的时间戳。 3.比较totalCaptureResult.get(CaptureResult.SENSOR_TIMESTAMP)和alloc.getTimeStamp()。
Returns | |
---|---|
long |
long Timestamp associated with the buffer held by the Allocation. |
int getUsage ()
获取分配的使用标志。
Returns | |
---|---|
int |
usage this Allocation's set of the USAGE_* flags OR'd together |
void resize (int dimX)
此方法在API级别18中已被弃用。
RenderScript对象一旦创建就应该是不可变的。 替换是创建一个新的分配并复制内容。 如果使用API 21或更高版本,此函数将引发异常。
调整一维分配的大小。 分配的内容被保留。 如果分配了新元素,则使用空内容创建对象,否则新区域未定义。
如果新区域较小,则将释放新区域之外的任何对象的引用。
新的维度将创建一个新的类型。
Parameters | |
---|---|
dimX |
int : The new size of the allocation. |
void setAutoPadding (boolean useAutoPadding)
当数据从Allocation复制到数组时,指定Allocation的单元格和数组元素之间的映射,反之亦然。 仅适用于元素为长度为3的矢量的分配(例如U8_3(RenderScript)
或RGB_888(RenderScript)
)。 启用此功能可能会使数据从“分配”复制到阵列,反之则效率降低。
Vec3元素单元格作为Vec4元素单元格以相同的Element.DataType
存储在“分配”中,第四个向量组件被视为填充。 启用此功能后,只有数据组件(即每个单元格的前3个矢量组件)将映射到数组和分配之间。 禁用时,需要显式映射填充组件,如以下示例中所述。
例如,使用 copyFrom(int[])
将整数数组复制到两个 I32_3(RenderScript)
单元的分配时:
禁用时:数组必须至少包含8个整数,并将前4个整数复制到分配的第一个单元格中,并将接下来的4个整数复制到第二个单元格中。 第4和第8个整数被映射为填充组件。
启用时:数组只需要至少有6个整数,前3个整数作为数据组件复制到第一个单元,而下一个3被复制到第二个单元。 没有填充组件的映射。
同样,使用 copyFromUnchecked(int[])
将字节数组复制到两个 I32_3(RenderScript)
单元的“分配”时:
禁用时:阵列必须至少有32个字节,前16个字节复制到分配的第一个单元,接下来的16个字节复制到第二个单元。 第13-16字节和第29-32字节被映射为填充组件。
启用时:阵列只需要至少24个字节,前12个字节复制到分配的第一个单元,接下来的12个字节复制到第二个单元。 没有填充组件的映射。
与将数据复制到阵列的分配类似,将数据从分配复制到阵列时,如果启用AutoPadding,则Vec3元素单元的填充组件将不会复制/映射到阵列。
默认值:已禁用。
Parameters | |
---|---|
useAutoPadding |
boolean : True: enable AutoPadding; False: disable AutoPadding |
void setFromFieldPacker (int xoff, int component_number, FieldPacker fp)
这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。
void setFromFieldPacker (int xoff, FieldPacker fp)
这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。
void setFromFieldPacker (int xoff, int yoff, int zoff, int component_number, FieldPacker fp)
这只适用于由RenderScript脚本文件反映的自动生成的代码,不应该由开发人员使用。
void setOnBufferAvailableListener (Allocation.OnBufferAvailableListener callback)
为 USAGE_IO_INPUT
设置通知处理程序。
Parameters | |
---|---|
callback |
Allocation.OnBufferAvailableListener : instance of the OnBufferAvailableListener class to be called when buffer arrive. |
void setSurface (Surface sur)
将Surface
与此分配相关联。 此操作仅适用于USAGE_IO_OUTPUT
分配。
Parameters | |
---|---|
sur |
Surface : Surface to associate with allocation |
void syncAll (int srcLocation)
将分配的一种用法更改为分配的其他用法。
Parameters | |
---|---|
srcLocation |
int
|
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类重写finalize
方法来处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize
方法可以采取任何行动,包括使该对象再次可用于其他线程; 然而, finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
finalize
类的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定的对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用 finalize
方法之后,在Java虚拟机再次确定不再有任何方式可以通过任何尚未死亡的线程访问此对象的方法之前,不会采取进一步的操作,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定的对象,Java虚拟机永远不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致此对象的终止被暂停,但在其他情况下会被忽略。
Throws | |
---|---|
Throwable |