Permalink
Browse files

Windows: Refactor and extend MythRenderD3D9 for multithreaded DXVA2 s…

…upport.

- Add IDirect3DDeviceManager9 support when DXVA2 is available.

When DXVA2 support is not available, we simply 'acquire' the device by returning a pointer to it and locking our mutex.
If device manager functionality is available, we create a devicemanager and use this to acquire the device.
The device manager is also made available to other objects to allow them safe access to the underlying device (which will be used be DXVA2 decoder and video processor objects).
Device manager locking is not recursive, hence several private functions have also been refactored to avoid lockups when using DXVA2.

- Add a convenience class to acquire and automatically release the device (D3D9Locker).
- Use QLibrary to load and resolve D3D9 (and DXVA2) libs.
- Create the D3D9 device with multithreaded support.
  • Loading branch information...
mark-kendall
mark-kendall committed Mar 4, 2011
1 parent 889f533 commit 2e2a90074aacf2bd70e992a47ec4afb82251bcc6
Showing with 336 additions and 117 deletions.
  1. +295 −111 mythtv/libs/libmythui/mythrender_d3d9.cpp
  2. +41 −6 mythtv/libs/libmythui/mythrender_d3d9.h
Oops, something went wrong.

0 comments on commit 2e2a900

Please sign in to comment.