RenderScript ランタイム API リファレンス

概要

RenderScript は、ネイティブ レベルでコンピューティング オペレーションを行う高パフォーマンスのランタイムです。RenderScript コードは、プラットフォームに依存しないように、実行時にデバイスでコンパイルされます。

このリファレンス ドキュメントでは、C99 で RenderScript コードを記述するために利用できる RenderScript ランタイム API について説明します。RenderScript コンピューティング ヘッダー ファイルは、自動的にインクルードされます。

RenderScript を使用するには、このドキュメントに記載されている RenderScript ランタイム API と、RenderScript 用の Android フレームワーク API を使用する必要があります。Android フレームワーク API のドキュメントについては、android.renderscript パッケージ リファレンスをご覧ください。

RenderScript を使用して開発する方法と、ランタイム API と Android フレームワーク API の相互作用について詳しくは、RenderScript デベロッパー ガイドRenderScript のサンプルをご覧ください。

数値型

スカラー:

RenderScript は、次のスカラー数値型をサポートしています。

8 ビット 16 ビット 32 ビット 64 ビット
整数: char、int8_t 短い、int16_t int32_t long、long long、int64_t
符号なし整数: uchar、uint8_t ushort、uint16_t uint、uint32_t ulong、uint64_t
浮動小数点数: ハーフ 浮動小数点数 double

ベクトル:

RenderScript は、長さ 2、3、4 の固定サイズのベクトルをサポートします。ベクトルは、共通の型名の後に 2、3、または 4 を付加して宣言します。 (例: float4int3double2ulong4)。

ベクター リテラルを作成するには、ベクター型を使用し、次に中かっこで囲まれた値(例: (float3){1.0f, 2.0f, 3.0f})を使用します。

ベクトルのエントリには、さまざまな命名スタイルを使用してアクセスできます。

単一エントリにアクセスするには、変数名の後ろにドットを付加し、

  • x、y、z、w は、
  • r、g、b、a という文字は、
  • 文字 s または S の後にゼロベースのインデックスが続きます。

たとえば、int4 myVar; の場合は以下は同じ結果になります。
myVar.x == myVar.r == myVar.s0 == myVar.S0
myVar.y == myVar.g == myVar.s1 == myVar.S1
myVar.z == myVar.b == myVar.s2 == myVar.S2
myVar.w == myVar.a == myVar.s3 == myVar.S3

複数の文字またはインデックスを連結した識別子を使用すると、ベクトルの複数のエントリに一度にアクセスできます。結果として得られるベクトルのサイズは、名前が付けられたエントリの数と等しくなります。

上記の例では、myVar.yzmyVar.gbmyVar.s12myVar.S12 を使用して、中央の 2 つのエントリにアクセスできます。

エントリは連続したり、昇順にしたりする必要はありません。割り当てを行おうとしない限り、エントリを繰り返すこともできます。また、複数の命名スタイルを混在させることはできません。

以下に、できることとできないことの例を示します。
float4 v4;
float3 v3;
float2 v2;
v2 = v4.xx; // Valid
v3 = v4.zxw; // Valid
v3 = v4.bba; // Valid
v3 = v4.s032; // Valid
v3.s120 = v4.S233; // Valid
v4.yz = v3.rg; // Valid
v4.yzx = v3.rg; // Invalid: mismatched sizes
v4.yzz = v3; // Invalid: z appears twice in an assignment
v3 = v3.xas0; // Invalid: can't mix xyzw with rgba nor s0...
v3 = v4.s034; // Invalid: the digit can only be 0, 1, 2, or 3

行列と四元数:

RenderScript は、サイズが 2x2、3x3、4x4 の浮動小数点数の固定サイズの正方形行列をサポートしています。型の名前は rs_matrix2x2rs_matrix3x3rs_matrix4x4 です。オペレーションのリストについては、行列関数をご覧ください。

四元数も rs_quaternion を介してサポートされています。オペレーションのリストについては、Quaterion 関数をご覧ください。

