Partager via


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_automaticpar 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

Voir aussi

Concurrency::direct3d, espace de noms