From: Liu Hao lh_mouse@126.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50836 Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- include/dxva2api.idl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/dxva2api.idl b/include/dxva2api.idl index 99c93518428..31cacbdcbd0 100644 --- a/include/dxva2api.idl +++ b/include/dxva2api.idl @@ -815,13 +815,15 @@ cpp_quote(" return f32;") cpp_quote("}") cpp_quote("") cpp_quote("static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {") -cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;") +cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;") +cpp_quote(" fields *_f32 = (fields *)(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(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;") +cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;") +cpp_quote(" fields *_f32 = (fields *)(void *)&f32;") cpp_quote(" _f32->Value = ((ULONG) (f * (1 << 16))) >> 16;") cpp_quote(" _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;") cpp_quote(" return f32;")
Hi Nikolay,
On 3/22/21 8:25 AM, Nikolay Sivov wrote:
From: Liu Hao lh_mouse@126.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50836 Signed-off-by: Nikolay Sivov nsivov@codeweavers.com
include/dxva2api.idl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/dxva2api.idl b/include/dxva2api.idl index 99c93518428..31cacbdcbd0 100644 --- a/include/dxva2api.idl +++ b/include/dxva2api.idl @@ -815,13 +815,15 @@ cpp_quote(" return f32;") cpp_quote("}") cpp_quote("") cpp_quote("static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {") -cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;") +cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;") +cpp_quote(" fields *_f32 = (fields *)(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(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;") +cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;") +cpp_quote(" fields *_f32 = (fields *)(void *)&f32;") cpp_quote(" _f32->Value = ((ULONG) (f * (1 << 16))) >> 16;") cpp_quote(" _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;") cpp_quote(" return f32;")
I wonder if we could just avoid nameless mess in the first place. I sent an alternative solution for consideration.
Thanks, Jacek