الأنواع الرقمية RenderScript

نظرة عامة

الكميات القياسية:

يتيح RenderScript الأنواع الرقمية التالية:

8 بت 16 بت 32 بت 64 بت
عدد صحيح: char، int8_t قصير، int16_t int32_t طويل، طويل، int64_t
عدد صحيح بلا توقيع: uchar، uint8_t ushort، 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 المصفوفات المربعة ذات الحجم الثابت للأعداد العشرية بالحجم 2×2 و3×3 و4×4. تتم تسمية الأنواع بـ rs_matrix2x2 وrs_matrix3x3 وrs_matrix4x4. راجِع دوال المصفوفة للحصول على قائمة بالعمليات.

ويمكن استخدام الأرباع أيضًا من خلال rs_quaternion. انظر الدوال الرباعية للحصول على قائمة بالعمليات.

ملخّص

الأنواع
الحرف2 عددان صحيحان موقَّعان بـ 8 بت
الحرف3 ثلاثة أعداد صحيحة بعلامة 8 بت
الحرف4 أربعة أعداد صحيحة موقعة 8 بت
مزدوج عددان عائمان 64 بت
مزدوج ثلاثة أعداد عشرية 64 بت
مزدوج أربعة أعداد عشرية 64 بت
عائم2 عددان عائمان 32 بت
عائم3 ثلاثة أعداد عشرية 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 مصفوفة 2×2 لعدد أعداد عشرية 32 بت
rs_matrix3x3 مصفوفة 3×3 لعدد أعداد عشرية 32 بت
rs_matrix4x4 مصفوفة 4×4 مكوّنة من عدد عائم 32 بت
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 بت
طويل عدد صحيح 64 بت غير موقَّع
ulong2 عددان صحيحان 64 بت غير موقعين
ulong3 ثلاثة أعداد صحيحة غير موقعة 64 بت
ulong4 أربعة أعداد صحيحة غير موقعة 64 بت
ushort عدد صحيح 16 بت غير موقع
ushort2 عددان صحيحان 16 بت غير موقعين
ushort3 ثلاثة أعداد صحيحة غير موقعة 16 بت
ushort4 أربعة أعداد صحيحة غير موقعة 16 بت

الأنواع

char2 : عددان صحيحان موقّعان 8 بت

تعريف نوعي: char __attribute__((ext_ تنسيق_type(2)))

متجه من حرفين. يتم ضغط هذين الحرفين في حقل واحد 16 بت مع محاذاة 16 بت.

char3 : ثلاثة أعداد صحيحة موقّعة 8 بت

تعريف نوعي: char __attribute__((ext_forward_type(3)))

متجه مكون من ثلاثة أحرف. يتم تعبئتها هذه الأحرف الثلاثة في حقل واحد 32 بت مع محاذاة 32 بت.

char4 : أربعة أعداد صحيحة موقّعة 8 بت

تعريف نوعي: char __attribute__((ext_forward_type(4)))

متجه مكون من أربعة أحرف. يتم تعبئتها هذه الأحرف الأربعة في حقل واحد 32 بت مع محاذاة 32 بت.

double2 : عددان عائمان 64 بت

تعريف نوعي: __attribute__((ext_ تساعد_type(2)))

خط متجه مضاعفة. هذان الحقلان المزدوجان مضغوطان في حقل واحد 128 بت مع محاذاة 128 بت.

double3 : ثلاثة أعداد عشرية 64 بت

تعريف نوعي: __attribute__((ext_forward_type(3)))

متجه لثلاثة مضاعفات. تم ضغط هذه الحقول المزدوجة الثلاثة في حقل واحد بحجم 256 بت مع محاذاة 256 بت.

double4 : أربعة أعداد عشرية 64 بت

تعريف نوعي: __attribute__((ext_forward_type(4)))

متجه لأربعة مضاعفات. تم ضغط هذه الحقول المزدوجة الأربعة في حقل واحد 256 بت مع محاذاة 256 بت.

float2 : عددان عائمان 32 بت

تعريف نوعي: float __attribute__((ext_forward_type(2)))

