Changeset 39602 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Wine/wined3d/vboxext.h
- Timestamp:
- Dec 14, 2011 11:12:17 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Wine/wined3d/vboxext.h
r38363 r39602 17 17 #define ___VBOXEXT_H__ 18 18 19 #include <windows.h> 19 #ifdef VBOX_WINE_WITHOUT_LIBWINE 20 # include <windows.h> 21 #endif 20 22 #include <iprt/cdefs.h> 21 22 23 23 24 HRESULT VBoxExtCheckInit(); 24 25 HRESULT VBoxExtCheckTerm(); 25 #if 0 26 #if defined(VBOX_WINE_WITH_SINGLE_CONTEXT) || defined(VBOX_WINE_WITH_SINGLE_SWAPCHAIN_CONTEXT) 27 # ifndef VBOX_WITH_WDDM 26 28 /* Windows destroys HDC created by a given thread when the thread is terminated 27 29 * this leads to a mess-up in Wine & Chromium code in some situations, e.g. … … 30 32 HDC VBoxExtGetDC(HWND hWnd); 31 33 int 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. */ 41 void VBoxExtReleaseContextAsync(struct wined3d_context *context); 32 42 #endif 33 43
Note:
See TracChangeset
for help on using the changeset viewer.