文字 2 2 つの 8 ビット符号付き整数
char3 8 ビット符号付き整数が 3 つ
char4 4 つの 8 ビット符号付き整数
double2 2 つの 64 ビット浮動小数点数
double3 3 つの 64 ビット浮動小数点数
double4 4 つの 64 ビット浮動小数点数
float2 2 つの 32 ビット浮動小数点数
float3 3 つの 32 ビット浮動小数点数
float4 4 つの 32 ビット浮動小数点数
half 16 ビット浮動小数点値
half2 2 つの 16 ビット浮動小数点数
half3 3 つの 16 ビット浮動小数点数
half4 4 つの 16 ビット浮動小数点数
int16_t 16 ビット符号付き整数
int2 2 つの 32 ビット符号付き整数
int3 3 つの 32 ビット符号付き整数
int32_t 32 ビット符号付き整数
int4 4 つの 32 ビット符号付き整数
int64_t 64 ビット符号付き整数
int8_t 8 ビット符号付き整数
long2 2 つの 64 ビット符号付き整数
long3 64 ビット符号付き整数が 3 つ
long4 4 つの 64 ビット符号付き整数
rs_matrix2x2 32 ビット浮動小数点数の 2x2 行列
rs_matrix3x3 32 ビット浮動小数点数の 3x3 行列
rs_matrix4x4 32 ビット浮動小数点数の 4x4 行列
rs_quaternion 四元数
short2 2 つの 16 ビット符号付き整数
short3 16 ビット符号付き整数が 3 つ
short4 4 つの 16 ビット符号付き整数
size_t 符号なしのサイズ型
ssize_t 署名付きサイズタイプ
uchar 8 ビット符号なし整数
uchar2 2 つの 8 ビット符号なし整数
uchar3 3 つの 8 ビット符号なし整数
uchar4 4 つの 8 ビット符号なし整数
uint 32 ビット符号なし整数
uint16_t 16 ビット符号なし整数
uint2 2 つの 32 ビット符号なし整数
uint3 3 つの 32 ビット符号なし整数
uint32_t 32 ビット符号なし整数
uint4 4 つの 32 ビット符号なし整数
uint64_t 64 ビット符号なし整数
uint8_t 8 ビット符号なし整数
ulong 64 ビット符号なし整数
ulong2 2 つの 64 ビット符号なし整数
ulong3 3 つの 64 ビット符号なし整数
ulong4 4 つの 64 ビット符号なし整数
ushort 16 ビット符号なし整数
ushort2 2 つの 16 ビット符号なし整数
ushort3 3 つの 16 ビット符号なし整数
ushort4 4 つの 16 ビット符号なし整数

オブジェクト型

次の型は、割り当て、サンプラー、要素、スクリプトなどの RenderScript オブジェクトを操作するために使用されます。これらのオブジェクトのほとんどは、Java RenderScript API を使用して作成されます。

rs_allocation 割り当てに対するハンドル
rs_allocation_cubemap_face 立方体の地図の面を選択するための列挙型
rs_allocation_usage_type 割り当ての使用方法を指定するビットフィールド
rs_data_kind 要素データの種類
rs_data_type 要素の基本データ型
rs_element 要素に対するハンドル
rs_sampler サンプラーに対するハンドル
rs_sampler_value サンプラーのラップの T 値
rs_script スクリプトに対する処理
rs_type 型のハンドル
rs_yuv_format YUV 形式

変換関数

以下の関数は、数値ベクトル型から別の色表現への変換、またはある色表現から別の色表現への変換を行います。

関数
convert 数値ベクトルを変換する
rsPackColorTo8888 浮動小数点数から uchar4 RGBA を作成する
rsUnpackColor8888 uchar4 から float4 RGBA を作成する
rsYuvToRGBA YUV 値を RGBA に変換する

数学定数と数学関数

以下の数学関数は、スカラーとベクトルに適用できます。ベクトルに適用した場合、入力の各エントリに適用される関数のベクトルが返されます。

次に例を示します。
float3 a, b;
// The following call sets
// a.x to sin(b.x),
// a.y to sin(b.y), and
// a.z to sin(b.z).
a = sin(b);

入力を N 次元空間の単一ベクトルとして解釈する distance() や length() などの関数については、ベクトル数学関数をご覧ください。

