總覽
RenderScript 是高效能執行階段,可提供原生層級的運算作業。RenderScript 程式碼會在執行階段期間編譯裝置,以便讓平台獨立運作。
這份參考說明文件將介紹 RenderScript 執行階段 API,可讓您在 C99 中編寫 RenderScript 程式碼。系統會自動納入 RenderScript 運算標頭檔案。
如要使用 RenderScript,您需要使用本文記錄的 RenderScript 執行階段 API,以及 RenderScript 的 Android 架構 API。如需 Android 架構 API 的說明文件,請參閱 android.renderscript 套件參考資料。
如要進一步瞭解如何使用 RenderScript 進行開發,以及執行階段和 Android 架構 API 的互動方式,請參閱 RenderScript 開發人員指南和 RenderScript 範例。
數值類型
純量:
RenderScript 支援下列純量數值類型:
8 位元 | 16 位元 | 32 位元 | 64 位元 | |
整數: | char、int8_t | 簡短、int16_t | int32_t | long、長版、int64_t |
非帶號整數: | uchar、uint8_t | ushort, uint16_t | uint、uint32_t | ulong、uint64_t |
浮點: | 半場 | 浮點值 | double |
向量:
RenderScript 支援長度為 2、3 和 4 的固定大小向量。使用常見類型名稱及 2、3 或 4 來宣告向量。例如 float4、int3、double2、ulong4。
如要建立向量常值,請使用向量類型,並在大括號之間括住的值,例如 (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
您可以使用由多個字母或索引串連的 ID,一次存取一個向量的多個項目。產生的向量大小等於命名的項目數量。
在上述範例中,中間兩個項目可以使用 myVar.yz
、myVar.gb
、myVar.s12
和 myVar.S12
存取。
項目不一定要連續或以遞增順序排列。只要不嘗試指派項目,項目也可以重複。此外,您也無法混合使用命名樣式。
以下列舉幾個允許或禁止的行為:
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_ Matrix2x2、rs_ Matrix3x3 和 rs_ Matrix4x4。如需作業清單,請參閱 Matrix 函式。
您也可以透過 rs_quaternion 來支援四元數。如需作業清單,請參閱四元函式。
類型 | |
---|---|
char2 | 兩個 8 位元帶正負號整數 |
char3 | 三個 8 位元帶正負號整數 |
char4 | 四個 8 位元帶正負號整數 |
double2 | 2 個 64 位元浮點值 |
double3 | 3 個 64 位元浮點值 |
double4 | 四個 64 位元浮點值 |
float2 | 2 個 32 位元浮點值 |
float3 | 3 個 32 位元浮點值 |
float4 | 四個 32 位元浮點值 |
半價 | 16 位元浮點值 |
half2 | 2 個 16 位元浮點值 |
half3 | 3 個 16 位元浮點值 |
half4 | 四個 16 位元浮點值 |
int16_t | 16 位元帶正負號整數 |
int2 | 兩個帶正負號的整數 (共 32 位元) |
int3 | 三個 32 位元帶正負號整數 |
int32_t | 32 位元帶正負號整數 |
int4 | 四個 32 位元帶正負號整數 |
int64_t | 64 位元帶正負號整數 |
int8_t | 8 位元帶正負號整數 |
long2 | 兩個 64 位元帶正負號整數 |
long3 | 三個 64 位元帶正負號整數 |
long4 | 四個 64 位元帶正負號整數 |
rs_ Matrix2x2 | 32 位元浮點的 2x2 矩陣 |
rs_ Matrix3x3 | 32 位元浮點的 3x3 矩陣 |
rs_ Matrix4x4 | 32 位元浮點的 4x4 矩陣 |
rs_quaternion | 四元數 |
short2 | 兩個 16 位元帶正負號整數 |
short3 | 三個 16 位元帶正負號整數 |
short4 | 四個 16 位元帶正負號整數 |
size_t | 未簽署的大小類型 |
ssize_t | 簽署大小類型 |
uchar | 8 位元無正負號整數 |
uchar2 | 兩個 8 位元無正負號整數 |
uchar3 | 三個 8 位元不帶正負號整數 |
uchar4 | 四個 8 位元無正負號整數 |
uint | 32 位元無正負號整數 |
uint16_t | 16 位元無正負號整數 |
uint2 | 兩個 32 位元無正負號整數 |
uint3 | 三個 32 位元不帶正負號整數 |
uint32_t | 32 位元無正負號整數 |
uint4 | 四個 32 位元無正負號整數 |
uint64_t | 64 位元無正負號整數 |
uint8_t | 8 位元無正負號整數 |
ulong | 64 位元無正負號整數 |
ulong2 | 兩個 64 位元無正負號整數 |
ulong3 | 三個 64 位元無正負號整數 |
ulong4 | 四個 64 位元無正負號整數 |
ushort | 16 位元無正負號整數 |
ushort2 | 兩個 16 位元無正負號整數 |
ushort3 | 三個 16 位元無正負號整數 |
ushort4 | 四個 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);
請參閱向量數學函式中的 distance() 和 length() 等函式,瞭解如何將輸入內容解讀為 N 維空間中的單一向量。
32 位元浮點數的數學運算的精確度會受到 pragmas rs_fp_relaxed 和 rs_fp_full 影響。在 rs_fp_relaxed 下,子常態值可清除至零,並可能會四捨五入至零。相較之下,rs_fp_full 需要正確處理子常值,也就是小於 1.17549435e-38f。rs_fp_rull 也需要四捨五入至最接近的值,單位為偶數。
使用常見數學函式的變體,即可達成不同的精確度/速度的取捨。名稱開頭為
- native_:可能採用精確度較低的自訂硬體實作。此外,子常值可能會完全清除至零,使用四捨五入為零,且無法正確處理 NaN 和無限輸入的資料。
- 半數:可能會使用 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 | 將反餘弦除以 pi |
asin | 反正弦 |
asinh | 反雙曲線正弦 |
asinpi | 反正弦除以 pi |
atan | 反正切 |
atan2 | 比率的反正切 |
atan2pi | 比率的反正切除以 pi |
atanh | 反雙曲線正切 |
atanpi | 將反正切除以 pi |
cbrt | 立方根 |
ceil | 不得小於值的小型整數 |
取值範圍 | 將值限制在特定範圍 |
clz | 開頭的 0 位元數量 |
copysign | 將數字的正負號複製到另一個 |
cos | 餘弦 |
cosh | 雙曲線餘弦 |
cospi | 指定數字乘以 pi 的餘弦值 |
度數 | 將弧度轉換為角度 |
erf | 數學錯誤函式 |
erfc | 數學互補錯誤函式 |
exp | e 提高為數字 |
exp10 | 10 為數字 |
exp2 | 2 已提高為數字 |
expm1 | e+1 減去一 |
fabs | 浮點值的絕對值 |
fdim | 兩個值之間的正差異 |
floor | 不大於值的小型整數 |
fma | 乘上並新增 |
fmax | 最多兩個浮點值 |
fmin | 最少兩個浮點值 |
fmod | 模數 |
細菌 | 正分部分 |
frexp | 二進位制式和指數 |
half_recip | 運算元的精確度為 16 位元 |
half_rsqrt | 計算為 16 位元精確度的平方根相互參照 |
half_sqrt | 計算為 16 位元精確度的平方根 |
hypot | 斜邊 |
ilogb | 以兩個指數為基準 |
ldexp | 從 Maantisa 和指數建立浮點數 |
lgamma | Gamma 函式的自然對數 |
log | 自然對數 |
log10 | 以 10 為底數 |
log1p | 指定值加上 1 的自然對數 |
log2 | 底數 2 對數 |
logb | 以兩個指數為基準 |
mad | 乘上並新增 |
max | 最大值 |
min | 最低 |
合輯 | 混合兩個值 |
modf | 積分和分數元件 |
nan | 不是數字 |
nan_half | 不是數字 |
native_acos | 近似反餘弦 |
native_acosh | 近似反雙曲線餘弦值 |
native_acospi | 近似餘弦除以 pi |
native_asin | 近似反正弦 |
native_asinh | 近似反雙曲線正弦值 |
native_asinpi | 近似反正弦除以 pi |
native_atan | 近似反正切 |
native_atan2 | 比率的近反正切值 |
native_atan2pi | 比率的近反正切除以 pi 的值 |
native_atanh | 近似反雙曲正切 |
native_atanpi | 近似正切除以 pi |
native_cbrt | 近似立方根 |
native_cos | 近餘餘弦 |
native_cosh | 近似雙曲線餘弦 |
native_cospi | 指定數字乘以 pi 的近餘弦 |
native_divide | 近似除法 |
native_exp | 概略 e 提高為多個數字 |
native_exp10 | 取數字約為 10 |
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 | 指定數字乘以 pi 的近正弦值 |
native_sqrt | 近平方根 |
native_tan | 近正切 |
native_tanh | 近似雙曲正切 |
native_tanpi | 指定數字乘以 pi 的正正切值 |
nextafter | 下一個浮點數 |
pow | 以指數為準 |
Pown | 以整數指數為基礎 |
powr | 提高為指數的正底數 |
弧度 | 將角度轉換為弧度 |
remainder | 除法餘數 |
remquo | 除法的餘數與商 |
rint | 四捨五入 |
rootn | N 次方根 |
圓形 | 四捨五入 |
rsRand | 虛擬隨機號碼 |
rsqrt | 平方根的倒數 |
sign | 值的符號 |
sin | 正弦 |
sincos | 正弦和餘弦 |
Sinh | 雙曲線正弦 |
sinpi | 指定數字乘以 pi 的正弦 |
sqrt | 平方根 |
步驟 | 如果小於某個值,則傳回 0,否則傳回 0 |
tan | 正切 |
tanh | 雙曲線正切 |
tanpi | 指定數字乘以 pi 的正切值 |
tgamma | Gamma 函式 |
trunc | 截斷浮點 |
向量數學函式
這些函式會將輸入引數解讀為 N 維空間中的向量表示法。
32 位元浮點數的數學運算的精確度會受到 pragmas rs_fp_relaxed 和 rs_fp_full 影響。詳情請參閱數學常數和函式。
使用常見數學函式的變體,即可達成不同的精確度/速度的取捨。名稱開頭為
- native_:可能採用精確度較低的自訂硬體實作。此外,子常值可能會完全清除至零,使用四捨五入為零,且無法正確處理 NaN 和無限輸入的資料。
- 快速_:可能會使用 16 位元浮點值執行內部運算。此外,子常態值可清除至零,也可以使用捨入為零。
函式 | |
---|---|
cross | 兩個向量的交叉乘積 |
距離 | 兩點之間的距離 |
點 | 兩個向量的點積 |
Fast_distance | 兩點之間的概略距離 |
Fast_length | 向量的約略長度 |
Fast_normalize | 近似正規化向量 |
length | 向量長度 |
native_distance | 兩點之間的概略距離 |
native_length | 向量的約略長度 |
native_normalize | 對向量進行大致正規化處理 |
正規化 | 將向量正規化 |
矩陣函式
這些函式可讓您操控排名 2x2、3x3 和 4x4 的方形矩陣。特別適合用於圖形轉換,且與 OpenGL 相容。
我們對列和欄使用從零開始的索引。例如,rs_ Matrix4x4 的最後一個元素是在 (3, 3) 處。
RenderScript 會使用資料欄主要矩陣和資料欄型向量。轉換向量的方式是透過將向量 (例如 (matrix * vector)
) 後乘上而完成,如 rsMatrixMultiply() 所提供。
若要建立一次執行兩項轉換的轉換矩陣,請將兩個來源矩陣乘以第一個轉換,做為右引數。舉例來說,如要建立同時套用轉換 s1 和 s2 的轉換矩陣,請呼叫 rsMatrixLoadMultiply(&combined, &s2, &s1)
。這會從 s2 * (s1 * v)
衍生,也就是 (s2 * s1) * v
。
我們有兩種函式可以建立轉換矩陣:rsMatrixLoadTransformation 和 rsMatrixTransformation。先前的樣式只會將轉換矩陣儲存在第一個引數中。後者會修改既有的轉換矩陣,讓新的轉換先進行。舉例來說,如果您在已經執行資源調度的矩陣上呼叫 rsMatrixTranslate(),則先將產生的矩陣套用至向量時,會先進行平移,再進行資源調度。
函式 | |
---|---|
rsExtractFrustumPlanes | 計算砂輪飛機 |
rsIsSphereInFrustum | 檢查球面是否位於視錐體內 |
rsMatrixGet | 取得 1 個元素 |
rsMatrixInverse | 將定位點反轉 |
rsMatrixInverseTranspose | 反轉並轉置矩陣 |
rsMatrixLoad | 載入或複製矩陣 |
rsMatrixLoadFrustum | 載入視錐範圍投影矩陣 |
rsMatrixLoadIdentity | 載入識別資訊矩陣 |
rsMatrixLoadMultiply | 將兩個矩陣相乘 |
rsMatrixLoadOrtho | 載入正規投影矩陣 |
rsMatrixLoadPerspective | 載入透視投影矩陣 |
rsMatrixLoadRotate | 載入旋轉矩陣 |
rsMatrixLoadScale | 載入資源調度矩陣 |
rsMatrixLoadTranslate | 載入翻譯矩陣 |
rsMatrixMultiply | 將矩陣乘以向量或其他矩陣 |
rsMatrixRotate | 對轉換矩陣套用旋轉角度 |
rsMatrixScale | 對轉換矩陣套用縮放比例 |
rsMatrixSet | 設定一個元素 |
rsMatrixTranslate | 將平移套用到轉換矩陣 |
rsMatrixTranspose | 轉置矩陣位置 |
四元數函式
以下函式會操控四元數。
函式 | |
---|---|
rsQuaternionAdd | 將兩個四元數相加 |
rsQuaternionConjugate | 共和四元數 |
rsQuaternionDot | 兩個四元數的點積 |
rsQuaternionGetMatrixUnit | 取得四元數的旋轉矩陣 |
rsQuaternionLoadRotate | 建立旋轉四元數 |
rsQuaternionLoadRotateUnit | 代表任意單位向量旋轉的四元數 |
rsQuaternionMultiply | 將四元數乘以純量或其他四元數 |
rsQuaternionNormalize | 將四元數正規化 |
rsQuaternionSet | 建立四元數 |
rsQuaternionSlerp | 兩個四角之間的球面線性內插 |
完整更新函式
如要更新多個執行緒之間共用的值,請使用以下函式。 他們會確保值全面更新,也就是讓系統以正確的順序執行記憶體讀取、更新和記憶體寫入作業。
這些函式的速度比非不可分割的對等項目慢,因此請只在需要同步時使用。
請注意,在 RenderScript 中,即使您並未明確建立程式碼,您的程式碼仍可能在不同執行緒中執行。RenderScript 執行階段通常會將一個核心的執行作業分割至多個執行緒。更新全域變數時應透過原子函式完成。可以的話,請修改演算法,避免完全採用。
函式 | |
---|---|
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。
函式 | |
---|---|
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)、臉孔 (適用於立方體),以及細節層級 (適用於 mipmapping)。
如要進一步瞭解如何建立配置,請參閱 android.renderscript.Allocation。
元素:
在 RenderScript 中,「元素」一詞有點明確使用,做為配置儲存格的類型資訊以及該類型的例項化。例如:
- rs_element 是類型規格的控制代碼,
- 在 rsGetElementAt() 的函式中,「元素」是指類型例項化,即配置的儲存格。
以下函式可讓您查詢類型規格的特性。
元素可以指定簡單的資料類型,如 C 所示,例如整數、浮點或布林值。也可以為 RenderScript 物件指定控制代碼。如需基本類型的清單,請參閱 rs_data_type。
元素可以指定基本類型的固定大小向量 (大小為 2、3 或 4)。元素可分成複雜的元素,建立對等的 C 結構定義。
元素也可以擁有種類,這是用來解譯像素資料的語意資訊。請參閱「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 | 儲存格疊代資訊 |
函式 | |
---|---|
rsForEvery | 啟動核心 |
rsForEveryInternal | (內部 API) 在目前的指令碼中啟動核心 (包含運算單元編號) |
rsForEveryWithOptions | 使用選項啟動核心 |
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 | 指定核心結構定義的 Face 座標 |
rsGetLod | 特定核心結構定義「詳細資料層級」維度中的索引 |
輸入/輸出函式
這些函式的用途如下:
- 將資訊傳送至 Java 用戶端,並且
- 傳送已處理的分配金額,或接收下一項進行處理的分配作業。
函式 | |
---|---|
rsAllocationIoReceive | 從佇列接收新內容 |
rsAllocationIoSend | 將新內容傳送至佇列 |
rsSendToClient | 傳送訊息給用戶端,而非阻塞式 |
rsSendToClientBlocking | 傳送訊息給用戶端,封鎖 |
偵錯函式
以下函式適用於開發應用程式。請勿在運送申請中使用。
函式 | |
---|---|
rsDebug | 記錄訊息和值 |
圖形函式與類型
RenderScript 的圖形子系統已從 API 級別 23 中移除。