خط متجه لعدد عائمين. يتم تجميع هذين العددين العائمين في حقل واحد 64 بت بمحاذاة 64 بت.

خط متجه لعدد عائمين. يتم تجميع هذين العددين العائمين في حقل واحد 64 بت بمحاذاة 64 بت.

float3 : ثلاثة أعداد عشرية 32 بت

تحديد نوعي: float __attribute__((ext_forward_type(3)))

متجه لثلاثة أعداد عشرية. ويتم تجميع هذه الأعداد العشرية الثلاثة في حقل واحد 128 بت مع محاذاة 128 بت.

float4 : أربعة أعداد عشرية 32 بت

تعريف نوعي: float __attribute__((ext_ تنسيق_type(4)))

يشير ذلك المصطلح إلى متجه من أربعة أعداد عشرية. ويتم تجميع هذه الأعداد العائمة الأربعة في حقل واحد 128 بت مع محاذاة 128 بت.

نصف : قيمة النقطة العائمة 16 بت

تعريف نوع: __fp16 تمت إضافته في مستوى واجهة برمجة التطبيقات 23

قيمة النقطة العائمة 16 بت.

half2 : عددان عائمان 16 بت

تحديد نوع: نصف __attribute__((ext_ تنسيق_type(2))) تمت إضافته في مستوى واجهة برمجة التطبيقات 23

نسخة المتجه من النوع النصف العائم. يوفر نصف حقلين معبأين في حقل واحد 32 بت مع محاذاة 32 بت.

half3 : ثلاثة أعداد عشرية 16 بت

تحديد نوع: نصف __السمة__((ext_ تنسيق_type(3))) تتم إضافته في مستوى واجهة برمجة التطبيقات 23

نسخة المتجه من النوع النصف العائم. يوفر ثلاثة حقول معبأة في حقل واحد 64 بت مع محاذاة 64 بت.

half4 : أربعة أعداد عشرية 16 بت

تحديد نوع: نصف __attribute__((ext_ تنسيق_type(4))) تمت إضافته في مستوى واجهة برمجة التطبيقات 23

نسخة المتجه من النوع النصف العائم. يوفر أربعة حقول نصفية معبأة في حقل واحد 64 بت مع محاذاة 64 بت.

int16_t : عدد صحيح موقَّع بـ 16 بت

تعريف نوعي: قصير

نوع عدد صحيح بإشارة 16 بت.

int2 : عددان صحيحان موقّعان 32 بت

تعريف نوعي لـ: int __attribute__((ext_forward_type(2)))

خط متجه لخطين داخليين. يتم تعبئتها في حقل واحد 64 بت مع محاذاة 64 بت.

int3 : ثلاثة أعداد صحيحة موقّعة 32 بت

تعريف نوعي: int __attribute__((ext_forward_type(3)))

خط متجه لثلاثة تدخُّل بشري. يتم تعبئتها في حقل واحد 128 بت مع محاذاة 128 بت.

int32_t : عدد صحيح موقَّع 32 بت

تعريف نوعي لـ: int

نوع عدد صحيح بعلامة 32 بت.

int4 : أربعة أعداد صحيحة موقّعة 32 بت

تعريف نوعي لـ: int __attribute__((ext_forward_type(4)))

متجه لأربعة تدخّلات داخلية. ويتم تجميع هذين النوعين من الأربعة في حقل واحد 128 بت مع محاذاة 128 بت.

int64_t : عدد صحيح موقَّع 64 بت

تعريف نوعي: طويل تمت إزالته من المستوى 21 من واجهة برمجة التطبيقات والمستويات الأعلى

تعريف نوعي: طويل تمت إضافته في المستوى 21 من واجهة برمجة التطبيقات

نوع عدد صحيح بتوقيع 64 بت.

int8_t : عدد صحيح موقَّع بـ 8 بت

تعريف نوعي لـ: char

نوع عدد صحيح بعلامة 8 بت.

long2 : عددان صحيحان موقّعان 64 بت

تعريف نوعي لـ: long __attribute__((ext_ تنسيق_type(2)))

