include: Make inline helpers compatible with NONAMELESSUNION.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-06-24 16:25:37 +03:00 committed by Alexandre Julliard
parent 6ea77ccfeb
commit 6aeb891d52
1 changed files with 7 additions and 6 deletions

View File

@ -805,23 +805,24 @@ cpp_quote("#endif")
cpp_quote("static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.ll = 0 + (1 << 16);")
cpp_quote(" *(LONG *)&f32 = 0 + (1 << 16);")
cpp_quote(" return f32;")
cpp_quote("}")
cpp_quote("")
cpp_quote("static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.ll = 0;")
cpp_quote(" DXVA2_Fixed32 f32 = {{{ 0 }}};")
cpp_quote(" return f32;")
cpp_quote("}")
cpp_quote("")
cpp_quote("static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {")
cpp_quote(" return (float)f32.Value + (float)f32.Fraction / (1 << 16);")
cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
cpp_quote(" return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);")
cpp_quote("}")
cpp_quote("")
cpp_quote("static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {")
cpp_quote(" DXVA2_Fixed32 f32;")
cpp_quote(" f32.Value = ((ULONG) (f * (1 << 16))) >> 16;")
cpp_quote(" f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
cpp_quote(" _f32->Value = ((ULONG) (f * (1 << 16))) >> 16;")
cpp_quote(" _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
cpp_quote(" return f32;")
cpp_quote("}")