32 ビット浮動小数点数に対する数学演算の精度は、rs_fp_relaxed プラグと rs_fp_full プラグマの影響を受けます。rs_fp_relaxed では、通常より低い値がゼロにフラッシュされ、ゼロに向かって丸めされる場合があります。これに対して、rs_fp_full は標準外の値(1.17549435e-38f より小さい)を正しく処理する必要があります。rs_fp_rull も、偶数と同点で最も近い値に丸める必要があります。

一般的な数学関数のバリエーションを使用すると、精度と速度のトレードオフを実現できます。名前が

  • native_: 精度が低いカスタム ハードウェア実装が含まれる可能性があります。さらに、異常な値がゼロにフラッシュされたり、ゼロへの丸めが使用されたり、NaN 入力と無限大入力が正しく処理されない場合があります。
  • third_: 16 ビット浮動小数点数を使用して内部計算を実行できます。さらに、正常でない値はゼロにフラッシュされ、ゼロへの丸めを使用できます。

定数
M_1_PI 1 / pi(32 ビット浮動小数点数)
M_2_PI 2 / pi(32 ビット浮動小数点数)
M_2_SQRTPI 2 / sqrt(pi)、32 ビット浮動小数点数
M_E e(32 ビット浮動小数点数)
M_LN10 log_e(10)(32 ビット浮動小数点数)。
M_LN2 log_e(2)(32 ビット浮動小数点数)。
M_LOG10E log_10(e)(32 ビット浮動小数点数)。
M_LOG2E log_2(e)(32 ビット浮動小数点数)。
M_PI pi(32 ビット浮動小数点数)
M_PI_2 pi / 2(32 ビット浮動小数点数)
M_PI_4 pi / 4(32 ビット浮動小数点数)
M_SQRT1_2 1 / sqrt(2)(32 ビット浮動小数点数)
M_SQRT2 sqrt(2)(32 ビット浮動小数点数)
関数
abs 整数の絶対値
acos 逆コサイン
acosh 逆双曲線コサイン
acospi 逆コサインを円周率で割ったもの
asin 逆正弦
asinh 逆双曲線正弦
asinpi 逆正弦を円周率で除算した値
atan 逆タンジェント
atan2 比率の逆タンジェント
atan2pi 比率の逆タンジェントを円周率で割った数値
atanh 逆双曲線正接
atanpi 逆タンジェントを円周率で割った数値
cbrt キューブルート
ceil 特定の値以上の最小の整数
clamp 値を範囲に制約する
clz 先頭の 0 ビットの数
copysign 数値の符号を別の符号にコピーします。
cos コサイン
cosh 双曲線コサイン
cospi 数値に円周率を乗じたコサイン
ラジアンを度数に変換します
erf 数学の誤差関数
erfc 数学の補完誤差関数
exp e が数値に上げられる
exp10 10 の数字が 10 になる
exp2 2 の累乗数
expm1 数字から 1 を引いた e を底とする
FAB 浮動小数点数の絶対値
fdim 2 つの値の正の差
下限 ある値以下の最小の整数
fma かけ算と足し算を行う
fmax 最大 2 つの浮動小数点数
fmin 2 つ以上の浮動小数点数。
fmod モジュロ
fract 正分数部
frexp 2 進仮数と指数
half_recip 16 ビット精度で計算された逆数
half_rsqrt 16 ビット精度で計算された平方根の逆数
half_sqrt 16 ビット精度で計算された平方根
hypot 斜辺
ilogb 2 を底とする指数
ldexp 仮数と指数から浮動小数点を作成します。
lgamma ガンマ関数の自然対数
log 自然対数
log10 10 を底とする対数
log1p 値 + 1 の自然対数
log2 2 を底とする対数
logb 2 を底とする指数
mad かけ算と足し算を行う
max 最大
min 最小
mix 2 つの値を混在させる
modf 積分成分と分数成分
nan 数値ではありません
nan_half 数値ではありません
native_acos 近似逆コサイン
native_acosh 近似逆双曲線コサイン
native_acospi 円周率で割った近似逆コサイン
native_asin 近似逆正弦
native_asinh 近似逆双曲線正弦
native_asinpi 円周率で割った近似逆サイン
native_atan 近似逆タンジェント
native_atan2 比率の近似逆タンジェント
native_atan2pi 比率の近似逆タンジェントを円周率で割ったもの
native_atanh 近似逆双曲線正接
native_atanpi 逆タンジェントを円周率で割った近似値
native_cbrt 近似立方根
native_cos 近似コサイン
native_cosh 近似双曲線コサイン
native_cospi 数値に円周率を乗じた近似余弦
native_divide 近似除算
native_exp 近似 e を数字に累乗する
native_exp10 約 10 の 1 乗
native_exp2 近似 2 を底とする
native_expm1 近似 e を数字から 1 を引いた値に累乗する
native_hypot 近似斜辺
native_log 近似自然対数
native_log10 近似 10 を底とする対数
native_log1p 値に 1 を足した近似自然対数
native_log2 近似 2 を底とする対数
native_powr 正の底を指数に累乗する近似値
native_recip 近似逆数
native_rootn 近似 n 乗根
native_rsqrt 平方根の近似逆数
native_sin 近似正弦
native_sincos 近似正弦と近似余弦
native_sinh 近似双曲線正弦
native_sinpi 数値に円周率を乗じた近似正弦
native_sqrt 近似平方根
native_tan 近似タンジェント
native_tanh 近似双曲線正接
native_tanpi 数値に円周率を乗じた近似タンジェント
nextafter 次の浮動小数点数
pow 底を指数に累乗する
pown 底を整数の指数に累乗する
powr 正の底を指数に累乗する
ラジアン 度数をラジアンに変換します
remainder 除算の余り
remquo 除算の余りと商
rint 偶数に丸める
rootn N 乗根
round ゼロから逆算する
rsRand 擬似乱数
rsqrt 平方根の逆数
sign 値の符号
sin サイン
sincos 正弦と余弦
sinh 双曲線正弦
sinpi 数値に円周率を掛けた正弦
sqrt 平方根
step 値未満の場合は 0、それ以外の場合は 0
tan タンジェント
tanh 双曲線正接
tanpi 数値に円周率を乗じたタンジェント
tgamma ガンマ関数
trunc 浮動小数点数を切り捨てます。

