개요
스칼라:
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개 |
유형
char2 : 8비트 부호 있는 정수 2개
typedef: char __attribute__((ext_vector_type(2)))
문자 2개로 구성된 벡터입니다. 이 두 문자는 16비트 정렬로 단일 16비트 필드로 패킹됩니다.
char3 : 8비트 부호 있는 정수 3개
typedef: char __attribute__((ext_vector_type(3)))
문자 3개로 구성된 벡터입니다. 이 세 개의 문자는 32비트 정렬로 단일 32비트 필드로 패킹됩니다.
char4 : 8비트 부호 있는 정수 4개
typedef: char __attribute__((ext_vector_type(4)))
문자 4개로 구성된 벡터입니다. 이 4개의 문자는 32비트 정렬로 단일 32비트 필드로 패킹됩니다.
double2 : 64비트 부동 소수점 수 2개
typedef: double __attribute__((ext_vector_type(2)))
2개의 double로 구성된 벡터입니다. 이 두 개의 double 필드는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
double3 : 3개의 64비트 부동 소수점 수
typedef: double __attribute__((ext_vector_type(3)))
double이 3개인 벡터입니다. 이 3개의 double 필드는 256비트 정렬로 단일 256비트 필드로 패킹됩니다.
double4 : 64비트 부동 소수점 수 4개
typedef: double __attribute__((ext_vector_type(4)))
4개의 double로 구성된 벡터입니다. 이 4개의 double 필드는 256비트 정렬로 단일 256비트 필드로 패키징됩니다.
float2 : 32비트 부동 소수점 수 2개
typedef: float __attribute__((ext_vector_type(2)))
2개의 부동 소수점 수로 구성된 벡터입니다. 이 두 개의 부동 소수점 수는 64비트 정렬을 사용하여 단일 64비트 필드로 패키징됩니다.
2개의 부동 소수점 수로 구성된 벡터입니다. 이 두 개의 부동 소수점 수는 64비트 정렬을 사용하여 단일 64비트 필드로 패키징됩니다.
float3 : 32비트 부동 소수점 수
typedef: float __attribute__((ext_vector_type(3)))
3개의 부동 소수점으로 구성된 벡터입니다. 이 세 개의 부동 소수점 수는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
float4 : 32비트 부동 소수점 수 4개
typedef: float __attribute__((ext_vector_type(4)))
4개의 부동 소수점 수 유형으로 구성된 벡터입니다. 이 4개의 부동 소수점 수는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
절반 : 16비트 부동 소수점 값
typedef: __fp16 API 수준 23에 추가됨
16비트 부동 소수점 값입니다.
half2 : 2개의 16비트 부동 소수점 수
typedef: 절반 __attribute__((ext_vector_type(2))) API 수준 23에 추가됨
절반 부동 소수점 유형의 벡터 버전입니다. 32비트 정렬을 통해 단일 32비트 필드로 압축된 두 개의 절반 필드를 제공합니다.
half3 : 3개의 16비트 부동 소수점 수
typedef: 절반 __attribute__((ext_vector_type(3))) API 수준 23에 추가됨
절반 부동 소수점 유형의 벡터 버전입니다. 64비트 정렬로 단일 64비트 필드로 패키징된 3개의 절반 필드를 제공합니다.
half4 : 4개의 16비트 부동 소수점 수
typedef: __attribute__((ext_vector_type(4)))) API 수준 23에 추가됨
절반 부동 소수점 유형의 벡터 버전입니다. 64비트 정렬로 단일 64비트 필드로 패키징된 4개의 절반 필드를 제공합니다.
int16_t : 부호 있는 16비트 정수
유형 정의: short
부호 있는 16비트 정수 유형입니다.
int2 : 32비트 부호 있는 정수 2개
typedef의 경우 int __attribute__((ext_vector_type(2)))
두 개의 정수로 구성된 벡터입니다. 이 두 int는 64비트 정렬로 단일 64비트 필드로 패킹됩니다.
int3 : 32비트 부호 있는 정수 3개
typedef: int __attribute__((ext_vector_type(3)))
정수 3개로 구성된 벡터입니다. 이 세 개의 int는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
int32_t : 부호 있는 32비트 정수
typedef: int
부호 있는 32비트 정수 유형입니다.
int4 : 32비트 부호 있는 정수 4개
typedef: int __attribute__((ext_vector_type(4)))
4개의 정수로 구성된 벡터입니다. 이 두 개의 4는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
int64_t : 부호 있는 64비트 정수
int8_t : 부호 있는 8비트 정수
typedef: char
부호 있는 8비트 정수 유형입니다.
long2 : 2개의 64비트 부호 있는 정수
유형 정의: long __attribute__((ext_vector_type(2)))
long이 2개인 벡터입니다. 이 두 개의 long은 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
long3 : 부호 있는 64비트 정수 3개
유형 정의: long __attribute__((ext_vector_type(3)))
3개의 long으로 구성된 벡터입니다. 이 세 개의 long은 256비트 정렬로 단일 256비트 필드로 패킹됩니다.
long4 : 4개의 64비트 부호 있는 정수
유형 정의: long __attribute__((ext_vector_type(4)))
long이 4개인 벡터입니다. 이 4개의 long은 256비트 정렬로 단일 256비트 필드로 패킹됩니다.
rs_행렬2x2 : 32비트 부동 소수점 수의 2x2 행렬
다음 필드가 포함된 구조:
부동 소수점 m[4] |
---|
부동 소수점 수의 2x2 정사각형 행렬입니다. 항목은 [row*2 + col] 위치의 배열에 저장됩니다.
매트릭스 함수를 참조하세요.
rs_행렬3x3 : 32비트 부동 소수점 수의 3x3 행렬
rs_행렬4x4 : 32비트 부동 소수점 수의 4x4 행렬
다음 필드가 포함된 구조:
부동 소수점 m[16] |
---|
부동 소수점의 4x4 정사각형 행렬입니다. 항목은 [row*4 + col] 위치의 배열에 저장됩니다.
매트릭스 함수를 참조하세요.
rs_quaternion : 사원수
short2 : 2개의 16비트 부호 있는 정수
typedef: short __attribute__((ext_vector_type(2)))
두 개의 Shorts 동영상으로 구성된 벡터입니다. 이 두 Shorts 동영상은 32비트 정렬로 단일 32비트 필드로 패키징됩니다.
short3 : 3개의 16비트 부호 있는 정수
typedef: short __attribute__((ext_vector_type(3)))
3개의 Shorts 동영상으로 구성된 벡터입니다. 이 세 개의 짧은 필드는 64비트 정렬이 적용된 단일 64비트 필드로 패킹됩니다.
short4 : 4개의 16비트 부호 있는 정수
typedef: short __attribute__((ext_vector_type(4)))
4개의 Shorts 동영상으로 구성된 벡터입니다. 이 4개의 짧은 필드는 64비트 정렬이 적용된 단일 64비트 필드로 패킹됩니다.
size_t : 부호 없는 사이즈 유형
typedef: uint64_t 64비트로 컴파일하는 경우
typedef: uint32_t 32비트로 컴파일하는 경우
부호 없는 사이즈 유형입니다. 비트 수는 컴파일 플래그에 따라 다릅니다.
ssize_t : 부호 있는 사이즈 유형
typedef의 경우: int64_t 64비트로 컴파일하는 경우.
typedef의 경우: int32_t 32비트로 컴파일하는 경우.
부호 있는 크기 유형입니다. 비트 수는 컴파일 플래그에 따라 다릅니다.
uchar : 부호 없는 8비트 정수
typedef: uint8_t
부호 없는 8비트 정수 유형입니다.
uchar2 : 부호 없는 8비트 정수 2개
typedef: uchar __attribute__((ext_vector_type(2)))
2uchar의 벡터입니다. 이 두 개의 uchar 필드는 16비트 정렬로 단일 16비트 필드로 패킹됩니다.
uchar3 : 부호 없는 8비트 정수 3개
typedef: uchar __attribute__((ext_vector_type(3)))
3uchar의 벡터입니다. 이 3개의 uchar 필드는 32비트 정렬을 사용하여 단일 32비트 필드로 패킹됩니다.
uchar4 : 4비트의 부호 없는 정수
typedef: uchar __attribute__((ext_vector_type(4)))
4uchar의 벡터입니다. 이 4개의 uchar 필드는 32비트 정렬로 단일 32비트 필드로 패킹됩니다.
단위 : 부호 없는 32비트 정수
typedef: uint32_t
부호 없는 32비트 정수 유형입니다.
uint16_t : 부호 없는 16비트 정수
typedef: 부호 없는 short
부호 없는 16비트 정수 유형입니다.
uint2 : 부호 없는 32비트 정수 2개
typedef: uint __attribute__((ext_vector_type(2)))
2단위의 벡터입니다. 이 두 단위는 64비트 정렬로 단일 64비트 필드로 패키징됩니다.
uint3 : 부호 없는 32비트 정수 3개
typedef: uint __attribute__((ext_vector_type(3)))
3단위의 벡터입니다. 이 세 가지 단위는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
uint32_t : 부호 없는 32비트 정수
typedef: unsigned int
부호 없는 32비트 정수 유형입니다.
uint4 : 부호 없는 32비트 정수 4개
typedef: uint __attribute__((ext_vector_type(4)))
4단위의 벡터입니다. 이 4개의 단위는 128비트 정렬로 단일 128비트 필드로 패킹됩니다.
uint64_t : 부호 없는 64비트 정수
typedef: unsigned long long: API 수준 21 이상에서 삭제됨
typedef: unsigned long이 API 수준 21에 추가됨
부호 없는 64비트 정수 유형입니다.
uint8_t : 부호 없는 8비트 정수
유형 정의: 부호 없는 char
부호 없는 8비트 정수 유형입니다.
ulong : 부호 없는 64비트 정수
typedef의 경우 uint64_t
부호 없는 64비트 정수 유형입니다.
ulong2 : 부호 없는 64비트 정수 2개
typedef: ulong __attribute__((ext_vector_type(2)))
두 개의 울롱의 벡터입니다. 이 두 ulong은 128비트 정렬로 단일 128비트 필드로 패키징됩니다.
ulong3 : 부호 없는 64비트 정수 3개
typedef: ulong __attribute__((ext_vector_type(3)))
세 개의 울롱으로 구성된 벡터입니다. 이 3개의 ulong 필드는 256비트 정렬과 단일 256비트 필드로 패키징됩니다.
ulong4 : 부호 없는 64비트 정수 4개
typedef: ulong __attribute__((ext_vector_type(4)))
ulong 4개의 벡터입니다. 이 4개의 ulong 필드는 256비트 정렬로 단일 256비트 필드로 패키징됩니다.
ushort : 부호 없는 16비트 정수
typedef의 경우 uint16_t
부호 없는 16비트 정수 유형입니다.
ushort2 : 부호 없는 16비트 정수 2개
typedef: ushort __attribute__((ext_vector_type(2)))
두 개의 ushorts 벡터입니다. 이 두 개의 ushort 필드는 32비트 정렬을 사용하여 단일 32비트 필드로 패킹됩니다.
ushort3 : 부호 없는 16비트 정수 3개
typedef: ushort __attribute__((ext_vector_type(3)))
ushort 3개의 벡터입니다. 이 3개의 ushort 필드는 64비트 정렬을 사용하여 단일 64비트 필드로 패키징됩니다.
ushort4 : 부호 없는 16비트 정수 4개
typedef: ushort __attribute__((ext_vector_type(4)))
ushort 4개의 벡터입니다. 이 4개의 ushort 필드는 64비트 정렬로 단일 64비트 필드로 패키징됩니다.