XMFLOAT3PK 結構 (directxpackedvector.h)
描述以 X 和 Y 元件儲存為 11 位浮點數的 3D 向量,以及儲存為 10 位浮點值的 Z 元件。
如需在 C++ 中程式設計時可使用 XMFLOAT3PK
的其他功能清單,例如建構函式和運算符,請參閱 XMFLOAT3PK Extensions。
語法
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;
};
成員
6 xm
x 元件的 6 位 mantissa。
5 xe
x 元件的 5 位偏差指數。
6 ym
y 元件的 6 位 mantissa。
5 ye
y 元件的5位偏差指數。
5 zm
z 元件的 5 位 mantissa。
5 ze
z元件的5位偏差指數。
v
表示 3D 向量的無符號 32 位整數。
的預設建構函式 XMFLOAT3PK
。
XMFLOAT3PK的預設建構函式。
void XMFLOAT3PK ( const XMFLOAT3PK & unnamedParam1)
的建構函式 XMFLOAT3PK
。
XMFLOAT3PK的建構函式。
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK ( XMFLOAT3PK && unnamedParam1)
將 向量元件數據從 一個 實例 XMFLOAT3SE
指派給 目前的 實例 XMFLOAT3SE
。
這個運算子會將向量元件數據從 一個 實例 指派給 目前的 實例 XMFLOAT3SE
XMFLOAT3SE。
XMFLOAT3PK & operator= ( XMFLOAT3PK && unnamedParam1)
將 向量元件數據從 一個 實例 XMFLOAT3PK
指派給 目前的 實例 XMFLOAT3PK
。
這個運算子會將向量元件數據從 一個 實例 指派給 目前的 實例 XMFLOAT3PK
XMFLOAT3PK。
void XMFLOAT3PK ( uint32_t Packed) noexcept
從變數初始化 的新實例 XMFLOAT3PK
, uint32_t
其中包含封裝格式的元件數據。
這個建構函式會從uint32_t
包含封裝格式之元件數據的變數,初始化 XMFLOAT3PK 的新實例。
void XMFLOAT3PK ( float _x、float _y、float _z) noexcept
從三float
個自變數初始化 的新實例XMFLOAT3PK
。
這個建構函式會從三float
個自變數初始化 XMFLOAT3PK 的新實例。
void XMFLOAT3PK ( const float *pArray) noexcept
從三float
個項目數位自變數初始化 XMFLOAT3PK 的新實例。
這個建構函式會從三個元素float
數位自變數初始化 XMFLOAT3PK 的新實例。
傳回的實例 uint32_t
,其中包含封裝格式之 XMFLOAT3PK
實例的元件。
這個運算符會傳回 的實例 uint32_t
,其中包含封裝格式之 XMFLOAT3PK 實例的元件。
XMFLOAT3PK & operator= ( uint32_t Packed) noexcept
這個運算子會將 封裝在 實例 uint32_t
中的向量元件數據指派給目前的 XMFLOAT3PK 實例。
備註
沒有符號位。 這表示所有部分有效位數都是正數。 z 元件會儲存在最重要的位,而 x 元件會儲存在最不重要的位,如下所示:
(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]
或詳細資料:
- v 的位 0-5 是 x 元件浮點值的 6 位 mantissa:結構的 xm 成員。
- v 的位 6-10 是x 元件浮點值的 5 位指數,其為 結構的 xe 成員。
- v 的位 11-16 是 y 元件浮點值的 6 位 mantissa:結構的 ym 成員。
- v 的位 17-21 是 y 元件浮點值的 5 位指數:結構的 ye 成員。
- v 的位 22-26 是 z 元件浮點值的 5 位 mantissa:結構的 zm 成員。
- v 的位 27-31 是 z 元件浮點值的 5 位指數:結構的 ze 成員。
XMFLOAT3PK
可以使用 XMLoadFloat3PK 載入 XMVECTOR 實例。
的XMVECTOR
實例可以使用 XMStoreFloat3PK 儲存到 的XMFLOAT3PK
實例中。
MIN_F10 / MIN_F11 = 6.10352e-5
MAX_F10 = 64512
MAX_F11 = 65024
命名空間: 使用 DirectX::P ackedVector
平臺需求
Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。規格需求
標頭 | directxpackedvector.h |