개요
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 비트 | |
정수: | 문자, int8_t | short, int16_t | int32_t | long, long, int64_t |
부호 없는 정수: | uchar, uint8_t | ushort, uint16_t | 단위, uint32_t | ulong, uint64_t |
부동 소수점: | 전/후반 | float | 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 다음에 0부터 시작하는 색인이 옵니다.
예를 들어 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.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_행렬2x2, rs_행렬3x3, rs_행렬4x4입니다. 작업 목록은 매트릭스 함수를 참조하세요.
쿼터니언은 rs_quaternion을 통해서도 지원됩니다. 작업 목록은 Quaterion 함수를 참조하세요.
유형 | |
---|---|
문자2 | 2개의 8비트 부호 있는 정수 |
문자3 | 3개의 8비트 부호 있는 정수 |
문자4 | 4개의 8비트 부호 있는 정수 |
더블2 | 64비트 부동 소수점 수 2개 |
더블3 | 64비트 부동 소수점 수 3개 |
더블4 | 64비트 부동 소수점 수 4개 |
부동 소수점 수 | 32비트 부동 소수점 수 2개 |
부동 소수점 수3 | 32비트 부동 소수점 수 |
부동 소수점 수4 | 32비트 부동 소수점 수 4개 |
하프 | 16비트 부동 소수점 값 |
하프2 | 2개의 16비트 부동 소수점 수 |
하프3 | 16비트 부동 소수점 수 3개 |
하프4 | 16비트 부동 소수점 수 4개 |
int16_t | 부호 있는 16비트 정수 |
int2 | 32비트 부호 있는 정수 2개 |
int3 | 32비트 부호 있는 정수 3개 |
int32_t | 부호 있는 32비트 정수 |
int4 | 32비트 부호 있는 정수 4개 |
int64_t | 부호 있는 64비트 정수 |
int8_t | 부호 있는 8비트 정수 |
긴2 | 64비트 부호 있는 정수 2개 |
긴3 | 64비트 부호 있는 정수 3개 |
긴 4 | 64비트 부호 있는 정수 4개 |
rs_행렬2x2 | 32비트 부동 소수점 수의 2x2 행렬 |
rs_행렬3x3 | 32비트 부동 소수점 수의 3x3 행렬 |
rs_행렬4x4 | 32비트 부동 소수점 수의 4x4 행렬 |
rs_quaternion | 사원수 |
짧은2 | 2개의 16비트 부호 있는 정수 |
짧은3 | 16비트 부호 있는 정수 3개 |
짧은 버전4 | 4개의 16비트 부호 있는 정수 |
사이즈_t | 부호 없는 사이즈 유형 |
사이즈_t | 부호 있는 크기 유형 |
우차르 | 부호 없는 8비트 정수 |
Uchar2 | 8비트의 부호 없는 정수 2개 |
Uchar3 | 부호 없는 8비트 정수 3개 |
Uchar4 | 부호 없는 4비트 정수 4개 |
단위 | 부호 없는 32비트 정수 |
uint16_t | 부호 없는 16비트 정수 |
Uint2 | 부호 없는 32비트 정수 2개 |
Uint3 | 부호 없는 32비트 정수 3개 |
uint32_t | 부호 없는 32비트 정수 |
Uint4 | 부호 없는 32비트 정수 4개 |
uint64_t | 부호 없는 64비트 정수 |
uint8_t | 부호 없는 8비트 정수 |
우롱 | 부호 없는 64비트 정수 |
Ulong2 | 부호 없는 64비트 정수 2개 |
Ulong3 | 부호 없는 64비트 정수 3개 |
Ulong4 | 부호 없는 64비트 정수 4개 |
유쇼트 | 부호 없는 16비트 정수 |
ushort2 드림 | 16비트의 부호 없는 정수 2개 |
Ushort3 드림 | 부호 없는 16비트 정수 3개 |
Ushort4 드림 | 부호 없는 16비트 정수 4개 |
객체 유형
아래 유형은 할당, 샘플러, 요소, 스크립트와 같은 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_유형] | 유형에 대한 핸들 |
rs_yuv_format | YUV 형식 |
변환 함수
아래 함수는 숫자 벡터 유형에서 다른 유형으로 또는 한 색 표현에서 다른 색 표현으로 변환합니다.
함수 | |
---|---|
전환 | 숫자 벡터 변환 |
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비트 부동 소수점 수에서 수학 연산의 정밀도는 pragmas rs_fp_relaxed 및 rs_fp_full의 영향을 받습니다. rs_fp_relaxed에서는 비정상 값이 0으로 플러시되고 0에 가까운 반올림이 이루어질 수 있습니다. 이에 비해 rs_fp_full은 1.17549435e-38f보다 작은 비정규 값 값을 올바르게 처리해야 합니다. rs_fp_rull은 짝수에 연결된 가장 가까운 값으로 반올림해야 합니다.
일반적인 수학 함수의 변형을 사용하면 다양한 정밀도/속도 절충점을 달성할 수 있습니다. 이름이 다음으로 시작하는 함수
- native_: 정확도가 낮은 맞춤 하드웨어 구현이 있을 수 있습니다. 또한 준정규 값은 0으로 플러시되고, 0을 향한 반올림을 사용할 수 있으며, NaN 및 무한대 입력이 올바르게 처리되지 않을 수 있습니다.
- 절반_: 16비트 부동 소수점 수를 사용하여 내부 계산을 수행할 수 있습니다. 또한 비정규 값을 0으로 플러시하고 0을 향한 반올림을 사용할 수 있습니다.
상수 | |
---|---|
M_1_PI(M_1_PI) | 1 / pi, 32비트 부동 소수점 수 |
M_2_PI(M_2_PI) | 2 / pi, 32비트 부동 소수점 수 |
M_2_SQRTPI | 2 / sqrt(pi), 32비트 부동 소수점 수 |
월~일 | 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비트 부동 소수점 수 |
함수 | |
---|---|
절대 | 정수의 절댓값 |
acos | 역 코사인 |
아코시 | 역 하이퍼볼릭 코사인 |
acospi | 역 코사인을 파이로 나눈 값 |
아신 | 역 사인 |
아신 | 역 하이퍼볼릭 사인 |
아신피 | 파이로 나눈 역 사인 |
아탄 | 역탄젠트 |
아탄2 | 비율의 역 탄젠트 |
atan2pi | 파이로 나눈 비율의 역 탄젠트 |
아탄 | 역 하이퍼볼릭 탄젠트 |
아탄피 | 역탄젠트를 파이로 나눈 값 |
cbrt | 세제곱근 |
Ceil | 값 이상의 최소 정수 |
클램프 | 값을 범위로 제한 |
CLZ | 선행 0비트 수 |
copysign | 숫자의 기호를 다른 숫자에 복사합니다. |
cos | 코사인 |
코시 | 하이페볼릭 코사인 |
Cospi | 파이를 곱한 숫자의 코사인 |
학위 | 라디안을 각도로 변환합니다. |
erf | 수학 오류 함수 |
erfc | 수학적 상보 오차 함수 |
지수 | e를 숫자로 거듭제곱합니다. |
실험10 | 10 배수 |
실험2 | 2 배수 |
지수1 | e를 숫자로 거듭제곱합니다. |
FAB | 부동 소수점 수의 절댓값 |
fdim | 두 값 간 양의 차이 |
바닥 | 값 이하의 정수 중 최솟값 |
fma | 곱하기 및 더하기 |
fmax | 최대 2개의 부동 소수점 수 |
fmin | 최소 2개의 부동 소수점 수 |
fmod | 모듈로 |
프랙트 | 양의 분수부 |
frexp | 이진 가수와 지수 |
half_recip | 16비트 정밀도로 역수 계산됨 |
half_rsqrt | 16비트 정밀도로 계산된 제곱근의 역수 |
half_sqrt | 16비트 정밀도로 계산된 제곱근 |
하이팟 | 빗변 |
ilogb | 밑이 2입니다. |
ldexp | 가수와 지수로 부동 소수점을 만듭니다. |
성소수자 | 감마 함수의 자연 로그 |
로그 | 자연 로그 |
로그10 | 밑이 10인 대수 |
log1p | 1을 더한 값의 자연 로그 |
로그2 | 밑이 2인 대수 |
logb | 밑이 2입니다. |
화남 | 곱하기 및 더하기 |
최대 | 최대 |
분 | 최소 |
믹스 | 두 개의 값을 혼합합니다. |
modf | 적분 및 분수 구성요소 |
난 | 숫자가 아님 |
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배, 50% |
native_exp2 | 약 2자리를 숫자로 거듭제곱합니다. |
네이티브_expm1 | 대략적인 e를 숫자 빼기 1로 거듭제곱 |
네이티브_하이라이트 | 대략적인 빗변 |
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 | 다음 부동 소수점 숫자 |
펑 | 아래 값을 지수로 거듭제곱합니다. |
pown | 밑을 정수 지수로 거듭제곱합니다. |
파우어 | 양의 밑을 지수로 거듭제곱합니다. |
라디안 | 각도를 라디안으로 변환합니다. |
나머지 | 나눗셈의 나머지 |
remquo | 나눗셈의 나머지와 몫 |
린트 | 짝수로 반올림 |
루팅 | N제곱근 |
둥근 | 0에서 반올림하기 |
rsRand | 유사 랜덤 숫자 |
rsqrt | 제곱근의 역수 |
서명 | 값의 부호 |
사인 | 사인 |
싱코스 | 사인 및 코사인 |
싱어 | 하이퍼볼릭 사인(hyperbolic sine) |
신피 | 파이를 곱한 숫자의 사인 |
sqrt | 제곱근 |
걸음 | 값보다 작은 경우 0, 그렇지 않으면 0 |
황갈색 | 탄젠트 |
tanh | 하이퍼볼릭 탄젠트 |
tanpi | 파이를 곱한 숫자의 탄젠트 |
tgamma | 감마 함수 |
trunc | 부동 소수점 자르기 |
벡터 수학 함수
이러한 함수는 입력 인수를 N차원 공간에서 벡터의 표현으로 해석합니다.
32비트 부동 소수점 수에서 수학 연산의 정밀도는 pragmas rs_fp_relaxed 및 rs_fp_full의 영향을 받습니다. 자세한 내용은 수학적 상수 및 함수를 참조하세요.
일반적인 수학 함수의 변형을 사용하면 다양한 정밀도/속도 절충점을 달성할 수 있습니다. 이름이 다음으로 시작하는 함수
- native_: 정확도가 낮은 맞춤 하드웨어 구현이 있을 수 있습니다. 또한 준정규 값은 0으로 플러시되고, 0을 향한 반올림을 사용할 수 있으며, NaN 및 무한대 입력이 올바르게 처리되지 않을 수 있습니다.
- fast_: 16비트 부동 소수점 수를 사용하여 내부 계산을 수행할 수 있습니다. 또한 비정규 값을 0으로 플러시하고 0을 향한 반올림을 사용할 수 있습니다.
함수 | |
---|---|
교차 | 두 벡터의 교차곱 |
거리 | 두 지점 사이의 거리 |
점 | 두 벡터의 내적 |
빠른_거리 | 두 지점 사이의 대략적인 거리 |
fast_length | 대략적인 벡터 길이 |
fast_normalize | 대략적인 정규화된 벡터 |
길이 | 벡터 길이 |
native_distance | 두 지점 사이의 대략적인 거리 |
native_length[네이티브_길이] | 대략적인 벡터 길이 |
native_normalize | 벡터의 대략적인 정규화 |
정규화 | 벡터 정규화 |
행렬 함수
이러한 함수를 사용하면 순위 2x2, 3x3, 4x4의 정사각형 행렬을 조작할 수 있습니다. 특히 그래픽 변환에 유용하며 OpenGL과 호환됩니다.
행과 열에는 0부터 시작하는 색인을 사용합니다. 예를 들어 rs_행렬4x4의 마지막 요소는 (3, 3)에서 찾을 수 있습니다.
RenderScript는 열 주 행렬과 열 기반 벡터를 사용합니다. 벡터 변환은 rsMatrixMultiply()에서 제공하는 (matrix * vector)
와 같은 벡터를 사후 곱하는 방식으로 이루어집니다.
한 번에 2개의 변환을 수행하는 변환 행렬을 만들려면
두 개의 소스 행렬에 첫 번째 변환을 오른쪽 인수로 곱합니다. 예를 들어 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 | 원근 투영 행렬 로드 |
rsMatrixLoadRotation | 회전 행렬 로드 |
rsMatrixLoadScale | 확장 행렬 로드 |
rsMatrixLoadTranslate | 변환 행렬 로드 |
rsMatrixMultiply | 행렬에 벡터 또는 다른 행렬 곱하기 |
rsMatrixRotation | 변환 행렬에 회전 적용 |
rsMatrixScale | 변환 행렬에 크기 조정 적용 |
rsMatrixSet | 요소 1개 설정 |
rsMatrixTranslate | 변환 행렬에 변환 적용 |
rsMatrixTranspose | 행렬 자리 바꾸기 |
사원수 함수
다음 함수는 쿼터니언을 조작합니다.
함수 | |
---|---|
rsQuaternionAdd입니다. | 사원수 2개를 더합니다. |
rsQuaternionConjugate | 사원수 켤레 |
rsQuaternionDot | 두 개의 사수의 내적 |
rsQuaternionGetMatrixUnit | 사원수에서 회전 행렬 가져오기 |
rsQuaternionLoadRotation | 회전 쿼터니언 만들기 |
rsQuaternionLoadRotationUnit | 임의의 단위 벡터에 대한 회전을 나타내는 사원수 |
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은 RenderScript 커널과 데이터를 전달하는 데 사용되는 기본 메서드입니다.
비트맵, 텍스처, 임의의 데이터 포인트 등을 저장하는 데 사용할 수 있는 구조화된 셀 모음입니다.
이 셀 모음은 다양한 차원 (X, Y, Z, Array0, Array1, Array2, Array3), 면 (큐브맵용), 세부정보 수준 (밉매핑용)을 가질 수 있습니다.
Allocation 생성에 관한 자세한 내용은 android.renderscript.Allocation을 참고하세요.
요소:
'요소'라는 용어는 RenderScript에서 약간 모호하게 사용됩니다. Allocation의 셀에 관한 유형 정보와 이 유형의 인스턴스화를 모두 의미하기 때문입니다. 예:
- rs_element는 유형 사양의 핸들입니다.
- rsGetElementAt()과 같은 함수에서 'element'는 유형의 인스턴스화(즉, Allocation의 셀)를 의미합니다.
아래 함수를 사용하면 유형 사양의 특성을 쿼리할 수 있습니다.
요소는 C에 있는 간단한 데이터 유형(예: 정수, 부동 소수점 수, 불리언)을 지정할 수 있습니다. RenderScript 객체에 핸들을 지정할 수도 있습니다. 기본 유형 목록은 rs_data_type을 참고하세요.
요소는 기본 유형의 고정 크기 벡터 (크기 2, 3 또는 4) 버전을 지정할 수 있습니다. 요소를 복잡한 요소로 함께 그룹화하여 C 구조 정의와 동등한 요소를 만들 수 있습니다.
요소에는 픽셀 데이터를 해석하는 데 사용되는 시맨틱 정보인 종류도 있을 수 있습니다. rs_data_kind를 참고하세요.
공통 요소의 Allocation을 생성할 때는 F32_2와 같은 사전 정의된 여러 요소 중 하나를 간단히 사용할 수 있습니다.
복잡한 요소를 만들려면 Element.Builder 자바 클래스를 사용합니다.
샘플러:
샘플러 객체는 Allocation을 커널 내에서 구조로 읽는 방법을 정의합니다. android.renderscript.S를 참고하세요.
함수 | |
---|---|
rsAllocationGetDimFaces | 2개 이상의 얼굴이 있는 경우 |
rsAllocationGetDimLOD | 세부정보 수준 존재 |
rsAllocationGetDimX | X 차원의 크기 |
rsAllocationGetDimY | Y 측정기준의 크기 |
rsAllocationGetDimZ | Z 차원의 크기 |
rsAllocationGetElement | Allocation의 셀을 설명하는 객체 가져오기 |
rsClearObject 드림 | 객체 해제 |
rsElementGetBytesSize | 요소의 크기 |
rsElementGetDataKind는 | 요소의 종류 |
rsElementGetDataType 열거형 | 요소의 데이터 유형 |
rsElementGetSubElement | 복잡한 요소의 하위 요소 |
rsElementGetSubElementArraySize 드림 | 복합 요소의 하위 요소 배열 크기 |
rsElementGetSubElementCount | 하위 요소의 수 |
rsElementGetSubElementName 정보 추가 | 하위 요소의 이름 |
rsElementGetSubElementNameLength | 하위 요소의 이름 길이 |
rsElementGetSubElementOffsetBytes | 인스턴스화된 하위 요소의 오프셋 |
rsElementGetVectorSize입니다. | 요소의 벡터 크기 |
rsIsObject - | 빈 핸들 확인 |
rsSamplerGetAnisotropy | 샘플러의 비등방성 |
rsSamplerGetMagnification | 샘플러 확대 값 |
rsSamplerGetMinification | 샘플러 압축 값 |
rsSamplerGetWrapS | 샘플러 래핑 S 값 |
rsSamplerGetWrapT를 사용하세요. | 샘플러 래핑 T 값 |
커널 호출 함수 및 유형
rsForeach() 함수는 스크립트의 루트 커널을 호출하는 데 사용할 수 있습니다.
다른 함수는 차원 및 현재 색인과 같은 실행 중인 커널의 호출 특성을 가져오는 데 사용됩니다. 이러한 함수는 rs_kernel_context를 인수로 사용합니다.
유형 | |
---|---|
각_전략을_위한_ ____ | 추천 셀 처리 순서 |
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 | 지정된 커널 컨텍스트에 2개 이상의 얼굴이 있음 |
rsGetDimLod | 지정된 커널 컨텍스트의 세부정보 수준 수 |
rsGetDimX | 지정된 커널 컨텍스트의 X 차원 크기입니다. |
rsGetDimY | 지정된 커널 컨텍스트의 Y 차원 크기 |
rsGetDimZ | 지정된 커널 컨텍스트의 Z 차원 크기 |
rsGetFace | 지정된 커널 컨텍스트의 얼굴 좌표 |
rsGetLod | 지정된 커널 컨텍스트에 대한 세부정보 수준 측정기준의 색인 |
입력/출력 함수
이러한 함수는 다음과 같은 용도로 사용됩니다.
- Java 클라이언트에 정보를 전송합니다.
- 처리된 할당을 전송하거나 처리할 다음 할당을 받습니다.
함수 | |
---|---|
rsAllocationIoReceived | 현재 재생목록에서 새 콘텐츠 받기 |
rsAllocationIoSend | 현재 재생목록에 새 콘텐츠 보내기 |
rsSendToClient | 클라이언트에게 메시지를 비차단형으로 보냅니다. |
rsSendToClientBlocking | 다음을 차단하는 메시지를 클라이언트에게 보냅니다. |
디버깅 함수
아래 함수는 애플리케이션 개발 중에 사용하기 위한 것입니다. 배송 애플리케이션에 사용해서는 안 됩니다.
함수 | |
---|---|
rsDebug | 메시지 및 값 기록 |
그래픽 함수 및 유형
RenderScript의 그래픽 하위 시스템은 API 수준 23에서 삭제되었습니다.