VirtualBox

Ignore:
Timestamp:
Dec 14, 2011 11:12:17 AM (13 years ago)
Author:
vboxsync
Message:

wine/XPDM: 1. Additional swapchain creation fixes 2. De-libwine'ize wined3d 3. Single context per swapchain 4. wine & crOgl current context sync fixes 5. Proper Get/ReleaseDC handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Wine/wined3d/vboxext.h

    r38363 r39602  
    1717#define ___VBOXEXT_H__
    1818
    19 #include <windows.h>
     19#ifdef VBOX_WINE_WITHOUT_LIBWINE
     20# include <windows.h>
     21#endif
    2022#include <iprt/cdefs.h>
    21 
    2223
    2324HRESULT VBoxExtCheckInit();
    2425HRESULT VBoxExtCheckTerm();
    25 #if 0
     26#if defined(VBOX_WINE_WITH_SINGLE_CONTEXT) || defined(VBOX_WINE_WITH_SINGLE_SWAPCHAIN_CONTEXT)
     27# ifndef VBOX_WITH_WDDM
    2628/* Windows destroys HDC created by a given thread when the thread is terminated
    2729 * this leads to a mess-up in Wine & Chromium code in some situations, e.g.
     
    3032HDC VBoxExtGetDC(HWND hWnd);
    3133int VBoxExtReleaseDC(HWND hWnd, HDC hDC);
     34# endif
     35/* We need to do a VBoxTlsRefRelease for the current thread context on thread exit to avoid memory leaking
     36 * Calling VBoxTlsRefRelease may result in a call to context dtor callback, which is supposed to be run under wined3d lock.
     37 * We can not acquire a wined3d lock in DllMain since this would result in a lock order violation, which may result in a deadlock.
     38 * In other words, wined3d may internally call Win32 API functions which result in a DLL lock acquisition while holding wined3d lock.
     39 * So lock order should always be "wined3d lock" -> "dll lock".
     40 * To avoid possible deadlocks we make an asynchronous call to a worker thread to make a context release from there. */
     41void VBoxExtReleaseContextAsync(struct wined3d_context *context);
    3242#endif
    3343
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette