نمای کلی
اسکالرها:
RenderScript از انواع عددی اسکالر زیر پشتیبانی می کند:
8 بیت | 16 بیت | 32 بیت | 64 بیت | |
عدد صحیح: | char، int8_t | کوتاه، int16_t | int32_t | طولانی، طولانی طولانی، int64_t |
عدد صحیح بدون علامت: | uchar، uint8_t | کوتاه، uint16_t | uint، uint32_t | ulong، uint64_t |
نقطه شناور: | نصف | شناور | دو برابر کردن |
بردارها:
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
با استفاده از شناسه ای که ترکیبی از حروف یا شاخص های متعدد است، می توان به چندین ورودی یک بردار به طور همزمان دسترسی داشت. اندازه بردار حاصل برابر با تعداد ورودی های نامگذاری شده است.
با مثال بالا، دو ورودی میانی را می توان با استفاده از 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 نام دارند. برای لیست عملیات به توابع ماتریس مراجعه کنید.
کواترنیون ها نیز از طریق rs_quaternion پشتیبانی می شوند. برای لیست عملیات به توابع Quaterion مراجعه کنید.
خلاصه
انواع | |
---|---|
char2 | دو عدد صحیح امضا شده 8 بیتی |
char3 | سه عدد صحیح امضا شده 8 بیتی |
char4 | چهار عدد صحیح امضا شده 8 بیتی |
double2 | دو شناور 64 بیتی |
double3 | سه شناور 64 بیتی |
دوبل4 | چهار شناور 64 بیتی |
شناور2 | دو شناور 32 بیتی |
float3 | سه شناور 32 بیتی |
شناور4 | چهار شناور 32 بیتی |
نصف | مقدار ممیز شناور 16 بیتی |
نیمه2 | دو شناور 16 بیتی |
نیمه 3 | سه شناور 16 بیتی |
نیمه 4 | چهار شناور 16 بیتی |
int16_t | عدد صحیح امضا شده 16 بیتی |
int2 | دو عدد صحیح امضا شده 32 بیتی |
int3 | سه عدد صحیح امضا شده 32 بیتی |
int32_t | عدد صحیح امضا شده 32 بیتی |
int4 | چهار عدد صحیح امضا شده 32 بیتی |
int64_t | عدد صحیح امضا شده 64 بیتی |
int8_t | عدد صحیح امضا شده 8 بیتی |
طولانی 2 | دو عدد صحیح امضا شده 64 بیتی |
طولانی3 | سه عدد صحیح امضا شده 64 بیتی |
طولانی4 | چهار عدد صحیح امضا شده 64 بیتی |
rs_matrix2x2 | ماتریس 2x2 32 بیتی شناور است |
rs_matrix3x3 | ماتریس 3x3 32 بیتی شناور است |
rs_matrix4x4 | ماتریس 4x4 32 بیتی شناور است |
rs_quaternion | کواترنیون |
کوتاه 2 | دو عدد صحیح امضا شده 16 بیتی |
کوتاه 3 | سه عدد صحیح امضا شده 16 بیتی |
کوتاه 4 | چهار عدد صحیح امضا شده 16 بیتی |
اندازه_t | نوع اندازه بدون علامت |
ssize_t | نوع سایز امضا شده |
uchar | عدد صحیح بدون علامت 8 بیتی |
uchar2 | دو عدد صحیح بدون علامت 8 بیتی |
uchar3 | سه عدد صحیح بدون علامت 8 بیتی |
uchar4 | چهار عدد صحیح بدون علامت 8 بیتی |
unint | عدد صحیح بدون علامت 32 بیتی |
uint16_t | عدد صحیح بدون علامت 16 بیتی |
uint2 | دو عدد صحیح بدون علامت 32 بیتی |
uint3 | سه عدد صحیح بدون علامت 32 بیتی |
uint32_t | عدد صحیح بدون علامت 32 بیتی |
uint4 | چهار عدد صحیح بدون علامت 32 بیتی |
uint64_t | عدد صحیح بدون علامت 64 بیتی |
uint8_t | عدد صحیح بدون علامت 8 بیتی |
طولانی | عدد صحیح بدون علامت 64 بیتی |
ulong2 | دو عدد صحیح بدون علامت 64 بیتی |
ulong3 | سه عدد صحیح بدون علامت 64 بیتی |
ulong4 | چهار عدد صحیح بدون علامت 64 بیتی |
کوتاه | عدد صحیح بدون علامت 16 بیتی |
کوتاه 2 | دو عدد صحیح بدون علامت 16 بیتی |
کوتاه 3 | سه عدد صحیح بدون علامت 16 بیتی |
کوتاه 4 | چهار عدد صحیح بدون علامت 16 بیتی |
انواع
char2 : دو عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(2)))
بردار دو کاراکتر. این دو کاراکتر در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
char3 : سه عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(3)))
وکتوری از سه کاراکتر. این سه کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
char4 : چهار عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(4)))
بردار چهار کاراکتری. این چهار کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
double2 : دو شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(2)))
بردار دو ضلعی. این دو فیلد دوتایی در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
double3 : سه شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(3)))
بردار سه ضلعی. این سه فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
double4 : چهار شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(4)))
بردار چهار دوبل. این چهار فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
float2 : دو شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(2)))
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
float3 : سه شناور 32 بیتی
یک نوع از: float __خصیصه__((ext_vector_type(3)))
بردار سه شناور. این سه شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
float4 : چهار شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(4)))
بردار از نوع چهار شناور. این چهار شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
نیم : مقدار ممیز شناور 16 بیتی
یک typedef از: __fp16 در سطح API 23 اضافه شده است
یک مقدار ممیز شناور 16 بیتی.
half2 : دو شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(2))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. دو نیم فیلد را در یک فیلد 32 بیتی با تراز 32 بیتی ارائه می دهد.
half3 : سه شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(3))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. سه نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
half4 : چهار شناور 16 بیتی
یک typedef از: half __attribute__((ext_vector_type(4))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. چهار نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
int16_t : عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه
یک نوع عدد صحیح امضا شده 16 بیتی.
int2 : دو عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(2)))
بردار دو اینت. این دو اینت در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
int3 : سه عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(3)))
بردار سه اینت. این سه اینت در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int32_t : عدد صحیح امضا شده 32 بیتی
یک نوع از: int
یک نوع عدد صحیح امضا شده 32 بیتی.
int4 : چهار عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(4)))
بردار چهار اینت. این دو چهار در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int64_t : عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی طولانی حذف شده از سطح API 21 و بالاتر
یک نوع از: طولانی در سطح API 21 اضافه شده است
یک نوع عدد صحیح امضا شده 64 بیتی.
int8_t : عدد صحیح امضا شده 8 بیتی
یک نوع از: char
نوع عدد صحیح 8 بیتی
long2 : دو عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(2)))
بردار دو طول. این دو Long در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
long3 : سه عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(3)))
بردار سه طول. این سه Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
long4 : چهار عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(4)))
بردار چهار طول. این چهار Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
rs_matrix2x2 : ماتریس 2x2 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[4] |
---|
یک ماتریس مربع 2x2 از شناورها. ورودی ها در آرایه در مکان [ردیف*2 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix3x3 : ماتریس 3x3 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[9] |
---|
یک ماتریس مربع 3x3 از شناورها. ورودی ها در آرایه در مکان [ردیف*3 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix4x4 : ماتریس 4x4 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[16] |
---|
یک ماتریس مربع 4x4 از شناورها. ورودی ها در آرایه در مکان [ردیف*4 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_quaternion : کواترنیون
یک نوع از: float4
یک ماتریس مربع 4x4 از شناورها که یک کواترنیون را نشان می دهد.
توابع کواترنیون را ببینید.
short2 : دو عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(2)))
وکتور دو شورت. این دو شورت در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
short3 : سه عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(3)))
وکتور سه شورت. این سه فیلد کوتاه در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
short4 : چهار عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(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 بیتی
یک نوع از: uint8_t
نوع عدد صحیح بدون علامت 8 بیتی.
uchar2 : دو عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(2)))
بردار دو اوچار. این دو فیلد uchar در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
uchar3 : سه عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __خصیصه__((ext_vector_type(3)))
بردار سه اوچار. این سه فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uchar4 : چهار عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(4)))
بردار چهار اوچار. این چهار فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uint : عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint32_t
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint16_t : عدد صحیح بدون علامت 16 بیتی
یک نوع از: کوتاه بدون امضا
یک نوع عدد صحیح بدون علامت 16 بیتی.
uint2 : دو عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(2)))
بردار دو واحدی. این دو واحد در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
uint3 : سه عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(3)))
بردار سه واحدی. این سه واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint32_t : عدد صحیح بدون علامت 32 بیتی
یک تایپ از: بدون علامت int
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint4 : چهار عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(4)))
بردار چهار واحدی. این چهار واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint64_t : عدد صحیح بدون علامت 64 بیتی
یک تایپ از: طولانی بدون امضا از سطح API 21 و بالاتر حذف شده است
یک تایپ از: بدون علامت طولانی در سطح 21 API اضافه شده است
یک نوع عدد صحیح بدون علامت 64 بیتی.
uint8_t : عدد صحیح بدون علامت 8 بیتی
یک نوع از: کاراکتر بدون علامت
نوع عدد صحیح بدون علامت 8 بیتی.
ulong : عدد صحیح بدون علامت 64 بیتی
یک نوع از: uint64_t
یک نوع عدد صحیح بدون علامت 64 بیتی.
ulong2 : دو عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(2)))
بردار دو اولانگ. این دو ulong در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
ulong3 : سه عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(3)))
بردار سه اولانگ. این سه فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ulong4 : چهار عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(4)))
بردار چهار اولانگ. این چهار فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ushort : عدد صحیح بدون علامت 16 بیتی
یک نوع از: uint16_t
یک نوع عدد صحیح بدون علامت 16 بیتی.
ushort2 : دو عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(2)))
بردار دو شورت. این دو فیلد کوتاه در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
ushort3 : سه عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(3)))
بردار سه شورت. این سه فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
ushort4 : چهار عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(4)))
وکتوری از چهار شورت. این چهار فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
نمای کلی
اسکالرها:
RenderScript از انواع عددی اسکالر زیر پشتیبانی می کند:
8 بیت | 16 بیت | 32 بیت | 64 بیت | |
عدد صحیح: | char، int8_t | کوتاه، int16_t | int32_t | طولانی، طولانی طولانی، int64_t |
عدد صحیح بدون علامت: | uchar، uint8_t | کوتاه، uint16_t | uint، uint32_t | ulong، uint64_t |
نقطه شناور: | نصف | شناور | دو برابر کردن |
بردارها:
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
با استفاده از شناسه ای که ترکیبی از حروف یا شاخص های متعدد است، می توان به چندین ورودی یک بردار به طور همزمان دسترسی داشت. اندازه بردار حاصل برابر با تعداد ورودی های نامگذاری شده است.
با مثال بالا، دو ورودی میانی را می توان با استفاده از 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 نام دارند. برای لیست عملیات به توابع ماتریس مراجعه کنید.
کواترنیون ها نیز از طریق rs_quaternion پشتیبانی می شوند. برای لیست عملیات به توابع Quaterion مراجعه کنید.
خلاصه
انواع | |
---|---|
char2 | دو عدد صحیح امضا شده 8 بیتی |
char3 | سه عدد صحیح امضا شده 8 بیتی |
char4 | چهار عدد صحیح امضا شده 8 بیتی |
double2 | دو شناور 64 بیتی |
double3 | سه شناور 64 بیتی |
دوبل4 | چهار شناور 64 بیتی |
شناور2 | دو شناور 32 بیتی |
float3 | سه شناور 32 بیتی |
شناور4 | چهار شناور 32 بیتی |
نصف | مقدار ممیز شناور 16 بیتی |
نیمه2 | دو شناور 16 بیتی |
نیمه 3 | سه شناور 16 بیتی |
نیمه 4 | چهار شناور 16 بیتی |
int16_t | عدد صحیح امضا شده 16 بیتی |
int2 | دو عدد صحیح امضا شده 32 بیتی |
int3 | سه عدد صحیح امضا شده 32 بیتی |
int32_t | عدد صحیح امضا شده 32 بیتی |
int4 | چهار عدد صحیح امضا شده 32 بیتی |
int64_t | عدد صحیح امضا شده 64 بیتی |
int8_t | عدد صحیح امضا شده 8 بیتی |
طولانی 2 | دو عدد صحیح امضا شده 64 بیتی |
طولانی3 | سه عدد صحیح امضا شده 64 بیتی |
طولانی4 | چهار عدد صحیح امضا شده 64 بیتی |
rs_matrix2x2 | ماتریس 2x2 32 بیتی شناور است |
rs_matrix3x3 | ماتریس 3x3 32 بیتی شناور است |
rs_matrix4x4 | ماتریس 4x4 32 بیتی شناور است |
rs_quaternion | کواترنیون |
کوتاه 2 | دو عدد صحیح امضا شده 16 بیتی |
کوتاه 3 | سه عدد صحیح امضا شده 16 بیتی |
کوتاه 4 | چهار عدد صحیح امضا شده 16 بیتی |
اندازه_t | نوع اندازه بدون علامت |
ssize_t | نوع سایز امضا شده |
uchar | عدد صحیح بدون علامت 8 بیتی |
uchar2 | دو عدد صحیح بدون علامت 8 بیتی |
uchar3 | سه عدد صحیح بدون علامت 8 بیتی |
uchar4 | چهار عدد صحیح بدون علامت 8 بیتی |
unint | عدد صحیح بدون علامت 32 بیتی |
uint16_t | عدد صحیح بدون علامت 16 بیتی |
uint2 | دو عدد صحیح بدون علامت 32 بیتی |
uint3 | سه عدد صحیح بدون علامت 32 بیتی |
uint32_t | عدد صحیح بدون علامت 32 بیتی |
uint4 | چهار عدد صحیح بدون علامت 32 بیتی |
uint64_t | عدد صحیح بدون علامت 64 بیتی |
uint8_t | عدد صحیح بدون علامت 8 بیتی |
طولانی | عدد صحیح بدون علامت 64 بیتی |
ulong2 | دو عدد صحیح بدون علامت 64 بیتی |
ulong3 | سه عدد صحیح بدون علامت 64 بیتی |
ulong4 | چهار عدد صحیح بدون علامت 64 بیتی |
کوتاه | عدد صحیح بدون علامت 16 بیتی |
کوتاه 2 | دو عدد صحیح بدون علامت 16 بیتی |
کوتاه 3 | سه عدد صحیح بدون علامت 16 بیتی |
کوتاه 4 | چهار عدد صحیح بدون علامت 16 بیتی |
انواع
char2 : دو عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(2)))
بردار دو کاراکتر. این دو کاراکتر در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
char3 : سه عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(3)))
وکتوری از سه کاراکتر. این سه کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
char4 : چهار عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(4)))
بردار چهار کاراکتری. این چهار کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
double2 : دو شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(2)))
بردار دو ضلعی. این دو فیلد دوتایی در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
double3 : سه شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(3)))
بردار سه ضلعی. این سه فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
double4 : چهار شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(4)))
بردار چهار دوبل. این چهار فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
float2 : دو شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(2)))
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
float3 : سه شناور 32 بیتی
یک نوع از: float __خصیصه__((ext_vector_type(3)))
بردار سه شناور. این سه شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
float4 : چهار شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(4)))
بردار از نوع چهار شناور. این چهار شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
نیم : مقدار ممیز شناور 16 بیتی
یک typedef از: __fp16 در سطح API 23 اضافه شده است
یک مقدار ممیز شناور 16 بیتی.
half2 : دو شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(2))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. دو نیم فیلد را در یک فیلد 32 بیتی با تراز 32 بیتی ارائه می دهد.
half3 : سه شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(3))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. سه نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
half4 : چهار شناور 16 بیتی
یک typedef از: half __attribute__((ext_vector_type(4))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. چهار نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
int16_t : عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه
یک نوع عدد صحیح امضا شده 16 بیتی.
int2 : دو عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(2)))
بردار دو اینت. این دو اینت در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
int3 : سه عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(3)))
بردار سه اینت. این سه اینت در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int32_t : عدد صحیح امضا شده 32 بیتی
یک نوع از: int
یک نوع عدد صحیح امضا شده 32 بیتی.
int4 : چهار عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(4)))
بردار چهار اینت. این دو چهار در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int64_t : عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی طولانی حذف شده از سطح API 21 و بالاتر
یک نوع از: طولانی در سطح API 21 اضافه شده است
یک نوع عدد صحیح امضا شده 64 بیتی.
int8_t : عدد صحیح امضا شده 8 بیتی
یک نوع از: char
نوع عدد صحیح 8 بیتی
long2 : دو عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(2)))
بردار دو طول. این دو Long در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
long3 : سه عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(3)))
بردار سه طول. این سه Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
long4 : چهار عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(4)))
بردار چهار طول. این چهار Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
rs_matrix2x2 : ماتریس 2x2 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[4] |
---|
یک ماتریس مربع 2x2 از شناورها. ورودی ها در آرایه در مکان [ردیف*2 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix3x3 : ماتریس 3x3 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[9] |
---|
یک ماتریس مربع 3x3 از شناورها. ورودی ها در آرایه در مکان [ردیف*3 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix4x4 : ماتریس 4x4 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[16] |
---|
یک ماتریس مربع 4x4 از شناورها. ورودی ها در آرایه در مکان [ردیف*4 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_quaternion : کواترنیون
یک نوع از: float4
یک ماتریس مربع 4x4 از شناورها که یک کواترنیون را نشان می دهد.
توابع کواترنیون را ببینید.
short2 : دو عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(2)))
وکتور دو شورت. این دو شورت در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
short3 : سه عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(3)))
وکتور سه شورت. این سه فیلد کوتاه در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
short4 : چهار عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(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 بیتی
یک نوع از: uint8_t
نوع عدد صحیح بدون علامت 8 بیتی.
uchar2 : دو عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(2)))
بردار دو اوچار. این دو فیلد uchar در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
uchar3 : سه عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __خصیصه__((ext_vector_type(3)))
بردار سه اوچار. این سه فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uchar4 : چهار عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(4)))
بردار چهار اوچار. این چهار فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uint : عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint32_t
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint16_t : عدد صحیح بدون علامت 16 بیتی
یک نوع از: کوتاه بدون امضا
یک نوع عدد صحیح بدون علامت 16 بیتی.
uint2 : دو عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(2)))
بردار دو واحدی. این دو واحد در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
uint3 : سه عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(3)))
بردار سه واحدی. این سه واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint32_t : عدد صحیح بدون علامت 32 بیتی
یک تایپ از: بدون علامت int
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint4 : چهار عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(4)))
بردار چهار واحدی. این چهار واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint64_t : عدد صحیح بدون علامت 64 بیتی
یک تایپ از: طولانی بدون امضا از سطح API 21 و بالاتر حذف شده است
یک تایپ از: بدون علامت طولانی در سطح 21 API اضافه شده است
یک نوع عدد صحیح بدون علامت 64 بیتی.
uint8_t : عدد صحیح بدون علامت 8 بیتی
یک نوع از: کاراکتر بدون علامت
نوع عدد صحیح بدون علامت 8 بیتی.
ulong : عدد صحیح بدون علامت 64 بیتی
یک نوع از: uint64_t
یک نوع عدد صحیح بدون علامت 64 بیتی.
ulong2 : دو عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(2)))
بردار دو اولانگ. این دو ulong در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
ulong3 : سه عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(3)))
بردار سه اولانگ. این سه فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ulong4 : چهار عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(4)))
بردار چهار اولانگ. این چهار فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ushort : عدد صحیح بدون علامت 16 بیتی
یک نوع از: uint16_t
یک نوع عدد صحیح بدون علامت 16 بیتی.
ushort2 : دو عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(2)))
بردار دو شورت. این دو فیلد کوتاه در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
ushort3 : سه عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(3)))
بردار سه شورت. این سه فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
ushort4 : چهار عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(4)))
وکتوری از چهار شورت. این چهار فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
نمای کلی
اسکالرها:
RenderScript از انواع عددی اسکالر زیر پشتیبانی می کند:
8 بیت | 16 بیت | 32 بیت | 64 بیت | |
عدد صحیح: | char، int8_t | کوتاه، int16_t | int32_t | طولانی، طولانی طولانی، int64_t |
عدد صحیح بدون علامت: | uchar، uint8_t | کوتاه، uint16_t | uint، uint32_t | ulong، uint64_t |
نقطه شناور: | نصف | شناور | دو برابر کردن |
بردارها:
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
با استفاده از شناسه ای که ترکیبی از حروف یا شاخص های متعدد است، می توان به چندین ورودی یک بردار به طور همزمان دسترسی داشت. اندازه بردار حاصل برابر با تعداد ورودی های نامگذاری شده است.
با مثال بالا، دو ورودی میانی را می توان با استفاده از 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 نام دارند. برای لیست عملیات به توابع ماتریس مراجعه کنید.
کواترنیون ها نیز از طریق rs_quaternion پشتیبانی می شوند. برای لیست عملیات به توابع Quaterion مراجعه کنید.
خلاصه
انواع | |
---|---|
char2 | دو عدد صحیح امضا شده 8 بیتی |
char3 | سه عدد صحیح امضا شده 8 بیتی |
char4 | چهار عدد صحیح امضا شده 8 بیتی |
double2 | دو شناور 64 بیتی |
double3 | سه شناور 64 بیتی |
دوبل4 | چهار شناور 64 بیتی |
شناور2 | دو شناور 32 بیتی |
float3 | سه شناور 32 بیتی |
شناور4 | چهار شناور 32 بیتی |
نصف | مقدار ممیز شناور 16 بیتی |
نیمه2 | دو شناور 16 بیتی |
نیمه 3 | سه شناور 16 بیتی |
نیمه 4 | چهار شناور 16 بیتی |
int16_t | عدد صحیح امضا شده 16 بیتی |
int2 | دو عدد صحیح امضا شده 32 بیتی |
int3 | سه عدد صحیح امضا شده 32 بیتی |
int32_t | عدد صحیح امضا شده 32 بیتی |
int4 | چهار عدد صحیح امضا شده 32 بیتی |
int64_t | عدد صحیح امضا شده 64 بیتی |
int8_t | عدد صحیح امضا شده 8 بیتی |
طولانی 2 | دو عدد صحیح امضا شده 64 بیتی |
طولانی3 | سه عدد صحیح امضا شده 64 بیتی |
طولانی4 | چهار عدد صحیح امضا شده 64 بیتی |
rs_matrix2x2 | ماتریس 2x2 32 بیتی شناور است |
rs_matrix3x3 | ماتریس 3x3 32 بیتی شناور است |
rs_matrix4x4 | ماتریس 4x4 32 بیتی شناور است |
rs_quaternion | کواترنیون |
کوتاه 2 | دو عدد صحیح امضا شده 16 بیتی |
کوتاه 3 | سه عدد صحیح امضا شده 16 بیتی |
کوتاه 4 | چهار عدد صحیح امضا شده 16 بیتی |
اندازه_t | نوع اندازه بدون علامت |
ssize_t | نوع سایز امضا شده |
uchar | عدد صحیح بدون علامت 8 بیتی |
uchar2 | دو عدد صحیح بدون علامت 8 بیتی |
uchar3 | سه عدد صحیح بدون علامت 8 بیتی |
uchar4 | چهار عدد صحیح بدون علامت 8 بیتی |
unint | عدد صحیح بدون علامت 32 بیتی |
uint16_t | عدد صحیح بدون علامت 16 بیتی |
uint2 | دو عدد صحیح بدون علامت 32 بیتی |
uint3 | سه عدد صحیح بدون علامت 32 بیتی |
uint32_t | عدد صحیح بدون علامت 32 بیتی |
uint4 | چهار عدد صحیح بدون علامت 32 بیتی |
uint64_t | عدد صحیح بدون علامت 64 بیتی |
uint8_t | عدد صحیح بدون علامت 8 بیتی |
طولانی | عدد صحیح بدون علامت 64 بیتی |
ulong2 | دو عدد صحیح بدون علامت 64 بیتی |
ulong3 | سه عدد صحیح بدون علامت 64 بیتی |
ulong4 | چهار عدد صحیح بدون علامت 64 بیتی |
کوتاه | عدد صحیح بدون علامت 16 بیتی |
کوتاه 2 | دو عدد صحیح بدون علامت 16 بیتی |
کوتاه 3 | سه عدد صحیح بدون علامت 16 بیتی |
کوتاه 4 | چهار عدد صحیح بدون علامت 16 بیتی |
انواع
char2 : دو عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(2)))
بردار دو کاراکتر. این دو کاراکتر در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
char3 : سه عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(3)))
وکتوری از سه کاراکتر. این سه کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
char4 : چهار عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(4)))
بردار چهار کاراکتری. این چهار کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
double2 : دو شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(2)))
بردار دو ضلعی. این دو فیلد دوتایی در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
double3 : سه شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(3)))
بردار سه ضلعی. این سه فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
double4 : چهار شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(4)))
بردار چهار دوبل. این چهار فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
float2 : دو شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(2)))
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
float3 : سه شناور 32 بیتی
یک نوع از: float __خصیصه__((ext_vector_type(3)))
بردار سه شناور. این سه شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
float4 : چهار شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(4)))
بردار از نوع چهار شناور. این چهار شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
نیم : مقدار ممیز شناور 16 بیتی
یک typedef از: __fp16 در سطح API 23 اضافه شده است
یک مقدار ممیز شناور 16 بیتی.
half2 : دو شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(2))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. دو نیم فیلد را در یک فیلد 32 بیتی با تراز 32 بیتی ارائه می دهد.
half3 : سه شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(3))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. سه نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
half4 : چهار شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(4))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. چهار نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
int16_t : عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه
یک نوع عدد صحیح امضا شده 16 بیتی.
int2 : دو عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(2)))
بردار دو اینت. این دو اینت در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
int3 : سه عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(3)))
بردار سه اینت. این سه اینت در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int32_t : عدد صحیح امضا شده 32 بیتی
یک نوع از: int
یک نوع عدد صحیح امضا شده 32 بیتی.
int4 : چهار عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(4)))
بردار چهار اینت. این دو چهار در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
int64_t : عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی طولانی حذف شده از سطح API 21 و بالاتر
یک نوع از: طولانی در سطح API 21 اضافه شده است
یک نوع عدد صحیح امضا شده 64 بیتی.
int8_t : عدد صحیح امضا شده 8 بیتی
یک نوع از: char
نوع عدد صحیح 8 بیتی
long2 : دو عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(2)))
بردار دو طول. این دو Long در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
long3 : سه عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(3)))
بردار سه طول. این سه Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
long4 : چهار عدد صحیح امضا شده 64 بیتی
یک نوع از: طولانی __ویژگی__((ext_vector_type(4)))
بردار چهار طول. این چهار Long در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
rs_matrix2x2 : ماتریس 2x2 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[4] |
---|
یک ماتریس مربع 2x2 از شناورها. ورودی ها در آرایه در مکان [ردیف*2 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix3x3 : ماتریس 3x3 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[9] |
---|
یک ماتریس مربع 3x3 از شناورها. ورودی ها در آرایه در مکان [ردیف*3 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_matrix4x4 : ماتریس 4x4 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
شناور متر[16] |
---|
یک ماتریس مربع 4x4 از شناورها. ورودی ها در آرایه در مکان [ردیف*4 + col] ذخیره می شوند.
توابع ماتریس را ببینید.
rs_quaternion : کواترنیون
یک نوع از: float4
یک ماتریس مربع 4x4 از شناورها که یک کواترنیون را نشان می دهد.
توابع کواترنیون را ببینید.
short2 : دو عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(2)))
وکتور دو شورت. این دو شورت در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
short3 : سه عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(3)))
وکتور سه شورت. این سه فیلد کوتاه در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
short4 : چهار عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه __ویژگی__((ext_vector_type(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 بیتی
یک نوع از: uint8_t
نوع عدد صحیح بدون علامت 8 بیتی.
uchar2 : دو عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(2)))
بردار دو اوچار. این دو فیلد uchar در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
uchar3 : سه عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __خصیصه__((ext_vector_type(3)))
بردار سه اوچار. این سه فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uchar4 : چهار عدد صحیح بدون علامت 8 بیتی
یک نوع از: uchar __ویژگی__((ext_vector_type(4)))
بردار چهار اوچار. این چهار فیلد uchar در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
uint : عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint32_t
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint16_t : عدد صحیح بدون علامت 16 بیتی
یک نوع از: کوتاه بدون امضا
یک نوع عدد صحیح بدون علامت 16 بیتی.
uint2 : دو عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(2)))
بردار دو واحدی. این دو واحد در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
uint3 : سه عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(3)))
بردار سه واحدی. این سه واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint32_t : عدد صحیح بدون علامت 32 بیتی
یک تایپ از: بدون علامت int
یک نوع عدد صحیح بدون علامت 32 بیتی.
uint4 : چهار عدد صحیح بدون علامت 32 بیتی
یک نوع از: uint __خصیصه__((ext_vector_type(4)))
بردار چهار واحدی. این چهار واحد در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
uint64_t : عدد صحیح بدون علامت 64 بیتی
یک تایپ از: طولانی بدون امضا از سطح API 21 و بالاتر حذف شده است
یک تایپ از: بدون علامت طولانی در سطح 21 API اضافه شده است
یک نوع عدد صحیح بدون علامت 64 بیتی.
uint8_t : عدد صحیح بدون علامت 8 بیتی
یک نوع از: کاراکتر بدون علامت
نوع عدد صحیح بدون علامت 8 بیتی.
ulong : عدد صحیح بدون علامت 64 بیتی
یک نوع از: uint64_t
یک نوع عدد صحیح بدون علامت 64 بیتی.
ulong2 : دو عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(2)))
بردار دو اولانگ. این دو ulong در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
ulong3 : سه عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(3)))
بردار سه اولانگ. این سه فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ulong4 : چهار عدد صحیح بدون علامت 64 بیتی
یک نوع از: ulong __ویژگی__((ext_vector_type(4)))
بردار چهار اولانگ. این چهار فیلد طولانی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
ushort : عدد صحیح بدون علامت 16 بیتی
یک نوع از: uint16_t
یک نوع عدد صحیح بدون علامت 16 بیتی.
ushort2 : دو عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(2)))
بردار دو شورت. این دو فیلد کوتاه در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
ushort3 : سه عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(3)))
بردار سه شورت. این سه فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
ushort4 : چهار عدد صحیح بدون علامت 16 بیتی
یک نوع از: ushort __خصیصه__((ext_vector_type(4)))
وکتوری از چهار شورت. این چهار فیلد ushort در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
نمای کلی
اسکالرها:
RenderScript از انواع عددی اسکالر زیر پشتیبانی می کند:
8 بیت | 16 بیت | 32 بیت | 64 بیت | |
عدد صحیح: | char، int8_t | کوتاه، int16_t | int32_t | طولانی، طولانی طولانی، int64_t |
عدد صحیح بدون علامت: | uchar، uint8_t | کوتاه، uint16_t | uint، uint32_t | ulong، uint64_t |
نقطه شناور: | نصف | شناور | دو برابر کردن |
بردارها:
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
با استفاده از شناسه ای که ترکیبی از حروف یا شاخص های متعدد است، می توان به چندین ورودی یک بردار به طور همزمان دسترسی داشت. اندازه بردار حاصل برابر با تعداد ورودی های نامگذاری شده است.
با مثال بالا، دو ورودی میانی را می توان با استفاده از 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 نام دارند. برای لیست عملیات به توابع ماتریس مراجعه کنید.
کواترنیون ها نیز از طریق rs_quaternion پشتیبانی می شوند. برای لیست عملیات به توابع Quaterion مراجعه کنید.
خلاصه
انواع | |
---|---|
char2 | دو عدد صحیح امضا شده 8 بیتی |
char3 | سه عدد صحیح امضا شده 8 بیتی |
char4 | چهار عدد صحیح امضا شده 8 بیتی |
double2 | دو شناور 64 بیتی |
double3 | سه شناور 64 بیتی |
دوبل4 | چهار شناور 64 بیتی |
شناور2 | دو شناور 32 بیتی |
float3 | سه شناور 32 بیتی |
شناور4 | چهار شناور 32 بیتی |
نصف | مقدار ممیز شناور 16 بیتی |
نیمه2 | دو شناور 16 بیتی |
نیمه 3 | سه شناور 16 بیتی |
نیمه 4 | چهار شناور 16 بیتی |
int16_t | عدد صحیح امضا شده 16 بیتی |
int2 | دو عدد صحیح امضا شده 32 بیتی |
int3 | سه عدد صحیح امضا شده 32 بیتی |
int32_t | عدد صحیح امضا شده 32 بیتی |
int4 | چهار عدد صحیح امضا شده 32 بیتی |
int64_t | عدد صحیح امضا شده 64 بیتی |
int8_t | عدد صحیح امضا شده 8 بیتی |
طولانی 2 | دو عدد صحیح امضا شده 64 بیتی |
طولانی3 | سه عدد صحیح امضا شده 64 بیتی |
طولانی4 | چهار عدد صحیح امضا شده 64 بیتی |
rs_matrix2x2 | ماتریس 2x2 32 بیتی شناور است |
rs_matrix3x3 | ماتریس 3x3 32 بیتی شناور است |
rs_matrix4x4 | ماتریس 4x4 32 بیتی شناور است |
rs_quaternion | کواترنیون |
کوتاه 2 | دو عدد صحیح امضا شده 16 بیتی |
کوتاه 3 | سه عدد صحیح امضا شده 16 بیتی |
کوتاه 4 | چهار عدد صحیح امضا شده 16 بیتی |
اندازه_t | نوع اندازه بدون علامت |
ssize_t | نوع سایز امضا شده |
uchar | عدد صحیح بدون علامت 8 بیتی |
uchar2 | دو عدد صحیح بدون علامت 8 بیتی |
uchar3 | سه عدد صحیح بدون علامت 8 بیتی |
uchar4 | چهار عدد صحیح بدون علامت 8 بیتی |
unint | عدد صحیح بدون علامت 32 بیتی |
uint16_t | عدد صحیح بدون علامت 16 بیتی |
uint2 | دو عدد صحیح بدون علامت 32 بیتی |
uint3 | سه عدد صحیح بدون علامت 32 بیتی |
uint32_t | عدد صحیح بدون علامت 32 بیتی |
uint4 | چهار عدد صحیح بدون علامت 32 بیتی |
uint64_t | عدد صحیح بدون علامت 64 بیتی |
uint8_t | عدد صحیح بدون علامت 8 بیتی |
طولانی | عدد صحیح بدون علامت 64 بیتی |
ulong2 | دو عدد صحیح بدون علامت 64 بیتی |
ulong3 | سه عدد صحیح بدون علامت 64 بیتی |
ulong4 | چهار عدد صحیح بدون علامت 64 بیتی |
کوتاه | عدد صحیح بدون علامت 16 بیتی |
کوتاه 2 | دو عدد صحیح بدون علامت 16 بیتی |
کوتاه 3 | سه عدد صحیح بدون علامت 16 بیتی |
کوتاه 4 | چهار عدد صحیح بدون علامت 16 بیتی |
انواع
char2 : دو عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(2)))
بردار دو کاراکتر. این دو کاراکتر در یک فیلد 16 بیتی با تراز 16 بیتی بسته بندی می شوند.
char3 : سه عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(3)))
وکتوری از سه کاراکتر. این سه کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
char4 : چهار عدد صحیح امضا شده 8 بیتی
یک نوع از: char __ویژگی__((ext_vector_type(4)))
بردار چهار کاراکتری. این چهار کاراکتر در یک فیلد 32 بیتی با تراز 32 بیتی بسته بندی می شوند.
double2 : دو شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(2)))
بردار دو ضلعی. این دو فیلد دوتایی در یک فیلد 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
double3 : سه شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(3)))
بردار سه ضلعی. این سه فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
double4 : چهار شناور 64 بیتی
یک typedef از: double __خصیصه__((ext_vector_type(4)))
بردار چهار دوبل. این چهار فیلد دوتایی در یک فیلد 256 بیتی با تراز 256 بیتی بسته بندی می شوند.
float2 : دو شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(2)))
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
بردار دو شناور. این دو شناور در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
float3 : سه شناور 32 بیتی
یک نوع از: float __خصیصه__((ext_vector_type(3)))
بردار سه شناور. این سه شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
float4 : چهار شناور 32 بیتی
یک نوع از: float __ویژگی__((ext_vector_type(4)))
بردار از نوع چهار شناور. این چهار شناور در یک میدان 128 بیتی با تراز 128 بیتی بسته بندی می شوند.
نیم : مقدار ممیز شناور 16 بیتی
یک typedef از: __fp16 در سطح API 23 اضافه شده است
یک مقدار ممیز شناور 16 بیتی.
half2 : دو شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(2))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. دو نیم فیلد را در یک فیلد 32 بیتی با تراز 32 بیتی ارائه می دهد.
half3 : سه شناور 16 بیتی
یک نوع تعریف از: half __attribute__((ext_vector_type(3))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. سه نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
half4 : چهار شناور 16 بیتی
یک typedef از: half __attribute__((ext_vector_type(4))) در سطح API 23 اضافه شد
نسخه برداری از نوع نیمه شناور. چهار نیم فیلد را در یک فیلد 64 بیتی با تراز 64 بیتی ارائه می دهد.
int16_t : عدد صحیح امضا شده 16 بیتی
یک نوع از: کوتاه
یک نوع عدد صحیح امضا شده 16 بیتی.
int2 : دو عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(2)))
بردار دو اینت. این دو اینت در یک فیلد 64 بیتی با تراز 64 بیتی بسته بندی می شوند.
int3 : سه عدد صحیح امضا شده 32 بیتی
یک نوع از: int __ویژگی__((ext_vector_type(3)))
بردار سه اینت. این سه INT در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
int32_t : 32 بیت عدد صحیح امضا شده
یک تایپ از: int
یک نوع عدد صحیح 32 بیتی امضا شده.
int4 : چهار عدد صحیح 32 بیتی امضا شده
یک تایپ از: int __attribute __ ((ext_vector_type (4)))
یک بردار از چهار ints. این دو چهار در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
int64_t : 64 بیت عدد صحیح امضا شده
یک تایپ از: طولانی مدت طولانی از API سطح 21 و بالاتر
Typedef از: طولانی اضافه شده در سطح API 21
نوع عدد صحیح 64 بیتی امضا شده.
Int8_T : 8 بیت عدد صحیح امضا شده
یک تایپ از: char
8 بیتی از نوع عدد صحیح امضا شده.
Long2 : دو عدد صحیح 64 بیتی امضا شده
یک تایپ از: طولانی __attribute __ ((ext_vector_type (2)))
یک بردار از دو طولانی. این دو طولانی در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
Long3 : سه عدد صحیح 64 بیتی امضا شده
یک تایپ از: طولانی __attribute __ ((ext_vector_type (3)))
یک بردار از سه طولانی. این سه طولانی در یک میدان 256 بیتی با یک تراز 256 بیتی بسته بندی شده اند.
Long4 : چهار عدد صحیح 64 بیتی امضا شده
یک تایپ از: طولانی __attribute __ ((ext_vector_type (4))
یک بردار از چهار طولانی. این چهار طولانی در یک میدان 256 بیتی با یک تراز 256 بیتی بسته بندی شده اند.
RS_MATRIX2X2 : ماتریس 2x2 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
float m [4] |
---|
یک ماتریس 2x2 مربع از شناورها. ورودی ها در آرایه در محل [Row*2 + Col] ذخیره می شوند.
به توابع ماتریس مراجعه کنید.
RS_MATRIX3X3 : ماتریس 3x3 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
float m [9] |
---|
یک ماتریس 3x3 مربع از شناورها. ورودی ها در آرایه در محل [ردیف*3 + Col] ذخیره می شوند.
به توابع ماتریس مراجعه کنید.
RS_MATRIX4X4 : ماتریس 4x4 از شناورهای 32 بیتی
ساختاری با فیلدهای زیر:
float m [16] |
---|
یک ماتریس 4x4 مربع از شناورها. ورودی ها در آرایه در محل [ردیف*4 + COL] ذخیره می شوند.
به توابع ماتریس مراجعه کنید.
rs_quaternion : quaternion
یک تایپ از: float4
یک ماتریس 4x4 مربع از شناورها که نمایانگر یک کواترنیون است.
به توابع quaternion مراجعه کنید.
Short2 : دو عدد صحیح امضا شده 16 بیتی
یک تایپ از: کوتاه __attribute __ ((ext_vector_type (2))
بردار دو شلوارک. این دو شورت در یک میدان 32 بیتی با تراز 32 بیتی بسته بندی شده اند.
Short3 : سه عدد صحیح امضا شده 16 بیتی
یک تایپ از: کوتاه __attribute __ ((ext_vector_type (3))
بردار سه شورت. این سه قسمت کوتاه در یک میدان 64 بیتی با یک تراز 64 بیتی بسته بندی شده اند.
Short4 : چهار عدد صحیح امضا شده 16 بیتی
یک تایپ از: کوتاه __attribute __ ((ext_vector_type (4))
یک بردار چهار شورت. این چهار قسمت کوتاه در یک میدان 64 بیتی با یک تراز 64 بیتی بسته بندی شده اند.
size_t : نوع اندازه بدون امضا
یک تایپ از: uint64_t هنگام تهیه 64 بیت.
یک تایپ از: uint32_t هنگام تهیه 32 بیت.
نوع اندازه بدون امضا. تعداد بیت ها به پرچم های تلفیقی بستگی دارد.
ssize_t : نوع اندازه امضا شده
یک تایپ از: int64_t هنگام تهیه 64 بیت.
یک تایپ از: int32_t هنگام تهیه 32 بیت.
نوع اندازه امضا شده. تعداد بیت ها به پرچم های تلفیقی بستگی دارد.
UCHAR : عدد صحیح 8 بیتی بدون امضا
یک تایپ از: uint8_t
8 بیتی نوع عدد صحیح بدون امضا.
UCHAR2 : دو عدد صحیح 8 بیتی بدون امضا
یک تایپ از: Uchar __attribute __ ((ext_veector_type (2)))
یک بردار از دو اوچار. این دو قسمت Uchar در یک میدان 16 بیتی با یک تراز 16 بیتی بسته بندی شده اند.
UCHAR3 : سه عدد صحیح 8 بیتی بدون امضا
یک تایپ از: Uchar __attribute __ ((ext_veector_type (3)))
یک بردار از سه اوچار. این سه قسمت Uchar در یک میدان 32 بیتی با یک تراز 32 بیتی بسته بندی شده اند.
UCHAR4 : چهار عدد صحیح 8 بیتی بدون امضا
یک تایپ از: Uchar __attribute __ ((ext_vector_type (4))
وکتور چهار اوچار. این چهار قسمت Uchar در یک میدان 32 بیتی با یک تراز 32 بیتی بسته بندی شده اند.
UINT : عدد صحیح 32 بیتی بدون امضا
یک تایپ از: uint32_t
یک نوع عدد صحیح 32 بیتی بدون امضا.
UINT16_T : عدد صحیح 16 بیتی بدون امضا
یک تایپ از: کوتاه امضا نشده
نوع عدد صحیح 16 بیتی بدون امضا.
uint2 : دو عدد صحیح 32 بیتی بدون امضا
یک تایپ از: uint __attribute __ ((ext_veector_type (2))
یک بردار از دو UINT. این دو UINT در یک میدان 64 بیتی با یک تراز 64 بیتی بسته بندی شده اند.
uint3 : سه عدد صحیح 32 بیتی بدون امضا
یک تایپ از: uint __attribute __ ((ext_veector_type (3))
یک بردار از سه UINT. این سه UINT در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
UINT32_T : 32 بیتی عدد صحیح امضا نشده
یک تایپ از: int امضا نشده
یک نوع عدد صحیح 32 بیتی بدون امضا.
uint4 : چهار عدد صحیح 32 بیتی بدون امضا
یک تایپ از: uint __attribute __ ((ext_veector_type (4))
یک بردار از چهار uint. این چهار UINT در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
uint64_t : 64 بیت عدد صحیح بدون امضا
Typedef از: طولانی مدت امضا نشده از API سطح 21 و بالاتر
Typedef از: مدت طولانی امضا نشده در سطح API 21 اضافه شده است
یک نوع عدد صحیح 64 بیتی بدون امضا.
UINT8_T : عدد صحیح 8 بیتی بدون امضا
یک تایپ از: کاراکتر بدون امضا
8 بیتی نوع عدد صحیح بدون امضا.
Ulong : 64 بیتی بدون امضاء
یک تایپ از: uint64_t
یک نوع عدد صحیح 64 بیتی بدون امضا.
Ulong2 : دو عدد صحیح 64 بیتی بدون امضا
یک تایپ از: ulong __attribute __ ((ext_veector_type (2))
یک بردار از دو Ulongs. این دو Ulongs در یک میدان 128 بیتی با یک تراز 128 بیتی بسته بندی شده اند.
Ulong3 : سه عدد صحیح 64 بیتی بدون امضا
یک تایپ از: Ulong __attribute __ ((ext_vector_type (3))
یک بردار از سه Ulongs. این سه فیلد Ulong در یک میدان 256 بیتی با یک تراز 256 بیتی بسته بندی شده است.
Ulong4 : چهار عدد صحیح 64 بیتی بدون امضا
یک تایپ از: Ulong __attribute __ ((ext_veector_type (4))
یک بردار از چهار Ulongs. این چهار فیلد Ulong در یک میدان 256 بیتی با یک تراز 256 بیتی بسته بندی شده است.
Ushort : عدد صحیح 16 بیتی امضا نشده
یک تایپ از: uint16_t
نوع عدد صحیح 16 بیتی بدون امضا.
Ushort2 : دو عدد صحیح بدون امضاء
یک تایپ از: ushort __attribute __ ((ext_veector_type (2)))
یک بردار از دو Ushort. این دو قسمت Ushort در یک قسمت 32 بیتی با یک تراز 32 بیتی بسته بندی شده اند.
Ushort3 : سه عدد صحیح بدون امضاء
یک تایپ از: ushort __attribute __ ((ext_veector_type (3)))
یک بردار از سه Ushorts. این سه قسمت Ushort در یک میدان 64 بیتی با یک تراز 64 بیتی بسته بندی شده اند.
USHORT4 : چهار عدد صحیح 16 بیتی بدون امضا
یک تایپ از: ushort __attribute __ ((ext_veector_type (4)))
یک بردار از چهار ushorts. این چهار قسمت Ushort در یک میدان 64 بیتی با یک تراز 64 بیتی بسته بندی شده است.