XMFLOAT3PK structure (directxpackedvector.h)
Décrit un vecteur 3D avec des composants X et Y stockés en tant que nombre à virgule flottante de 11 bits, et un composant Z stocké sous forme de valeur à virgule flottante de 10 bits.
Pour obtenir la liste des fonctionnalités supplémentaires, telles que les constructeurs et les opérateurs, disponibles XMFLOAT3PK
lors de la programmation en C++, consultez extensions XMFLOAT3PK.
Syntaxe
struct XMFLOAT3PK {
union {
struct {
uint32_t xm : 6;
uint32_t xe : 5;
uint32_t ym : 6;
uint32_t ye : 5;
uint32_t zm : 5;
uint32_t ze : 5;
};
uint32_t v;
};
void XMFLOAT3PK();
void XMFLOAT3PK(
const XMFLOAT3PK & unnamedParam1
);
XMFLOAT3PK & operator=(
const XMFLOAT3PK & unnamedParam1
);
void XMFLOAT3PK(
XMFLOAT3PK && unnamedParam1
);
XMFLOAT3PK & operator=(
XMFLOAT3PK && unnamedParam1
);
void XMFLOAT3PK(
uint32_t Packed
) noexcept;
void XMFLOAT3PK(
float _x,
float _y,
float _z
) noexcept;
void XMFLOAT3PK(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMFLOAT3PK & operator=(
uint32_t Packed
) noexcept;
};
Membres
6 xm
Mantisse 6 bits pour le composant x.
5 xe
Exposant biaisé 5 bits pour le composant x.
6 ym
Mantisse 6 bits pour le composant y.
5 ye
Exposant biaisé 5 bits pour le composant y.
5 zm
Mantisse 5 bits pour le composant z.
5 ze
Exposant biaisé 5 bits pour le composant z.
v
Entier 32 bits non signé représentant le vecteur 3D.
Constructeur par défaut pour XMFLOAT3PK
.
Constructeur par défaut pour XMFLOAT3PK.
void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)
Constructeur pour XMFLOAT3PK
.
Constructeur pour XMFLOAT3PK.
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)
Affecte les données du composant vectoriel d’un instance de XMFLOAT3SE
à la instance actuelle de XMFLOAT3SE
.
Cet opérateur affecte les données du composant vectoriel d’un instance de XMFLOAT3SE à la instance actuelle de XMFLOAT3SE
.
XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)
Affecte les données du composant vectoriel d’un instance de XMFLOAT3PK
à la instance actuelle de XMFLOAT3PK
.
Cet opérateur affecte les données du composant vectoriel d’un instance de XMFLOAT3PK à la instance actuelle de XMFLOAT3PK
.
void XMFLOAT3PK( uint32_t Packed) noexcept
Initialise une nouvelle instance de à partir d’une XMFLOAT3PK
uint32_t
variable contenant des données de composant dans un format packed.
Ce constructeur initialise une nouvelle instance de XMFLOAT3PK à partir d’une uint32_t
variable contenant des données de composant dans un format packé.
void XMFLOAT3PK( float _x, float _y, float _z) noexcept
Initialise une nouvelle instance de à partir de XMFLOAT3PK
trois float
arguments.
Ce constructeur initialise une nouvelle instance de XMFLOAT3PK à partir de trois float
arguments.
void XMFLOAT3PK( const float *pArray) noexcept
Initialise une nouvelle instance de XMFLOAT3PK à partir d’un argument de tableau à trois élémentsfloat
.
Ce constructeur initialise une nouvelle instance de XMFLOAT3PK à partir d’un argument de tableau à trois élémentsfloat
.
void, opérateur uint32_t() noexcept
Retourne une instance de uint32_t
contenir les composants du XMFLOAT3PK
instance dans un format compressé.
Cet opérateur retourne une instance de uint32_t
contenir les composants du instance XMFLOAT3PK dans un format packé.
XMFLOAT3PK & operator=( uint32_t Packed) noexcept
Cet opérateur affecte les données du composant vectoriel emballées dans un instance de uint32_t
à la instance actuelle de XMFLOAT3PK.
Remarques
Il n’y a pas de bits de signe. Cela signifie que tous les nombres de précision partielle sont positifs. Le composant z est stocké dans les bits les plus significatifs, et le composant x est stocké dans les bits les moins significatifs comme suit :
(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]
Ou en détail :
- Les bits 0-5 de v sont les mantisses 6 bits de la valeur à virgule flottante du composant x : le membre xm de la structure.
- Les bits 6-10 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant x , membre xe de la structure.
- Les bits 11 à 16 de v sont les mantisses 6 bits de la valeur à virgule flottante du composant y : le membre ym de la structure.
- Les bits 17-21 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant y : le membre ye de la structure.
- Les bits 22-26 de v sont les mantisses 5 bits de la valeur à virgule flottante du composant z : le membre zm de la structure.
- Les bits 27-31 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant z : le membre ze de la structure.
XMFLOAT3PK
peut être chargé dans des instances de XMVECTOR à l’aide de XMLoadFloat3PK.
Les instances de XMVECTOR
peuvent être stockées dans un instance de XMFLOAT3PK
avec XMStoreFloat3PK.
MIN_F10 / MIN_F11 = 6,10352e-5
MAX_F10 = 64512
MAX_F11 = 65024
Noms: Utiliser DirectX ::P ackedVector
Configuration requise pour la plateforme
Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 avec le SDK Windows pour Windows 8. Pris en charge pour les applications de bureau Win32, les applications du Windows Store et les applications Windows Phone 8.Configuration requise
En-tête | directxpackedvector.h |