Panoramica
Le funzioni seguenti possono essere utilizzate per eseguire query sulle caratteristiche di un oggetto Allocazione, Elemento o Sampler. Questi oggetti vengono creati da Java. Non puoi crearle da uno script.
Allocazioni:
Le allocazioni sono il metodo principale utilizzato per passare dati da e verso i kernel RenderScript.
Sono una raccolta strutturata di celle che può essere utilizzata per archiviare bitmap, texture, punti dati arbitrari e così via.
Questa raccolta di celle può avere molte dimensioni (X, Y, Z, Array0, Array1, Array2, Array3), facce (per le mappe cubiche) e livelli di dettagli (per mipmapping).
Consulta android.renderscript.Allocation per avere informazioni dettagliate sulla creazione di allocazioni.
Elementi:
Il termine "elemento" è utilizzato in modo un po' ambiguo in RenderScript, come informazioni di tipo per le celle di un'allocazione e per la creazione di un'istanza di quel tipo. Ecco alcuni esempi:
- rs_element è un handle di una specifica di tipo e
- In funzioni come rsGetElementAt(), "element" indica l'istanza del tipo, ovvero una cella di un'allocazione.
Le funzioni riportate di seguito consentono di eseguire query sulle caratteristiche della specifica del tipo.
Un elemento può specificare tipi di dati semplici, come quelli presenti in C, ad esempio un numero intero, un numero in virgola mobile o un valore booleano. Può anche specificare un handle per un oggetto RenderScript. Consulta rs_data_type per un elenco dei tipi di base.
Gli elementi possono specificare versioni vettoriali a dimensioni fisse (di dimensioni 2, 3 o 4) dei tipi di base. Gli elementi possono essere raggruppati in elementi complessi, creando l'equivalente delle definizioni della struttura C.
Gli elementi possono anche avere un tipo, ovvero informazioni semantiche utilizzate per interpretare i dati dei pixel. Consulta rs_data_kind.
Quando crei allocazioni di elementi comuni, puoi semplicemente utilizzare uno dei molti elementi predefiniti, ad esempio F32_2.
Per creare elementi complessi, utilizza la classe Java Element.Builder.
Sampler:
Gli oggetti Samplers definiscono il modo in cui le allocazioni possono essere lette come struttura all'interno di un kernel. Vedi android.renderscript.S.
Riepilogo
Funzioni | |
---|---|
rsAllocationGetDimFaces | Presenza di più volti |
rsAllocationGetDimLOD | Presenza di livelli di dettaglio |
rsAllocationGetDimX | Dimensione della dimensione X |
rsAllocationGetDimY | Dimensione della dimensione Y |
rsAllocationGetDimZ | Dimensione della dimensione Z |
rsAllocationGetElement | Ottieni l'oggetto che descrive la cella di un'allocazione |
rsClearObject | Rilascia un oggetto |
rsElementGetBytesSize | Dimensioni di un elemento |
rsElementGetDataKind | Tipo di elemento |
rsElementGetDataType | Tipo di dati di un elemento |
rsElementGetSubElement | Elemento secondario di un elemento complesso |
rsElementGetSubElementArraySize | Dimensione array di un elemento secondario di un elemento complesso |
rsElementGetSubElementCount | Numero di elementi secondari |
rsElementGetSubElementName | Nome di un elemento secondario |
rsElementGetSubElementNameLength | Lunghezza del nome di un elemento secondario |
rsElementGetSubElementOffsetBytes | Offset del sottoelemento istanziato |
rsElementGetVectorSize | Dimensione vettoriale dell'elemento |
rsIsObject | Verifica la presenza di un handle vuoto |
rsSamplerGetAnisotropy | Anisotropia del campionatore |
rsSamplerGetMagnification | Valore di ingrandimento del campionatore |
rsSamplerGetMinification | Valore di minimizzazione del campionamento |
rsSamplerGetWrapS | Valore S a capo del campionatore |
rsSamplerGetWrapT | Valore T a capo del campionatore |
Funzioni deprecate | |
---|---|
rsGetAllocation | Obsoleta. Restituire l'allocazione di un puntatore specifico |
Funzioni
rsAllocationGetDimFaces : presenza di più volti
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
Ritorni
Restituisce 1 se è presente più di una faccia, altrimenti 0. |
Se l'allocazione è una mappa cubica, questa funzione restituisce 1 se sono presenti più facciate. In tutti gli altri casi, restituisce 0.
Utilizza rsGetDimHasFaces() per ottenere la dimensione di un kernel attualmente in esecuzione.
rsAllocationGetDimLOD : presenza di livelli di dettaglio
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
Ritorni
Restituisce 1 se è presente più di un LOD, altrimenti 0. |
Eseguire una query su un'allocazione per verificare la presenza di più livelli di dettaglio. È utile per le mipmap.
Utilizza rsGetDimLod() per ottenere la dimensione di un kernel attualmente in esecuzione.
rsAllocationGetDimX : dimensioni della dimensione X
uint32_t rsAllocationGetDimX(rs_allocation a); |
Ritorni
X dell'allocazione. |
Restituisce la dimensione della dimensione X dell'allocazione.
Utilizza rsGetDimX() per ottenere la dimensione di un kernel attualmente in esecuzione.
rsAllocationGetDimY : dimensione della dimensione Y
uint32_t rsAllocationGetDimY(rs_allocation a); |
Ritorni
Dimensione Y dell'allocazione. |
Restituisce la dimensione della dimensione Y dell'allocazione. Se l'allocazione ha meno di due dimensioni, restituisce 0.
Utilizza rsGetDimY() per ottenere la dimensione di un kernel attualmente in esecuzione.
rsAllocationGetDimZ : dimensione della dimensione Z
uint32_t rsAllocationGetDimZ(rs_allocation a); |
Ritorni
Dimensione Z dell'allocazione. |
Restituisce la dimensione della dimensione Z dell'allocazione. Se l'allocazione ha meno di tre dimensioni, restituisce 0.
Utilizza rsGetDimZ() per ottenere la dimensione di un kernel attualmente in esecuzione.
rsAllocationGetElement : ottiene l'oggetto che descrive la cella di un'allocazione
rs_element rsAllocationGetElement(rs_allocation a); |
Parametri
a | Allocazione da cui ottenere i dati. |
---|
Ritorni
Elemento che descrive il layout di allocazione. |
Ottieni l'oggetto Element che descrive il tipo, il tipo e altre caratteristiche di una cella di un'allocazione. Consulta le funzioni rsElement* riportate di seguito.
rsClearObject : rilascia un oggetto
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_mesh* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_program_fragment* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_program_raster* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_program_store* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_program_vertex* dst); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
Comunica al tempo di esecuzione che questo handle non verrà più utilizzato per accedere all'oggetto correlato. Se questo è stato l'ultimo handle per quell'oggetto, potrebbe verificarsi il ripristino delle risorse.
Dopo aver chiamato questa funzione, *dst verrà impostato su un handle vuoto. Vedi rsIsObject().
rsElementGetBytesSize : dimensioni di un elemento
uint32_t rsElementGetBytesSize(rs_element e); | Aggiunto al livello API 16 |
Restituisce le dimensioni in byte occupate da un'istanza di questo elemento.
rsElementGetDataKind : tipo di elemento
rs_data_kind rsElementGetDataKind(rs_element e); | Aggiunto al livello API 16 |
Restituisce il tipo di dati dell'elemento. Questo dato viene utilizzato per interpretare i dati relativi ai pixel.
Consulta rs_data_kind.
rsElementGetDataType : tipo di dati di un elemento
rs_data_type rsElementGetDataType(rs_element e); | Aggiunto al livello API 16 |
Restituisce il tipo di dati di base dell'elemento. Può essere un tipo simile a C/C++ (ad es. RS_TYPE_UNSIGNED_8), un handle (ad es. RS_TYPE_ALLOCATION e RS_TYPE_ELEMENT) o un tipo numerico più complesso (ad es. RS_TYPE_UNSIGNED_5_6_5 e RS_TYPE_MATRIX_4X4). Vedi rs_data_type.
Se l'Elemento descrive un vettore, questa funzione restituisce il tipo di dati di uno dei suoi elementi. Utilizza rsElementGetVectorSize per ottenere la dimensione del vettore.
Se l'elemento descrive una struttura, viene restituito RS_TYPE_NONE. Utilizza le funzioni rsElementGetSub* per esplorare questo elemento complesso.
rsElementGetSubElement : elemento secondario di un elemento complesso
rs_element rsElementGetSubElement(rs_element e, indice uint32_t); | Aggiunto al livello API 16 |
Parametri
e | Elemento su cui eseguire la query. |
---|---|
indice | Indice dell'elemento secondario da restituire. |
Ritorni
Elemento secondario nell'indice specificato. |
Per Elementi che rappresentano una struttura, questa funzione restituisce il sottoelemento nell'indice specificato.
Se l'elemento non è una struttura o se l'indice è maggiore o uguale al numero di elementi secondari, viene restituito un handle non valido.
rsElementGetSubElementArraySize : dimensione array di un elemento secondario di un elemento complesso
uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t index); | Aggiunto al livello API 16 |
Parametri
e | Elemento su cui eseguire la query. |
---|---|
indice | Indice dell'elemento secondario. |
Ritorni
Dimensione array dell'elemento secondario. |
Nel caso di elementi complessi, gli elementi secondari possono essere array con dimensioni statiche. Questa funzione restituisce le dimensioni dell'array del sottoelemento nell'indice. La ripetizione di questo elemento secondario è diversa dai vettori a dimensione fissa.
rsElementGetSubElementCount : numero di elementi secondari
uint32_t rsElementGetSubElementCount(rs_element e); | Aggiunto al livello API 16 |
Parametri
e | Elemento da cui ottenere i dati. |
---|
Ritorni
Numero di elementi secondari. |
Gli elementi possono essere semplici, come un numero intero o un numero in virgola mobile, oppure una struttura con più elementi secondari. Questa funzione restituisce zero per gli elementi semplici e il numero di elementi secondari per gli elementi complessi.
rsElementGetSubElementName : nome di un elemento secondario
uint32_t rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); | Aggiunto al livello API 16 |
Parametri
e | Elemento da cui ottenere i dati. |
---|---|
indice | Indice dell'elemento secondario. |
nome | Indirizzo dell'array in cui archiviare il nome. |
Lunghezza nome | Lunghezza dell'array di nomi fornito. |
Ritorni
Numero di caratteri copiati, escluso il carattere di terminazione null. |
Per gli elementi complessi, questa funzione restituisce il nome del sottoelemento nell'indice specificato.
rsElementGetSubElementNameLength : lunghezza del nome di un elemento secondario
uint32_t rsElementGetSubElementNameLength(rs_element e, indice uint32_t); | Aggiunto al livello API 16 |
Parametri
e | Elemento da cui ottenere i dati. |
---|---|
indice | Indice dell'elemento secondario. |
Ritorni
Lunghezza del nome dell'elemento secondario incluso il carattere di terminazione null. |
Per gli elementi complessi, questa funzione restituisce la lunghezza del nome dell'elemento secondario nell'indice specificato.
rsElementGetSubElementOffsetBytes : offset del sottoelemento istanziato
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, indice uint32_t); | Aggiunto al livello API 16 |
Parametri
e | Elemento da cui ottenere i dati. |
---|---|
indice | Indice dell'elemento secondario. |
Ritorni
Offset in byte. |
Questa funzione restituisce la posizione relativa dell'istanza del sottoelemento specificato all'interno di quella dell'elemento.
Ad esempio, se l'elemento descrive un numero in virgola mobile a 32 bit seguito da un numero intero a 32 bit, l'offset restituito per il primo sarà 0 e il secondo 4.
rsElementGetVectorSize : dimensione vettoriale dell'elemento
uint32_t rsElementGetVectorSize(rs_element e); | Aggiunto al livello API 16 |
Parametri
e | Elemento da cui ottenere i dati. |
---|
Ritorni
Lunghezza del vettore dell'elemento. |
Restituisce la dimensione vettoriale dell'elemento. Se l'elemento non rappresenta un vettore, viene restituito 1.
rsGetAllocation : restituisce l'allocazione per un determinato puntatore
rs_allocation rsGetAllocation(const void* p); |
Obsoleta. Questa funzione è deprecata e verrà rimossa dall'SDK in una release futura.
Restituisce l'allocazione di un puntatore specifico. Il puntatore deve puntare in un'allocazione valida. I risultati non sono definiti se il puntatore non proviene da un'allocazione valida.
rsIsObject : verifica se è presente un handle vuoto
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_mesh v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_program_fragment v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_program_raster v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_program_store v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_program_vertex v); | Durante la compilazione a 32 bit. Rimossa dal livello API 23 e successivi |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
Restituisce true se l'handle contiene un riferimento diverso da null.
Questa funzione non convalida che il puntatore interno utilizzato nell'handle punti a un oggetto valido effettivo; verifica solo che sia nullo.
Questa funzione può essere utilizzata per controllare l'elemento restituito da rsElementGetSubElement() o vedere se rsClearObject() è stato richiamato su un handle.
rsSamplerGetAnisotropy : anisotropia del campionatore
float rsSamplerGetAnisotropy(rs_sampler s); | Aggiunto al livello API 16 |
Ottieni l'anisotropia del Sampler.
Vedi android.renderscript.S.
rsSamplerGetMagnification : valore di ingrandimento del campionatore
rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | Aggiunto al livello API 16 |
Ottieni il valore di ingrandimento del Sampler.
Vedi android.renderscript.S.
rsSamplerGetMinification : valore di minimizzazione del campionatore
rs_sampler_value rsSamplerGetMinification(rs_sampler s); | Aggiunto al livello API 16 |
Ottieni il valore di minimizzazione del Sampler.
Vedi android.renderscript.S.
rsSamplerGetWrapS : valore S a capo del campionatore
rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | Aggiunto al livello API 16 |
Ottieni il valore a capo S del Sampler.
Vedi android.renderscript.S.
rsSamplerGetWrapT : valore T a capo del campionatore
rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | Aggiunto al livello API 16 |
Recupera il valore T a capo del Sampler.
Vedi android.renderscript.S.