diff options
Diffstat (limited to 'media/mf/d3d_util.cc')
-rw-r--r-- | media/mf/d3d_util.cc | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/media/mf/d3d_util.cc b/media/mf/d3d_util.cc deleted file mode 100644 index a6639e4..0000000 --- a/media/mf/d3d_util.cc +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "media/mf/d3d_util.h" - -#include <d3d9.h> -#include <dxva2api.h> - -#include "base/scoped_comptr_win.h" - -namespace media { - -IDirect3DDeviceManager9* CreateD3DDevManager(HWND video_window, - IDirect3D9** direct3d, - IDirect3DDevice9** device) { - ScopedComPtr<IDirect3DDeviceManager9> dev_manager; - ScopedComPtr<IDirect3D9> d3d; - d3d.Attach(Direct3DCreate9(D3D_SDK_VERSION)); - if (d3d == NULL) { - LOG(ERROR) << "Failed to create D3D9"; - return NULL; - } - D3DPRESENT_PARAMETERS present_params = {0}; - - // Once we know the dimensions, we need to reset using - // AdjustD3DDeviceBackBufferDimensions(). - present_params.BackBufferWidth = 0; - present_params.BackBufferHeight = 0; - present_params.BackBufferFormat = D3DFMT_UNKNOWN; - present_params.BackBufferCount = 1; - present_params.SwapEffect = D3DSWAPEFFECT_DISCARD; - present_params.hDeviceWindow = video_window; - present_params.Windowed = TRUE; - present_params.Flags = D3DPRESENTFLAG_VIDEO; - present_params.FullScreen_RefreshRateInHz = 0; - present_params.PresentationInterval = 0; - - ScopedComPtr<IDirect3DDevice9> temp_device; - - // D3DCREATE_HARDWARE_VERTEXPROCESSING specifies hardware vertex processing. - // (Is it even needed for just video decoding?) - HRESULT hr = d3d->CreateDevice(D3DADAPTER_DEFAULT, - D3DDEVTYPE_HAL, - NULL, - D3DCREATE_HARDWARE_VERTEXPROCESSING, - &present_params, - temp_device.Receive()); - if (FAILED(hr)) { - LOG(ERROR) << "Failed to create D3D Device"; - return NULL; - } - UINT dev_manager_reset_token = 0; - hr = DXVA2CreateDirect3DDeviceManager9(&dev_manager_reset_token, - dev_manager.Receive()); - if (FAILED(hr)) { - LOG(ERROR) << "Couldn't create D3D Device manager"; - return NULL; - } - hr = dev_manager->ResetDevice(temp_device.get(), dev_manager_reset_token); - if (FAILED(hr)) { - LOG(ERROR) << "Failed to set device to device manager"; - return NULL; - } - *direct3d = d3d.Detach(); - *device = temp_device.Detach(); - return dev_manager.Detach(); -} - -bool AdjustD3DDeviceBackBufferDimensions(IDirect3DDevice9* device, - HWND video_window, - int width, - int height) { - D3DPRESENT_PARAMETERS present_params = {0}; - present_params.BackBufferWidth = width; - present_params.BackBufferHeight = height; - present_params.BackBufferFormat = D3DFMT_UNKNOWN; - present_params.BackBufferCount = 1; - present_params.SwapEffect = D3DSWAPEFFECT_DISCARD; - present_params.hDeviceWindow = video_window; - present_params.Windowed = TRUE; - present_params.Flags = D3DPRESENTFLAG_VIDEO; - present_params.FullScreen_RefreshRateInHz = 0; - present_params.PresentationInterval = 0; - - return SUCCEEDED(device->Reset(&present_params)) ? true : false; -} - -} // namespace media |