Concurrency::direct3d, fonctions de l’espace de noms (AMP)
Spécifications
En-tête : espace de noms amp.h : accès concurrentiel
abs
Retourne la valeur absolue de l’argument
inline int abs(int _X) restrict(amp);
Paramètres
_X
Valeur entière
Valeur de retour
Retourne la valeur absolue de l’argument.
attache
Calcule la valeur du premier argument spécifié limité à une plage définie par les deuxième et troisième arguments spécifiés.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Paramètres
_X
Valeur à limiter
_Min
Limite inférieure de la plage de pincement.
_Max
Limite supérieure de la plage de pincement.
Valeur de retour
Valeur limitée de _X
.
compte bits
Compte le nombre de bits définis dans _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Paramètres
_X
Valeur entière non signée
Valeur de retour
Retourne le nombre de bits définis dans _X
create_accelerator_view
Crée un objet accelerator_view à partir d’un pointeur vers une interface d’appareil Direct3D.
Syntaxe
accelerator_view create_accelerator_view(
IUnknown * _D3D_device
queuing_mode _Qmode = queuing_mode_automatic);
accelerator_view create_accelerator_view(
accelerator& _Accelerator,
bool _Disable_timeout
queuing_mode _Qmode = queuing_mode_automatic);
Paramètres
_Accélérateur
Accélérateur sur lequel la nouvelle accelerator_view doit être créée.
_D3D_device
Pointeur vers l’interface de l’appareil Direct3D.
_Disable_timeout
Paramètre booléen qui spécifie si le délai d’attente doit être désactivé pour le accelerator_view nouvellement créé. Cela correspond à l’indicateur de D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT pour la création d’appareils Direct3D et est utilisé pour indiquer si le système d’exploitation doit autoriser l’exécution de charges de travail qui prennent plus de 2 secondes sans réinitialiser l’appareil par le mécanisme de détection et de récupération du délai d’attente Windows. L’utilisation de cet indicateur est recommandée si vous devez effectuer des tâches fastidieuses sur le accelerator_view.
_Qmode
Queuing_mode à utiliser pour le accelerator_view nouvellement créé. Ce paramètre a la valeur queuing_mode_automatic
par défaut .
Valeur de retour
Objet accelerator_view
créé à partir de l’interface d’appareil Direct3D passée.
Notes
Cette fonction crée un accelerator_view
objet à partir d’un pointeur existant vers une interface d’appareil Direct3D. Si l’appel de fonction réussit, le nombre de références du paramètre est incrémenté au moyen d’un AddRef
appel à l’interface. Vous pouvez libérer en toute sécurité l’objet lorsqu’il n’est plus nécessaire dans votre code DirectX. Si l’appel de méthode échoue, une runtime_exception est levée.
L’objet accelerator_view
que vous créez à l’aide de cette fonction est thread safe. Vous devez synchroniser l’utilisation simultanée de l’objet accelerator_view
. L’utilisation simultanée non synchronisée de l’objet accelerator_view
et de l’interface ID3D11Device brute entraîne un comportement non défini.
Le runtime AMP C++ fournit des informations d’erreur détaillées en mode débogage à l’aide de la couche Debug D3D si vous utilisez l’indicateur D3D11_CREATE_DEVICE_DEBUG
.
d3d_access_lock
Acquérir un verrou sur un accelerator_view pour effectuer en toute sécurité des opérations D3D sur les ressources partagées avec le accelerator_view. Les accelerator_view et toutes les ressources AMP C++ associées à cette accelerator_view prennent ce verrou en interne lors de l’exécution d’opérations et bloquent alors qu’un autre thread contient le verrou d’accès D3D. Ce verrou n’est pas récursif : il n’est pas défini de comportement pour appeler cette fonction à partir d’un thread qui contient déjà le verrou. Il n’est pas défini de comportement pour effectuer des opérations sur le accelerator_view ou tout conteneur de données associé au accelerator_view à partir du thread qui contient le verrou d’accès D3D. Consultez également scoped_d3d_access_lock, une classe de style RAII pour un verrou d’accès D3D basé sur l’étendue.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Paramètres
_Av
Accelerator_view à verrouiller.
d3d_access_try_lock
Essayez d’acquérir le verrou d’accès D3D sur un accelerator_view sans bloquer.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Paramètres
_Av
Accelerator_view à verrouiller.
Valeur de retour
true si le verrou a été acquis ou false s’il est actuellement détenu par un autre thread.
d3d_access_unlock
Relâchez le verrou d’accès D3D sur la accelerator_view donnée. Si le thread appelant ne tient pas le verrou sur le accelerator_view les résultats ne sont pas définis.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Paramètres
_Av
Accelerator_view pour laquelle le verrou doit être libéré.
firstbithigh
Obtient l’emplacement du premier bit défini dans _X, en commençant par le bit de l’ordre le plus élevé et en se déplaçant vers le bit de l’ordre le plus bas.
inline int firstbithigh(int _X) restrict(amp);
Paramètres
_X
Valeur entière
Valeur de retour
Emplacement du premier bit défini
firstbitlow
Obtient l’emplacement du premier bit défini dans _X, en commençant par le bit de l’ordre le plus bas et en travaillant vers le bit de l’ordre le plus élevé.
inline int firstbitlow(int _X) restrict(amp);
Paramètres
_X
Valeur entière
Valeur de retour
Retourne l’emplacement du premier bit défini
get_buffer
Obtenez l’interface de mémoire tampon Direct3D sous-jacente au tableau spécifié.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Paramètres
value_type
Type des éléments dans le tableau.
_Rang
Rang du tableau.
_Tableau
Tableau sur un accelerator_view Direct3D pour lequel l’interface de mémoire tampon Direct3D sous-jacente est retournée.
Valeur de retour
Pointeur d’interface IUnknown correspondant à la mémoire tampon Direct3D sous-jacente au tableau.
get_device
Obtenez l’interface d’appareil D3D sous-jacente à un accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Paramètres
Av
L’accelerator_view D3D pour laquelle l’interface d’appareil D3D sous-jacente est retournée.
Valeur retournée
Pointeur IUnknown
d’interface de l’appareil D3D sous-jacent au accelerator_view.
imax
Déterminer la valeur numérique maximale des arguments
inline int imax(
int _X,
int _Y) restrict(amp);
Paramètres
_X
Valeur entière
_Y
Valeur entière
Valeur de retour
Retourne la valeur numérique maximale des arguments
Administrateur
Déterminer la valeur numérique minimale des arguments
inline int imin(
int _X,
int _Y) restrict(amp);
Paramètres
_X
Valeur entière
_Y
Valeur entière
Valeur de retour
Retourner la valeur numérique minimale des arguments
is_timeout_disabled
Retourne un indicateur booléen indiquant si le délai d’attente est désactivé pour la accelerator_view spécifiée. Cela correspond à l’indicateur de D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT pour la création d’appareils Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Paramètres
_Accelerator_view
La accelerator_view pour laquelle le paramètre de délai d’expiration désactivé doit être interrogé.
Valeur de retour
Indicateur booléen indiquant si le délai d’attente est désactivé pour la accelerator_view spécifiée.
mad
Calcule le produit du premier et du deuxième argument spécifié, puis ajoute le troisième argument spécifié.
inline float mad(
float _X,
float _Y,
float _Z) restrict(amp);
inline double mad(
double _X,
double _Y,
double _Z) restrict(amp);
inline int mad(
int _X,
int _Y,
int _Z) restrict(amp);
inline unsigned int mad(
unsigned int _X,
unsigned int _Y,
unsigned int _Z) restrict(amp);
Paramètres
_X
Premier argument spécifié.
_Y
Deuxième argument spécifié.
_Z
Troisième argument spécifié.
Valeur de retour
Résultat de _X
* _Y
+ _Z
.
make_array
Créez un tableau à partir d’un pointeur d’interface de mémoire tampon Direct3D.
template<
typename value_type,
int _Rank
>
array<value_type, _Rank> make_array(
const extent<_Rank>& _Extent,
const Concurrency::accelerator_view& _Rv,
IUnknown* _D3D_buffer) ;
Paramètres
value_type
Type d’élément du tableau à créer.
_Rang
Rang du tableau à créer.
_Étendue
Étendue qui décrit la forme de l’agrégat de tableau.
_Rv
Vue accélérateur D3D sur laquelle le tableau doit être créé.
_D3D_buffer
Pointeur d’interface IUnknown de la mémoire tampon D3D à partir duquel créer le tableau.
Valeur de retour
Tableau créé à l’aide de la mémoire tampon Direct3D fournie.
noise
Génère une valeur aléatoire à l’aide de l’algorithme de bruit Perlin
inline float noise(float _X) restrict(amp);
Paramètres
_X
Valeur à virgule flottante à partir de laquelle générer le bruit Perlin
Valeur de retour
Retourne la valeur du bruit Perlin dans une plage comprise entre -1 et 1
radians
Convertit _X de degrés en radians
inline float radians(float _X) restrict(amp);
Paramètres
_X
Valeur à virgule flottante
Valeur de retour
Retourne _X convertie de degrés en radians
rcp
Calcule la réciproque de l’argument spécifié à l’aide d’une approximation rapide.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Paramètres
_X
Valeur pour laquelle calculer la réciproque.
Valeur de retour
Réciproque de l’argument spécifié.
reversebits
Inverse l’ordre des bits dans _X
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Paramètres
_X
Valeur entière non signée
Valeur de retour
Retourne la valeur avec l’ordre de bits inversé dans _X
saturate
Pinces _X dans la plage de 0 à 1
inline float saturate(float _X) restrict(amp);
Paramètres
_X
Valeur à virgule flottante
Valeur de retour
Retourne _X limitées dans la plage de 0 à 1
sign
Détermine le signe de l’argument spécifié.
inline int sign(int _X) restrict(amp);
Paramètres
_X
Valeur entière
Valeur de retour
Signe de l’argument.
smoothstep
Retourne une interpolation hermite lisse comprise entre 0 et 1, si _X se trouve dans la plage [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Paramètres
_Min
Valeur à virgule flottante
_Max
Valeur à virgule flottante
_X
Valeur à virgule flottante
Valeur de retour
Retourne 0 si _X est inférieur à _Min ; 1 si _X est supérieur à _Max ; sinon, une valeur comprise entre 0 et 1 si _X se trouve dans la plage [_Min, _Max]
step
Compare deux valeurs, en retournant 0 ou 1 en fonction de la valeur supérieure
inline float step(
float _Y,
float _X) restrict(amp);
Paramètres
_Y
Valeur à virgule flottante
_X
Valeur à virgule flottante
Valeur de retour
Retourne 1 si la _X est supérieure ou égale à _Y ; sinon, 0
umax
Déterminer la valeur numérique maximale des arguments
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Paramètres
_X
Valeur entière
_Y
Valeur entière
Valeur de retour
Retourne la valeur numérique maximale des arguments
umin
Déterminer la valeur numérique minimale des arguments
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Paramètres
_X
Valeur entière
_Y
Valeur entière
Valeur de retour
Retourner la valeur numérique minimale des arguments