Présentation
Les fonctions ci-dessous peuvent être utilisées pour interroger les caractéristiques d'un objet Attribution, Element ou Sampler. Ces objets sont créés à partir de Java. Vous ne pouvez pas les créer à partir d'un script.
Allocations:
Les allocations constituent la principale méthode utilisée pour transmettre des données vers et depuis les noyaux RenderScript.
Il s'agit d'une collection structurée de cellules pouvant être utilisées pour stocker des bitmaps, des textures, des points de données arbitraires, etc.
Cet ensemble de cellules peut comporter de nombreuses dimensions (X, Y, Z, Array0, Array1, Array2 et Array3), de faces (pour les cubes) et de niveaux de détails (pour mipmapping).
Pour en savoir plus sur la création d'allocations, consultez android.renderscript.Allocation.
Éléments:
Le terme "élément" est utilisé de manière un peu ambiguë dans RenderScript, à la fois comme informations de type pour les cellules d'une allocation et pour instanciation de ce type. Par exemple :
- rs_element est un handle vers une spécification de type.
- Dans des fonctions telles que rsGetElementAt(), "element" désigne l'instanciation du type, c'est-à-dire une cellule d'une allocation.
Les fonctions ci-dessous vous permettent d'interroger les caractéristiques de la spécification de type.
Un élément peut spécifier des types de données simples (par exemple, un entier, un nombre à virgule flottante ou un booléen). Il peut également spécifier un handle vers un objet RenderScript. Consultez la section rs_data_type pour obtenir la liste des types de base.
Les éléments peuvent spécifier des versions de vecteur de taille fixe (de taille 2, 3 ou 4) des types de base. Les éléments peuvent être regroupés en éléments complexes, créant ainsi l'équivalent des définitions de la structure C.
Les éléments peuvent également avoir un genre, qui correspond à une information sémantique utilisée pour interpréter les données de pixels. Consultez rs_data_kind.
Lorsque vous créez des allocations d'éléments communs, vous pouvez simplement utiliser l'un des nombreux éléments prédéfinis tels que F32_2.
Pour créer des éléments complexes, utilisez la classe Java Element.Builder.
Échantillonneurs:
Les objets Samplers définissent comment les allocations peuvent être lues comme une structure au sein d'un noyau. Voir android.renderscript.S.
Résumé
Fonctions | |
---|---|
rsAllocationGetDimFaces | Présence de plusieurs visages |
rsAllocationGetDimLOD | Présence de niveaux de détail |
rsAllocationGetDimX | Taille de la dimension X |
rsAllocationGetDimY | Taille de la dimension Y |
rsAllocationGetDimZ | Taille de la dimension Z |
rsAllocationGetElement | Obtenir l'objet qui décrit la cellule d'une allocation |
rsClearObject | Libérer un objet |
rsElementGetBytesSize | Taille d'un élément |
rsElementGetDataKind | Type d'élément |
rsElementGetDataType | Type de données d'un élément |
rsElementGetSubElement | Sous-élément d'un élément complexe |
rsElementGetSubElementArraySize | Taille du tableau d'un sous-élément d'un élément complexe |
rsElementGetSubElementCount | Nombre de sous-éléments |
rsElementGetSubElementName | Nom d'un sous-élément |
rsElementGetSubElementNameLength | Longueur du nom d'un sous-élément |
rsElementGetSubElementOffsetBytes | Décalage du sous-élément instancié |
rsElementGetVectorSize. | Taille vectorielle de l'élément |
rsIsObject | Rechercher un identifiant vide |
rsSamplerGetAnisotropy | Anisotropie de l'échantillonneur |
rsSamplerGetMagnification | Valeur d'agrandissement de l'échantillonneur |
rsSamplerGetMinification | Valeur de minimisation de l'échantillonneur |
rsSamplerGetWrapS | Valeur S de l'encapsulation de l'échantillonneur |
rsSamplerGetWrapT | Valeur T de l'encapsulation de l'échantillonneur |
Fonctions obsolètes | |
---|---|
rsGetAllocation | Obsolète. Renvoyer l'allocation pour un pointeur donné |
Fonctions
rsAllocationGetDimFaces : présence de plusieurs visages
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
Renvoie
Renvoie 1 si plusieurs visages sont présents, 0 dans le cas contraire. |
Si l'allocation est un cubemap, cette fonction renvoie 1 s'il y a plusieurs faces. Dans tous les autres cas, elle renvoie 0.
Utilisez rsGetDimHasFaces() pour obtenir la dimension d'un noyau en cours d'exécution.
rsAllocationGetDimLOD : présence de niveaux de détail
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
Renvoie
Renvoie 1 si plusieurs niveaux de détail sont présents, et 0 dans le cas contraire. |
Interrogez une allocation pour détecter la présence de plusieurs niveaux de détail. C'est utile pour les mipmaps.
Utilisez rsGetDimLod() pour obtenir la dimension d'un noyau en cours d'exécution.
rsAllocationGetDimX : taille de la dimension X
uint32_t rsAllocationGetDimX(rs_allocation a); |
Renvoie
Dimension X de l'allocation. |
Renvoie la taille de la dimension X de l'allocation.
Utilisez rsGetDimX() pour obtenir la dimension d'un noyau en cours d'exécution.
rsAllocationGetDimY : taille de la dimension Y
uint32_t rsAllocationGetDimY(rs_allocation a); |
Renvoie
Dimension Y de l'allocation. |
Renvoie la taille de la dimension Y de l'allocation. Si l'allocation comporte moins de deux dimensions, elle renvoie 0.
Utilisez rsGetDimY() pour obtenir la dimension d'un noyau en cours d'exécution.
rsAllocationGetDimZ : taille de la dimension Z
uint32_t rsAllocationGetDimZ(rs_allocation a); |
Renvoie
Dimension Z de l'allocation. |
Renvoie la taille de la dimension Z de l'allocation. Si l'allocation comporte moins de trois dimensions, elle renvoie 0.
Utilisez rsGetDimZ() pour obtenir la dimension d'un noyau en cours d'exécution.
rsAllocationGetElement : récupère l'objet qui décrit la cellule d'une allocation
rs_element rsAllocationGetElement(rs_allocation a); |
Paramètres
a | Allocation à partir de laquelle obtenir des données. |
---|
Renvoie
Élément décrivant la mise en page de l'allocation. |
Obtenir l'objet Élément décrivant le type, le genre et d'autres caractéristiques d'une cellule d'une allocation. Consultez les fonctions rsElement* ci-dessous.
rsClearObject : libérer un objet
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_mesh* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_program_fragment* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_program_raster* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_program_store* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_program_vertex* dst); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
Indique à l'environnement d'exécution que ce handle ne sera plus utilisé pour accéder à l'objet associé. S'il s'agissait du dernier handle de cet objet, la récupération de ressources peut avoir lieu.
Après avoir appelé cette fonction, *dst sera défini sur un handle vide. Voir rsIsObject().
rsElementGetBytesSize : taille d'un élément
uint32_t rsElementGetBytesSize(rs_element e); | Ajouté au niveau d'API 16 |
Renvoie la taille en octets qu'une instanciation de cet élément occupera.
rsElementGetDataKind : genre d'un élément
rs_data_kind rsElementGetDataKind(rs_element e); | Ajouté au niveau d'API 16 |
Renvoie le genre de données de l'élément. Cela permet d'interpréter les données de pixels.
Consultez rs_data_kind.
rsElementGetDataType : type de données d'un élément
rs_data_type rsElementGetDataType(rs_element e); | Ajouté au niveau d'API 16 |
Renvoie le type de données de base de l'élément. Il peut s'agir d'un type semblable à C/C++ (par exemple, RS_TYPE_UNSIGNED_8), d'un handle (par exemple, RS_TYPE_ALLOCATION et RS_TYPE_ELEMENT) ou d'un type numérique plus complexe (par exemple, RS_TYPE_UNSIGNED_5_6_5 et RS_TYPE_MATRIX_4X4). Voir rs_data_type.
Si l'élément décrit un vecteur, cette fonction renvoie le type de données de l'un de ses éléments. Utilisez rsElementGetVectorSize pour obtenir la taille du vecteur.
Si l'élément décrit une structure, la valeur RS_TYPE_NONE est renvoyée. Utilisez les fonctions rsElementGetSub* pour explorer cet élément complexe.
rsElementGetSubElement : sous-élément d'un élément complexe
rs_element rsElementGetSubElement(rs_element e, uint32_t index); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à interroger. |
---|---|
indice | Index du sous-élément à afficher. |
Renvoie
Sous-élément au niveau de l'index donné. |
Pour les éléments qui représentent une structure, cette fonction renvoie le sous-élément au niveau de l'index spécifié.
Si l'élément n'est pas une structure ou si l'index est supérieur ou égal au nombre de sous-éléments, un handle non valide est renvoyé.
rsElementGetSubElementArraySize : taille de tableau d'un sous-élément d'un élément complexe
uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t index); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à interroger. |
---|---|
indice | Index du sous-élément. |
Renvoie
Taille du tableau du sous-élément. |
Pour les éléments complexes, les sous-éléments peuvent être des tableaux de taille statique. Cette fonction renvoie la taille du tableau du sous-élément au niveau de l'index. Cette répétition de sous-éléments est différente des vecteurs de taille fixe.
rsElementGetSubElementCount : nombre de sous-éléments
uint32_t rsElementGetSubElementCount(rs_element e); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à partir duquel vous souhaitez obtenir des données. |
---|
Renvoie
Nombre de sous-éléments. |
Les éléments peuvent être simples, comme un entier ou un float, ou une structure comportant plusieurs sous-éléments. Cette fonction renvoie zéro pour les éléments simples et le nombre de sous-éléments pour les éléments complexes.
rsElementGetSubElementName : nom d'un sous-élément
uint32_t rsElementGetSubElementName(rs_element e, index uint32_t, nom car*, uint32_t nameLength); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à partir duquel vous souhaitez obtenir des données. |
---|---|
indice | Index du sous-élément. |
nom | Adresse du tableau dans lequel stocker le nom. |
nameLength | Longueur du tableau de noms fourni. |
Renvoie
Nombre de caractères copiés, sans tenir compte de la valeur de terminaison nulle. |
Pour les éléments complexes, cette fonction renvoie le nom du sous-élément au niveau de l'index spécifié.
rsElementGetSubElementNameLength : longueur du nom d'un sous-élément
uint32_t rsElementGetSubElementNameLength(rs_element e, uint32_t index); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à partir duquel vous souhaitez obtenir des données. |
---|---|
indice | Index du sous-élément. |
Renvoie
Longueur du nom du sous-élément, y compris le suffixe nul. |
Pour les éléments complexes, cette fonction renvoie la longueur du nom du sous-élément au niveau de l'index spécifié.
rsElementGetSubElementOffsetBytes : décalage du sous-élément instancié
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, index uint32_t); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à partir duquel vous souhaitez obtenir des données. |
---|---|
indice | Index du sous-élément. |
Renvoie
Décalage en octets. |
Cette fonction renvoie la position relative de l'instanciation du sous-élément spécifié dans l'instanciation de l'élément.
Par exemple, si l'élément décrit un float 32 bits suivi d'un entier 32 bits, le décalage renvoyé pour le premier sera 0 et le second 4.
rsElementGetVectorSize : taille vectorielle de l'élément
uint32_t rsElementGetVectorSize(rs_element e); | Ajouté au niveau d'API 16 |
Paramètres
e | Élément à partir duquel vous souhaitez obtenir des données. |
---|
Renvoie
Longueur du vecteur d'élément. |
Renvoie la taille vectorielle de l'élément. Si l'élément ne représente pas un vecteur, la valeur 1 est renvoyée.
rsGetAllocation : renvoie l'allocation pour un pointeur donné
rs_allocation rsGetAllocation(const void* p); |
Obsolète. Cette fonction est obsolète et sera supprimée du SDK dans une prochaine version.
Renvoie l'allocation pour un pointeur donné. Le pointeur doit pointer vers une allocation valide. Les résultats ne sont pas définis si le pointeur ne provient pas d'une allocation valide.
rsIsObject : rechercher un handle vide
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_mesh v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_program_fragment v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_program_raster v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_program_store v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_program_vertex v); | Lors de la compilation pour 32 bits. Supprimé du niveau d'API 23 ou supérieur |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
Renvoie la valeur "true" si le handle contient une référence non nulle.
Cette fonction ne vérifie pas que le pointeur interne utilisé dans le handle pointe vers un objet valide réel. Elle vérifie uniquement la valeur nulle.
Cette fonction permet de vérifier l'élément renvoyé par rsElementGetSubElement() ou de voir si rsClearObject() a été appelé sur un handle.
rsSamplerGetAnisotropy : Anisotropie de l'échantillonneur
float rsSamplerGetAnisotropy(rs_sampler s); | Ajouté au niveau d'API 16 |
Obtenez l'anisotropie de l'échantillonneur.
Voir android.renderscript.S.
rsSamplerGetMagnification : valeur d'agrandissement de l'échantillonneur
rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | Ajouté au niveau d'API 16 |
Permet d'obtenir la valeur d'agrandissement de l'échantillonneur.
Voir android.renderscript.S.
rsSamplerGetMinification : valeur de minimisation de l'échantillonneur
rs_sampler_value rsSamplerGetMinification(rs_sampler s); | Ajouté au niveau d'API 16 |
Permet d'obtenir la valeur de minimisation de l'échantillonneur.
Voir android.renderscript.S.
rsSamplerGetWrapS : valeur S d'encapsulation de l'échantillonneur
rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | Ajouté au niveau d'API 16 |
Permet d'obtenir la valeur S de l'encapsulation de l'échantillonneur.
Voir android.renderscript.S.
rsSamplerGetWrapT : valeur T de l'encapsulation de l'échantillonneur
rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | Ajouté au niveau d'API 16 |
Obtenez la valeur T encapsulée de l'échantillonneur.
Voir android.renderscript.S.