ベクター数学関数

これらの関数は、入力引数を N 次元空間のベクトル表現として解釈します。

32 ビット浮動小数点数に対する数学演算の精度は、rs_fp_relaxed プラグと rs_fp_full プラグマの影響を受けます。詳細については、数学定数と関数をご覧ください。

一般的な数学関数のバリエーションを使用すると、精度と速度のトレードオフを実現できます。名前が

  • native_: 精度が低いカスタム ハードウェア実装が含まれる可能性があります。さらに、異常な値がゼロにフラッシュされたり、ゼロへの丸めが使用されたり、NaN 入力と無限大入力が正しく処理されない場合があります。
  • fast_: 16 ビット浮動小数点数を使用して内部計算を実行できます。さらに、正常でない値はゼロにフラッシュされ、ゼロへの丸めを使用できます。

関数
cross 2 つのベクトルの外積
distance 2 点間の距離
ドット 2 つのベクトルのドット積
fast_distance 2 地点間の近似距離
fast_length ベクトルのおおよその長さ
fast_normalize 正規化された近似ベクトル
length ベクトルの長さ
native_distance 2 地点間の近似距離
native_length ベクトルのおおよその長さ
native_normalize ベクトルを近似正規化する
normalize ベクトルを正規化する

行列関数

これらの関数を使用すると、ランク 2x2、3x3、4x4 の平方行列を操作できます。特にグラフィカルな変換に役立ち、OpenGL と互換性があります。

行と列にはゼロベースのインデックスを使用します。たとえば、rs_matrix4x4 の最後の要素は (3, 3) にあります。

RenderScript は、列優先の行列と列ベースのベクトルを使用します。ベクトルの変換は、ベクトルを事後乗算することで行われます(例: rsMatrixMultiply() により提供される (matrix * vector))。

一度に 2 つの変換を行う変換行列を作成するには、2 つのソース行列を乗算します(最初の変換を正しい引数とします)。たとえば、変換 s1 の後に s2 が続く変換行列を作成するには、rsMatrixLoadMultiply(&combined, &s2, &s1) を呼び出します。これは s2 * (s1 * v)(s2 * s1) * v)から派生します。

