In wine, Visual2Vtbl
``` typedef struct IDCompositionVisual2Vtbl { BEGIN_INTERFACE
/*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDCompositionVisual2 *This, REFIID riid, void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)( IDCompositionVisual2 *This);
ULONG (STDMETHODCALLTYPE *Release)( IDCompositionVisual2 *This);
/*** IDCompositionVisual methods ***/ HRESULT (STDMETHODCALLTYPE *SetOffsetX)( IDCompositionVisual2 *This, float offset_x);
HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)( IDCompositionVisual2 *This, IDCompositionAnimation *animation);
HRESULT (STDMETHODCALLTYPE *SetOffsetY)( IDCompositionVisual2 *This, float offset_y); ```
setOffsetX (float *) at offset 0x18 [image: visual2vtbl.png] But in windows 0x18 is setOffsetX (Animation *)
Is this correct?
On 6/11/25 20:16, zhengxianwei wrote:
In wine, Visual2Vtbl
typedef struct IDCompositionVisual2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDCompositionVisual2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDCompositionVisual2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDCompositionVisual2 *This); /*** IDCompositionVisual methods ***/ HRESULT (STDMETHODCALLTYPE *SetOffsetX)( IDCompositionVisual2 *This, float offset_x); HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)( IDCompositionVisual2 *This, IDCompositionAnimation *animation); HRESULT (STDMETHODCALLTYPE *SetOffsetY)( IDCompositionVisual2 *This, float offset_y);
setOffsetX (float *) at offset 0x18 visual2vtbl.png But in windows 0x18 is setOffsetX (Animation *)
Is this correct?
No. This is a bug. It's addressed by https://gitlab.winehq.org/zhiyi/wine/-/commit/1ef17ccd021d7b549abeabdbcf9e14.... Please see https://gitlab.winehq.org/zhiyi/wine/-/commits/bug-23698-react-native if you want the latest dcomp work.
cool job, thank you
On Wed, Jun 11, 2025 at 8:51 PM Zhiyi Zhang zzhang@codeweavers.com wrote:
On 6/11/25 20:16, zhengxianwei wrote:
In wine, Visual2Vtbl
typedef struct IDCompositionVisual2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDCompositionVisual2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDCompositionVisual2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDCompositionVisual2 *This); /*** IDCompositionVisual methods ***/ HRESULT (STDMETHODCALLTYPE *SetOffsetX)( IDCompositionVisual2 *This, float offset_x); HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)( IDCompositionVisual2 *This, IDCompositionAnimation *animation); HRESULT (STDMETHODCALLTYPE *SetOffsetY)( IDCompositionVisual2 *This, float offset_y);
setOffsetX (float *) at offset 0x18 visual2vtbl.png But in windows 0x18 is setOffsetX (Animation *)
Is this correct?
No. This is a bug. It's addressed by https://gitlab.winehq.org/zhiyi/wine/-/commit/1ef17ccd021d7b549abeabdbcf9e14... . Please see https://gitlab.winehq.org/zhiyi/wine/-/commits/bug-23698-react-native if you want the latest dcomp work.
On 6/11/25 20:16, zhengxianwei wrote:
In wine, Visual2Vtbl
typedef struct IDCompositionVisual2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDCompositionVisual2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDCompositionVisual2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDCompositionVisual2 *This); /*** IDCompositionVisual methods ***/ HRESULT (STDMETHODCALLTYPE *SetOffsetX)( IDCompositionVisual2 *This, float offset_x); HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)( IDCompositionVisual2 *This, IDCompositionAnimation *animation); HRESULT (STDMETHODCALLTYPE *SetOffsetY)( IDCompositionVisual2 *This, float offset_y);
setOffsetX (float *) at offset 0x18 visual2vtbl.png But in windows 0x18 is setOffsetX (Animation *)
This screenshot is from disassembling native dcomp.dll. You are not allowed to do this if you want to send your patches to Wine.
Is this correct?
Due to some reasons, I may not submit patches to Wine, but thank you for letting me know about this rule — I will follow it
On Wed, Jun 11, 2025 at 8:57 PM Zhiyi Zhang zzhang@codeweavers.com wrote:
On 6/11/25 20:16, zhengxianwei wrote:
In wine, Visual2Vtbl
typedef struct IDCompositionVisual2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDCompositionVisual2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDCompositionVisual2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDCompositionVisual2 *This); /*** IDCompositionVisual methods ***/ HRESULT (STDMETHODCALLTYPE *SetOffsetX)( IDCompositionVisual2 *This, float offset_x); HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)( IDCompositionVisual2 *This, IDCompositionAnimation *animation); HRESULT (STDMETHODCALLTYPE *SetOffsetY)( IDCompositionVisual2 *This, float offset_y);
setOffsetX (float *) at offset 0x18 visual2vtbl.png But in windows 0x18 is setOffsetX (Animation *)
This screenshot is from disassembling native dcomp.dll. You are not allowed to do this if you want to send your patches to Wine.
Is this correct?