خط متجه لفترات طويلة. يتم تعبئتها في حقل واحد 128 بت مع محاذاة 128 بت.

long3 : ثلاثة أعداد صحيحة موقّعة 64 بت

تعريف نوعي: __attribute__((ext_ تساعد_type(3)))

خط متجه لثلاث مدد. يتم تجميع هذه الطويلة الثلاثة في حقل واحد 256 بت مع محاذاة 256 بت.

long4 : أربعة أعداد صحيحة موقّعة 64 بت

تعريف نوعي لـ: long __attribute__((ext_ تنسيق_type(4)))

خط متجه لأربعة خطوط طويلة. يتم تجميع هذه الفترات الطويلة الأربعة في حقل واحد 256 بت مع محاذاة 256 بت.

rs_matrix2x2 : مصفوفة 2×2 تتضمّن عددًا عائمًا 32 بت

بنية تتضمّن الحقول التالية:     

عدد العائم بالمتر[4]

مصفوفة مربّعة بحجم 2×2 من الأعداد العشرية. يتم تخزين الإدخالات في الصفيف في الموقع [الصف*2 + العمود].

يُرجى الاطّلاع على دوال المصفوفة.

rs_matrix3x3 : مصفوفة 3x3 تتضمّن أعداد عشرية 32 بت

بنية تتضمّن الحقول التالية:     

العائم بالمتر[9]

مصفوفة مربّعة 3×3 من الأعداد العشرية. يتم تخزين الإدخالات في الصفيف في الموقع [الصف*3 + العمود].

يُرجى الاطّلاع على دوال المصفوفة.

rs_matrix4x4 : مصفوفة 4×4 تتضمّن عددًا عائمًا 32 بت

بنية تتضمّن الحقول التالية:     

العائم بالمتر[16]

مصفوفة مربّعة 4×4 تتضمّن أعداد عشرية. يتم تخزين الإدخالات في الصفيف في الموقع [الصف*4 + العمود].

يُرجى الاطّلاع على دوال المصفوفة.

rs_quaternion : Quaternion

تعريف نوعي: float4

مصفوفة مربّعة 4×4 تتضمّن أعدادًا عائمة تمثّل ربعًا.

اطّلِع على الدوال الرُبعية.

short2 : عددان صحيحان موقّعان 16 بت

تعريف نوعي: قصير __attribute__((ext_ تنسيق_type(2)))

متّجه لفيديوهَين قصيرَين. يتم تعبئت هذين النوعين من فيديوهات Shorts في حقل واحد 32 بت بمحاذاة 32 بت.

short3 : ثلاثة أعداد صحيحة موقّعة 16 بت

تعريف نوعي: قصير __attribute__((ext_ تنسيق_type(3)))

متّجه لثلاثة فيديوهات Shorts. تم ضغط هذه الحقول الثلاثة القصيرة في حقل واحد 64 بت مع محاذاة 64 بت.

short4 : أربعة أعداد صحيحة موقّعة 16 بت

تعريف نوعي: __attribute__((ext_forward_type(4)))

متّجه لأربع فيديوهات Shorts. تم ضغط هذه الحقول الأربعة القصيرة في حقل واحد 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_forward_type(2)))

متجه لـ uchar. تم ضغط هذين الحقلين uchar في حقل واحد 16 بت مع محاذاة 16 بت.

uchar3 : ثلاثة أعداد صحيحة غير موقَّعة بقيمة 8 بت

تعريف نوعي: uchar __attribute__((ext_forward_type(3)))

متجه لثلاثة وحدات uchar. يتم ضغط حقول uchar الثلاثة هذه في حقل واحد 32 بت مع محاذاة 32 بت.

uchar4 : أربعة أعداد صحيحة غير موقَّعة بقيمة 8 بت

تعريف نوعي: uchar __attribute__((ext_ تنسيق_type(4)))

متجه من أربعة uchars. يتم ضغط حقول uchar الأربعة هذه في حقل واحد 32 بت مع محاذاة 32 بت.

uint : عدد صحيح غير موقَّع 32 بت

تعريف نوعي: uint32_t

نوع عدد صحيح غير موقَّع 32 بت.