変換行列を作成するための関数には、rsMatrixLoadTransformation と rsMatrixTransformation の 2 つがあります。前者のスタイルでは、単に最初の引数に変換行列を格納します。後者は、既存の変換行列を変更して、新しい変換が最初に行われるようにします。たとえば、すでにスケーリングが行われている行列に対して rsMatrixTranslate() を呼び出した場合、結果の行列をベクトルに適用したときに、まず翻訳が行われ、その後にスケーリングが行われます。

関数
rsExtractFrustumPlanes 錐台平面の計算
rsIsSphereInFrustum 球が円錐面内にあるかどうかを確認します。
rsMatrixGet 1 つの要素を取得する
rsMatrixInverse 行列を所定の位置で反転します。
rsMatrixInverseTranspose 所定の位置で行列を反転、転置する
rsMatrixLoad マトリックスの読み込みまたはコピー
rsMatrixLoadFrustum 錐台射影行列を読み込む
rsMatrixLoadIdentity ID マトリックスの読み込み
rsMatrixLoadMultiply 2 つの行列を乗算する
rsMatrixLoadOrtho 正投影行列を読み込む
rsMatrixLoadPerspective 視点射影行列を読み込む
rsMatrixLoadRotate 回転マトリックスを読み込む
rsMatrixLoadScale スケーリング マトリックスを読み込む
rsMatrixLoadTranslate 変換マトリックスを読み込む
rsMatrixMultiply 行列とベクトルまたは他の行列を乗算する
rsMatrixRotate 変換行列に回転を適用する
rsMatrixScale 変換行列にスケーリングを適用する
rsMatrixSet 要素を 1 つ設定する
rsMatrixTranslate 変換行列に平行移動を適用する
rsMatrixTranspose 行列の転置

四元数関数

次の関数は四元数を処理します。

関数
rsQuaternionAdd 2 つの四元数を足し算する
rsQuaternionConjugate 四元数を共役する
rsQuaternionDot 2 つの四元数のドット積
rsQuaternionGetMatrixUnit 四元数から回転行列を取得する
rsQuaternionLoadRotate 回転四元数を作成する
rsQuaternionLoadRotateUnit 任意の単位ベクトルに関する回転を表す四元数
rsQuaternionMultiply 四元数にスカラーまたは他の四元数を乗算する
rsQuaternionStandardize 四元数を正規化する
rsQuaternionSet 四元数を作成する
rsQuaternionSlerp 2 つの四元数間の球面線形補間

アトミック更新関数

複数のスレッド間で共有される値を更新するには、以下の関数を使用します。 これにより、値がアトミックに更新されます。つまり、メモリの読み取り、更新、メモリ書き込みが正しい順序で実行されます。

これらの関数はアトミックでない同等の関数よりも低速であるため、同期が必要な場合にのみ使用してください。

RenderScript では、明示的に作成していなくても、コードが別のスレッドで実行される可能性があります。RenderScript ランタイムは、多くの場合、1 つのカーネルの実行を複数のスレッドに分割します。グローバルの更新はアトミック関数を使用して行う必要があります。可能であれば、完全に回避するようにアルゴリズムを変更します。

関数
rsAtomicAdd スレッドセーフな追加
rsAtomicAnd スレッドセーフなビット演算と
rsAtomicCas スレッドセーフな比較と設定
rsAtomicDec スレッドセーフなデクリメント
rsAtomicInc スレッドセーフなインクリメント
rsAtomicMax スレッドセーフな最大値
rsAtomicMin スレッドセーフな最小値
rsAtomicOr スレッドセーフなビット単位または
rsAtomicSub スレッドセーフな減算
rsAtomicXor スレッドセーフなビット単位排他的論理和

時間関数と時間型

以下の関数を使用して、現在の時刻と現在のシステム アップ時刻を算出できます。これらの関数をカーネル内で呼び出すことはおすすめしません。

rs_time_t 1970 年 1 月 1 日からの秒数
rs_tm 日付と時刻の構造
関数
rsGetDt 最後の呼び出しからの経過時間
rsLocaltime 現地時間に変換する
rsTime 1970 年 1 月 1 日からの秒数
rsUptimeMillis システムの稼働時間(ミリ秒)
rsUptimeNanos システムの稼働時間(ナノ秒単位)

割り当て作成関数

