Fonctions des caractéristiques de l'objet RenderScript

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
aAllocation à 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.
indiceIndex 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.
indiceIndex 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.
indiceIndex du sous-élément.
nomAdresse du tableau dans lequel stocker le nom.
nameLengthLongueur 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.
indiceIndex 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.
indiceIndex 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.