uint16_t : عدد صحيح 16 بت غير موقَّع

تعريف نوعي: قصير غير موقَّع

نوع عدد صحيح 16 بت غير موقع.

uint2 : عددان صحيحان 32 بت غير موقَّعَين

تعريف نوعي: uint __attribute__((ext_forward_type(2)))

متجه من اثنين. يتم تعبئتها في حقل واحد 64 بت مع محاذاة 64 بت.

uint3 : ثلاثة أعداد صحيحة غير موقّعة 32 بت

تعريف نوعي لـ: uint __attribute__((ext_forward_type(3)))

متجه لثلاثة وحدات يتم تجميع هذه الأدوات الثلاثة في حقل واحد 128 بت مع محاذاة 128 بت.

uint32_t : عدد صحيح غير موقَّع 32 بت

تعريف نوعي لـ: int int غير موقَّع

نوع عدد صحيح غير موقَّع 32 بت.

uint4 : أربعة أعداد صحيحة غير موقَّعة 32 بت

تعريف نوعي: uint __attribute__((ext_forward_type(4)))

متجه من أربعة وحدات. يتم تعبئتها هذه الأدوات الأربعة في حقل واحد 128 بت مع محاذاة 128 بت.

uint64_t : عدد صحيح غير موقَّع 64 بت

تعريف نوعي: طويل غير موقَّع تمت إزالته من المستوى 21 من واجهة برمجة التطبيقات والمستويات الأعلى

تعريف نوعي: طويل غير موقَّع تمت إضافته في المستوى 21 من واجهة برمجة التطبيقات

نوع عدد صحيح 64 بت غير موقع.

uint8_t : عدد صحيح غير موقَّع 8 بت

تعريف نوعي لـ: حرف غير موقَّع

نوع عدد صحيح 8 بت غير موقَّع.

ulong : عدد صحيح 64 بت غير موقَّع

تعريف نوعي: uint64_t

نوع عدد صحيح 64 بت غير موقع.

ulong2 : عددان صحيحان 64 بت غير موقَّعين

تعريف نوعي لـ: ulong __attribute__((ext_forward_type(2)))

متّجه زوجين. يتم تجميع هاتَين الأداتين في حقل واحد 128 بت مع محاذاة 128 بت.

ulong3 : ثلاثة أعداد صحيحة غير موقَّعة 64 بت

تعريف نوعي: ulong __attribute__((ext_forward_type(3)))

متجه لثلاثة أطفال يتم ضغط هذه الحقول الثلاثة طويلة في حقل واحد 256 بت مع محاذاة 256 بت.

ulong4 : أربعة أعداد صحيحة غير موقَّعة 64 بت

تحديد نوعي لـ: ulong __attribute__((ext_forward_type(4)))

متجه لأربعة سلالة طويلة. يتم ضغط هذه الحقول الأربعة طويلة الأجل في حقل واحد 256 بت مع محاذاة 256 بت.

ushort : عدد صحيح 16 بت غير موقَّع

تعريف نوعي: uint16_t

نوع عدد صحيح 16 بت غير موقع.

ushort2 : عددان صحيحان 16 بت غير موقَّعَين

تعريف نوعي: ushort __attribute__((ext_forward_type(2)))

متّجه لبنطال قصير واحد. هذان الحقلان المختصران معببان في حقل واحد 32 بت بمحاذاة 32 بت.

ushort3 : ثلاثة أعداد صحيحة غير موقَّعة 16 بت

تعريف نوعي: ushort __attribute__((ext_ تنسيق_type(3)))

متجه لثلاثة فيديوهات Shorts قصيرة. يتم ضغط الحقول الثلاثة القصيرة هذه في حقل واحد 64 بت مع محاذاة 64 بت.

ushort4 : أربعة أعداد صحيحة غير موقَّعة 16 بت

تعريف نوعي: ushort __attribute__((ext_ تنسيق_type(4)))

متجه لأربعة سراويل قصيرة. يتم تجميع هذه الحقول الأربعة القصيرة في حقل واحد 64 بت مع محاذاة 64 بت.