以下の関数を使用して、スクリプトから割り当てを作成できます。

これらの関数は、呼び出し可能な関数から直接、または間接的に呼び出すことができます。なんらかの制御フローパスにより、RenderScript カーネル関数からこれらの関数が呼び出されると、コンパイラ エラーが生成されます。

関数
rsCreateAllocation 指定された型の rs_allocation オブジェクトを作成します。
rsCreateElement 指定されたデータ型の rs_element オブジェクトを作成します
rsCreatePixelElement 指定されたデータ型とデータ型の rs_element オブジェクトを作成します
rsCreateType 指定された要素とシェイプの属性を持つ rs_type オブジェクトを作成します。
rsCreateVectorElement 指定されたデータ型とベクトル幅の rs_element オブジェクトを作成します

アロケーション データ アクセス関数

以下の関数を使用すると、割り当てを構成するセルを取得して設定できます。

  • 個々のセルにアクセスするには、rsGetElementAt* 関数と rsSetElementAt 関数を使用します。
  • rsAllocationCopy* 関数と rsAllocationV* 関数を使用して、複数のセルをコピーできます。
  • サンプラーを介して値を取得するには、rsSample を使用します。
rsGetElementAt 関数と rsSetElement* 関数の名前が多少間違っています。 データ型のように要素を取得または設定するのではなく、セルを取得または設定します。これらは rsGetCellAt および rsSetCellAt と考えてください。

関数
rsAllocationCopy1DRange 割り当て間で連続セルをコピーする
rsAllocationCopy2DRange 割り当て間のセルの長方形領域をコピーする
rsAllocationVLoadX スカラーの割り当てからベクトルを取得する
rsAllocationVStoreX ベクトルをスカラーの割り当てに格納する
rsGetElementAt 割り当てからセルを返す
rsGetElementAtYuv_uchar_U YUV の割り当てから U コンポーネントを取得する
rsGetElementAtYuv_uchar_V YUV の割り当ての V コンポーネントを取得する
rsGetElementAtYuv_uchar_Y YUV の割り当ての Y コンポーネントを取得する
rsSample テクスチャ割り当てから値をサンプリングする
rsSetElementAt 割り当てのセルを設定する

オブジェクト特性関数

以下の関数を使用して、Allocation、Element、または Sampler オブジェクトの特性をクエリできます。これらのオブジェクトは Java から作成されます。スクリプトから作成することはできません。

割り当て:

割り当ては、RenderScript カーネルとの間でデータを受け渡すために使用される主要な方法です。

ビットマップ、テクスチャ、任意のデータポイントなどを保存するために使用できるセルの構造化された集まりです。

このセルの集合には、多くの次元(X、Y、Z、Array0、Array1、Array2、Array3)、面(キューブマップ用)、詳細レベル(mipmap 用)があります。

割り当ての作成について詳しくは、android.renderscript.Allocation をご覧ください。

要素:

RenderScript では、「要素」という用語が、割り当てのセルの型情報とその型のインスタンス化の両方として、やや曖昧に使用されます。次に例を示します。

  • rs_element は型仕様へのハンドルです。
  • rsGetElementAt() のような関数では、「element」は型(割り当てのセル)のインスタンス化を意味します。

以下の関数を使用すると、型仕様の特性をクエリできます。

要素では、C にある単純なデータ型(整数、浮動小数点数、ブール値など)を指定できます。RenderScript オブジェクトに対するハンドルも指定できます。基本的な型のリストについては、rs_data_type をご覧ください。

要素では、基本型の固定サイズの(2、3、4 サイズの)ベクトル バージョンを指定できます。要素は複雑な要素にまとめることで、C 構造定義と同等のものを作成できます。

要素には kind を持つこともできます。kind は、ピクセルデータの解釈に使用されるセマンティック情報です。rs_data_kind をご覧ください。

共通要素の割り当てを作成する場合は、F32_2 などの多数の事前定義済み要素のいずれかを使用するだけで済みます。

複雑な要素を作成するには、Element.Builder Java クラスを使用します。

サンプラー:

サンプラー オブジェクトは、割り当てをカーネル内の構造として読み取る方法を定義します。android.renderscript.S をご覧ください。

