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개

유형

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비트 정수

typedef: long long이 API 수준 21 이상에서 삭제됨

typedef: long이 API 수준 21에 추가됨

부호 있는 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 행렬

다음 필드가 포함된 구조:     

부동 소수점 m[9]

3x3 부동 소수점 행렬입니다. 항목은 [row*3 + col] 위치의 배열에 저장됩니다.

매트릭스 함수를 참조하세요.

rs_행렬4x4 : 32비트 부동 소수점 수의 4x4 행렬

다음 필드가 포함된 구조:     

부동 소수점 m[16]

부동 소수점의 4x4 정사각형 행렬입니다. 항목은 [row*4 + col] 위치의 배열에 저장됩니다.

매트릭스 함수를 참조하세요.

rs_quaternion : 사원수

typedef: float4

사원수(쿼터니언)를 나타내는 4x4 부동 소수점 행렬입니다.

사원수 함수를 참조하세요.

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비트 필드로 패키징됩니다.