סקירה כללית
אפשר להשתמש בפונקציות הבאות כדי לשלוח שאילתות לגבי המאפיינים של אובייקט הקצאה, אובייקט רכיב או אובייקט דגימה. האובייקטים האלה נוצרים מ-Java. אי אפשר ליצור אותם מסקריפט.
הקצאות:
הקצאות הן השיטה הראשית להעברת נתונים אל ליבות RenderScript ומהן.
הן אוסף של תאים מובְנים שאפשר להשתמש בהם לאחסון בימפטים, טקסטורות, נקודות נתונים שרירותיות וכו'.
לאוסף התאים הזה יכולות להיות הרבה מאפיינים (X, Y, Z, Array0, Array1, Array2, Array3), פנים (למפות קוביות) ורמת פירוט (למיפ-מאפינג).
פרטים על יצירת הקצאות זמינים במאמר android.renderscript.Allocation.
רכיבים:
המונח 'רכיב' משמש באופן לא ברור ב-RenderScript, גם כמידע על הסוג של התאים של הקצאה וגם כיצירת מופע של הסוג הזה. לדוגמה:
- rs_element הוא שם של מפרט סוג, ו-
- בפונקציות כמו rsGetElementAt(), 'element' הוא יצירת המופע של הסוג, כלומר תא של הקצאה.
הפונקציות הבאות מאפשרות לשלוח שאילתות לגבי המאפיינים של מפרט הסוג.
רכיב יכול לציין סוגי נתונים פשוטים כמו ב-C, למשל מספר שלם, מספר עשרוני או בוליאני. אפשר גם לציין כאן את ה-handle של אובייקט RenderScript. ברשימה rs_data_type מפורטת רשימה של סוגי נתונים בסיסיים.
רכיבים יכולים לציין גרסאות של וקטור בגודל קבוע (בגודל 2, 3 או 4) של הסוגים הבסיסיים. אפשר לקבץ רכיבים יחד לרכיבים מורכבים, וכך ליצור את המקבילה להגדרות המבנה של C.
לרכיבים יכול להיות גם סוג, שהוא מידע סמנטי שמשמש לפרש את נתוני הפיקסלים. ראו rs_data_kind.
כשיוצרים הקצאות של רכיבים נפוצים, אפשר פשוט להשתמש באחד מהרכיבים המוגדרים מראש הרבים, כמו F32_2.
כדי ליצור רכיבי Element מורכבים, משתמשים בכיתה Element.Builder ב-Java.
סמפלים:
אובייקטים של Samplers מגדירים איך אפשר לקרוא את הקצאות (Allocations) כמבנה בתוך ליבה. מידע נוסף זמין במאמר android.renderscript.S.
סיכום
פונקציות | |
---|---|
rsAllocationGetDimFaces | יש יותר מפנים אחד |
rsAllocationGetDimLOD | נוכחות של רמות פירוט |
rsAllocationGetDimX | הגודל של המאפיין X |
rsAllocationGetDimY | הגודל של המאפיין Y |
rsAllocationGetDimZ | הגודל של המאפיין Z |
rsAllocationGetElement | אחזור האובייקט שמתאר את התא של הקצאה |
rsClearObject | שחרור אובייקט |
rsElementGetBytesSize | גודל הרכיב |
rsElementGetDataKind | סוג הרכיב |
rsElementGetDataType | סוג הנתונים של רכיב |
rsElementGetSubElement | רכיב משנה של רכיב מורכב |
rsElementGetSubElementArraySize | גודל המערך של רכיב משנה של רכיב מורכב |
rsElementGetSubElementCount | מספר רכיבי המשנה |
rsElementGetSubElementName | שם של רכיב משנה |
rsElementGetSubElementNameLength | האורך של שם רכיב המשנה |
rsElementGetSubElementOffsetBytes | היסט של רכיב המשנה שנוצר |
rsElementGetVectorSize | גודל הווקטור של הרכיב |
rsIsObject | בדיקה אם הכינוי ריק |
rsSamplerGetAnisotropy | אנאיזוטרופיה של הסמפלר |
rsSamplerGetMagnification | ערך ההגדלה של ה-Sampler |
rsSamplerGetMinification | ערך המינימיזציה של הסמפלר |
rsSamplerGetWrapS | ערך S של Sampler wrap |
rsSamplerGetWrapT | ערך T של Sampler wrap |
פונקציות שהוצאו משימוש | |
---|---|
rsGetAllocation | הוצא משימוש. החזרת ההקצאה של מצביע נתון |
פונקציות
rsAllocationGetDimFaces : נוכחות של יותר מפנייה אחת
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
החזרות
הפונקציה מחזירה את הערך 1 אם יש יותר מפנים אחד, ואת הערך 0 במקרים אחרים. |
אם הקצאת המיפוי היא מפת קוביות, הפונקציה הזו מחזירה 1 אם יש יותר מפני חזית. בכל שאר המקרים, הפונקציה מחזירה את הערך 0.
משתמשים ב-rsGetDimHasFaces() כדי לקבל את המאפיין של ליבה שפועלת כרגע.
rsAllocationGetDimLOD : נוכחות של רמות פירוט
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
החזרות
הפונקציה מחזירה את הערך 1 אם יש יותר מרמת פירוט אחת, אחרת היא מחזירה את הערך 0. |
שולחים שאילתה לגבי הקצאה כדי לבדוק אם יש בה יותר מרמת פירוט אחת. האפשרות הזו מועילה למיפויי mip.
משתמשים ב-rsGetDimLod() כדי לקבל את המימד של ליבה שפועלת כרגע.
rsAllocationGetDimX : הגודל של המאפיין X
uint32_t rsAllocationGetDimX(rs_allocation a); |
החזרות
המאפיין X של ההקצאה. |
הפונקציה מחזירה את הגודל של המאפיין X של ההקצאה.
משתמשים ב-rsGetDimX() כדי לקבל את המימד של ליבה שפועלת כרגע.
rsAllocationGetDimY : הגודל של המאפיין Y
uint32_t rsAllocationGetDimY(rs_allocation a); |
החזרות
המאפיין Y של ההקצאה. |
הפונקציה מחזירה את הגודל של המאפיין Y של ההקצאה. אם ל-Allocation יש פחות משני מאפיינים, הפונקציה מחזירה 0.
משתמשים ב-rsGetDimY() כדי לקבל את המאפיין של ליבה שפועלת כרגע.
rsAllocationGetDimZ : הגודל של המאפיין Z
uint32_t rsAllocationGetDimZ(rs_allocation a); |
החזרות
המאפיין Z של ההקצאה. |
הפונקציה מחזירה את הגודל של המאפיין Z של ההקצאה. אם למכסה יש פחות משלושה מאפיינים, הפונקציה מחזירה 0.
משתמשים ב-rsGetDimZ() כדי לקבל את המאפיין של ליבה שפועלת כרגע.
rsAllocationGetElement : אחזור האובייקט שמתאר את התא של הקצאה
rs_element rsAllocationGetElement(rs_allocation a); |
פרמטרים
a | ההקצאה שממנה רוצים לקבל נתונים. |
---|
החזרות
רכיב שמתאר את הפריסה של הקצאה. |
אחזור של אובייקט Element שמתאר את הסוג, הסוג והמאפיינים האחרים של תא של הקצאה. עיינו בפונקציות rsElement* שבהמשך.
rsClearObject : שחרור אובייקט
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_mesh* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_program_fragment* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_program_raster* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_program_store* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_program_vertex* dst); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
הודעה לממשק זמן הריצה על כך שהאחזור הזה לא ישמש יותר לגישה לאובייקט הקשור. אם זה היה ה-handle האחרון לאובייקט הזה, יכול להיות שיתבצע שחזור המשאב.
אחרי הקריאה לפונקציה הזו, *dst יוגדר כידית ריקה. ראו rsIsObject().
rsElementGetBytesSize : הגודל של רכיב
uint32_t rsElementGetBytesSize(rs_element e); | נוספה ב-רמת API 16 |
הפונקציה מחזירה את הגודל בבייטים של מופע של הרכיב הזה.
rsElementGetDataKind : סוג הרכיב
rs_data_kind rsElementGetDataKind(rs_element e); | נוספה ב-רמת API 16 |
הפונקציה מחזירה את סוג הנתונים של הרכיב. הוא משמש לצורך פרשנות של נתוני הפיקסלים.
ראו rs_data_kind.
rsElementGetDataType : סוג הנתונים של רכיב
rs_data_type rsElementGetDataType(rs_element e); | נוספה ב-רמת API 16 |
הפונקציה מחזירה את סוג הנתונים הבסיסי של הרכיב. זה יכול להיות טיפוס דומה ל-C/C++ (למשל RS_TYPE_UNSIGNED_8), אחיזה (למשל RS_TYPE_ALLOCATION ו-RS_TYPE_ELEMENT) או טיפוס מספרי מורכב יותר (למשל RS_TYPE_UNSIGNED_5_6_5 ו-RS_TYPE_MATRIX_4X4). rs_data_type
אם הרכיב מתאר וקטור, הפונקציה הזו מחזירה את סוג הנתונים של אחד מהפריטים שלו. משתמשים ב-rsElementGetVectorSize כדי לקבל את הגודל של הווקטור.
אם הרכיב מתאר מבנה, מוחזר הערך RS_TYPE_NONE. אפשר להשתמש בפונקציות rsElementGetSub* כדי לבחון את הרכיב המורכב הזה.
rsElementGetSubElement : רכיב משנה של רכיב מורכב
rs_element rsElementGetSubElement(rs_element e, uint32_t index); | נוספה ב-רמת API 16 |
פרמטרים
e | האלמנט שרוצים לשלוח עליו שאילתה. |
---|---|
אינדקס | האינדקס של רכיב המשנה שיש להחזיר. |
החזרות
רכיב משנה במיקום האינדקס הנתון. |
עבור רכיבים שמייצגים מבנה, הפונקציה הזו מחזירה את רכיב המשנה במדד שצוין.
אם ה-Element הוא לא מבנה או שהאינדקס גדול או שווה למספר הרכיבים המשניים, המערכת מחזירה אחיזה לא חוקית.
rsElementGetSubElementArraySize : גודל המערך של רכיב משנה של רכיב מורכב
uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t index); | נוספה ב-רמת API 16 |
פרמטרים
e | האלמנט שרוצים לשלוח עליו שאילתה. |
---|---|
אינדקס | האינדקס של רכיב המשנה. |
החזרות
גודל המערך של רכיב המשנה. |
ברכיבים מורכבים, רכיבי המשנה יכולים להיות מערכי גודל סטטי. הפונקציה הזו מחזירה את גודל המערך של רכיב המשנה באינדקס. החזרה על רכיבי המשנה האלה שונה מחזרה על וקטורים בגודל קבוע.
rsElementGetSubElementCount : מספר הרכיבים המשניים
uint32_t rsElementGetSubElementCount(rs_element e); | נוספה ב-רמת API 16 |
פרמטרים
e | הרכיב שממנו רוצים לקבל נתונים. |
---|
החזרות
מספר רכיבי המשנה. |
הרכיבים יכולים להיות פשוטים, כמו int או float, או מבנה עם כמה רכיבי משנה. הפונקציה הזו מחזירה אפס עבור רכיבים פשוטים ומספר רכיבי המשנה עבור רכיבים מורכבים.
rsElementGetSubElementName : שם של רכיב משנה
uint32_t rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); | נוספה ב-רמת API 16 |
פרמטרים
e | הרכיב שממנו רוצים לקבל נתונים. |
---|---|
אינדקס | האינדקס של רכיב המשנה. |
שם | הכתובת של המערך שבו השם יישמר. |
nameLength | האורך של מערך השמות שצוין. |
החזרות
מספר התווים שהועתקו, לא כולל סימן הסיום null. |
ברכיבים מורכבים, הפונקציה הזו מחזירה את השם של רכיב המשנה במדד שצוין.
rsElementGetSubElementNameLength : אורך השם של רכיב משנה
uint32_t rsElementGetSubElementNameLength(rs_element e, uint32_t index); | נוספה ב-רמת API 16 |
פרמטרים
e | הרכיב שממנו רוצים לקבל נתונים. |
---|---|
אינדקס | האינדקס של רכיב המשנה. |
החזרות
האורך של שם רכיב המשנה, כולל סימן הסיום null. |
ברכיבים מורכבים, הפונקציה הזו מחזירה את אורך השם של רכיב המשנה במדד שצוין.
rsElementGetSubElementOffsetBytes : היסט של רכיב המשנה שנוצר
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, uint32_t index); | נוספה ב-רמת API 16 |
פרמטרים
e | הרכיב שממנו רוצים לקבל נתונים. |
---|---|
אינדקס | האינדקס של רכיב המשנה. |
החזרות
היסט בבייטים. |
הפונקציה הזו מחזירה את המיקום היחסי של יצירת המופע של רכיב המשנה שצוין בתוך יצירת המופע של הרכיב.
לדוגמה, אם ה-Element מתאר מספר צף של 32 ביט ואחריו מספר שלם של 32 ביט, הערך שיוחזר עבור ההיסט של הראשון יהיה 0 והערך שיוחזר עבור ההיסט של השני יהיה 4.
rsElementGetVectorSize : גודל הווקטור של האלמנט
uint32_t rsElementGetVectorSize(rs_element e); | נוספה ב-רמת API 16 |
פרמטרים
e | הרכיב שממנו רוצים לקבל נתונים. |
---|
החזרות
אורך וקטור האלמנט. |
הפונקציה מחזירה את גודל הווקטור של הרכיב. אם הרכיב לא מייצג וקטור, המערכת מחזירה את הערך 1.
rsGetAllocation : החזרת ההקצאה של מצביע נתון
rs_allocation rsGetAllocation(const void* p); |
הוצא משימוש. הפונקציה הזו הוצאה משימוש ותוסר מ-SDK בגרסה עתידית.
הפונקציה מחזירה את ההקצאה של מצביע נתון. הסמן צריך להצביע בתוך הקצאה חוקית. התוצאות לא מוגדרות אם ההצבעה לא מ-Allocation תקין.
rsIsObject : בדיקה אם הידית ריקה
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_mesh v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_program_fragment v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_program_raster v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_program_store v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_program_vertex v); | כשמפעילים הידור ל-32 ביט. הוסרו מ-רמת API 23 ואילך |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
הפונקציה מחזירה את הערך true אם הידית מכילה הפניה שאינה null.
הפונקציה הזו לא מאמתת שהמצביע הפנימי שמשמש ב-handle מצביע על אובייקט תקף בפועל, אלא רק בודקת אם הוא null.
אפשר להשתמש בפונקציה הזו כדי לבדוק את הרכיב שמוחזרים על ידי rsElementGetSubElement() או כדי לבדוק אם rsClearObject() הופעל על ידית.
rsSamplerGetAnisotropy : אנאיזוטרופיה של הסמפלר
float rsSamplerGetAnisotropy(rs_sampler s); | נוספה ב-רמת API 16 |
אחזור של האניזוטרופיה של ה-Sampler.
מידע נוסף זמין במאמר android.renderscript.S.
rsSamplerGetMagnification : ערך ההגדלה של ה-Sampler
rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | נוספה ב-רמת API 16 |
אחזור ערך ההגדלה של ה-Sampler.
מידע נוסף זמין במאמר android.renderscript.S.
rsSamplerGetMinification : ערך המינימיזציה של ה-Sampler
rs_sampler_value rsSamplerGetMinification(rs_sampler s); | נוספה ב-רמת API 16 |
אחזור ערך המינימציה של ה-Sampler.
מידע נוסף זמין במאמר android.renderscript.S.
rsSamplerGetWrapS : ערך S של Sampler wrap
rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | נוספה ב-רמת API 16 |
אחזור הערך של S ב-wrap של ה-Sampler.
מידע נוסף זמין במאמר android.renderscript.S.
rsSamplerGetWrapT : ערך T של Sampler wrap
rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | נוספה ב-רמת API 16 |
אחזור הערך של T ב-wrap של ה-sampler.
מידע נוסף זמין במאמר android.renderscript.S.