関数
rsAllocationGetDimFaces 複数の顔が含まれている
rsAllocationGetDimLOD 詳細レベルの有無
rsAllocationGetDimX X ディメンションのサイズ
rsAllocationGetDimY Y ディメンションのサイズ
rsAllocationGetDimZ Z ディメンションのサイズ
rsAllocationGetElement 割り当てのセルを記述するオブジェクトを取得する
rsClearObject オブジェクトを解放する
rsElementGetBytesSize 要素のサイズ
rsElementGetDataKind 要素の種類
rsElementGetDataType 要素のデータ型
rsElementGetSubElement 複合要素のサブ要素
rsElementGetSubElementArraySize 複合要素のサブ要素の配列サイズ。
rsElementGetSubElementCount 下位要素の数
rsElementGetSubElementName サブ要素の名前
rsElementGetSubElementNameLength 下位要素の名前の長さ
rsElementGetSubElementOffsetBytes インスタンス化されたサブ要素のオフセット
rsElementGetVectorSize 要素のベクターサイズ
rsIsObject 空のハンドルをチェックする
rsSamplerGetAnisotropy サンプラーの異方性
rsSamplerGetMagnification サンプラーの拡大値
rsSamplerGetMinification サンプラー圧縮値
rsSamplerGetWrapS サンプラー ラップの S 値
rsSamplerGetWrapT サンプラーのラップの T 値

カーネル呼び出し関数とカーネル呼び出し型

rsForEach() 関数を使用して、スクリプトのルートカーネルを呼び出すことができます。

他の関数は、ディメンションや現在のインデックスなど、実行中のカーネルの呼び出しの特性を取得するために使用されます。これらの関数は、引数として rs_kernel_context を取ります。

rs_for_each_strategy_t セルの処理順序の候補
rs_kernel カーネル関数に対するハンドル
rs_kernel_context カーネル呼び出しコンテキストに対するハンドル
rs_script_call_t セルの反復処理に関する情報
関数
rsForEach カーネルを起動する
rsForEachInternal (内部 API)現在のスクリプトで(スロット番号を指定して)カーネルを起動する
rsForEachWithOptions オプションを指定してカーネルを起動する
rsGetArray0 指定されたカーネル コンテキストの Array0 ディメンションのインデックス
rsGetArray1 指定されたカーネル コンテキストの Array1 ディメンションのインデックス
rsGetArray2 指定されたカーネル コンテキストの Array2 ディメンションのインデックス
rsGetArray3 指定されたカーネル コンテキストの Array3 ディメンションのインデックス
rsGetDimArray0 指定されたカーネル コンテキストの Array0 ディメンションのサイズ
rsGetDimArray1 指定されたカーネル コンテキストの Array1 ディメンションのサイズ
rsGetDimArray2 指定されたカーネル コンテキストの Array2 ディメンションのサイズ
rsGetDimArray3 指定されたカーネル コンテキストの Array3 ディメンションのサイズ
rsGetDimHasFaces 指定されたカーネル コンテキストに複数の顔が存在する
rsGetDimLod 指定されたカーネル コンテキストの詳細レベル数
rsGetDimX 指定されたカーネル コンテキストの X ディメンションのサイズ
rsGetDimY 指定されたカーネル コンテキストの Y ディメンションのサイズ
rsGetDimZ 指定されたカーネル コンテキストの Z ディメンションのサイズ
rsGetFace 指定されたカーネル コンテキストの顔の座標
rsGetLod 指定されたカーネル コンテキストの詳細レベル ディメンションのインデックス

入出力関数

これらの関数は、以下の目的で使用します。

  • Java クライアントに情報を送信する。
  • 処理された割り当てを送信するか、処理する次の割り当てを受信します。

関数
rsAllocationIoReceive キューから新しいコンテンツを受け取る
rsAllocationIoSend 新しいコンテンツをキューに送信する
rsSendToClient クライアントへのメッセージ送信
rsSendToClientBlocking クライアントにメッセージを送信して、

デバッグ関数

以下の関数は、アプリ開発で使用することを想定しています。配送用のアプリでは使用しないでください。

関数
rsDebug メッセージと値をログに記録する

グラフィック関数とグラフィック型

RenderScript のグラフィック サブシステムは、API レベル 23 で削除されました。