Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: win8/metro_driver/direct3d_helper.cc

Issue 1815463002: Remove win8/metro_driver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « win8/metro_driver/direct3d_helper.h ('k') | win8/metro_driver/display_properties.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: win8/metro_driver/direct3d_helper.cc
diff --git a/win8/metro_driver/direct3d_helper.cc b/win8/metro_driver/direct3d_helper.cc
deleted file mode 100644
index b19c57d1f1bc2a52a11bcab597bd7743df4537db..0000000000000000000000000000000000000000
--- a/win8/metro_driver/direct3d_helper.cc
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2012 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 "stdafx.h"
-#include <corewindow.h>
-#include <windows.applicationmodel.core.h>
-#include <windows.graphics.display.h>
-
-#include "win8/metro_driver/direct3d_helper.h"
-#include "base/logging.h"
-#include "base/win/windows_version.h"
-#include "ui/gfx/win/dpi.h"
-#include "win8/metro_driver/winrt_utils.h"
-
-namespace {
-
-void CheckIfFailed(HRESULT hr) {
- DCHECK(!FAILED(hr));
- if (FAILED(hr))
- DVLOG(0) << "Direct3D call failed, hr = " << hr;
-}
-
-float ConvertDipsToPixels(float dips) {
- return floor(dips * gfx::GetDPIScale() + 0.5f);
-}
-
-}
-
-namespace metro_driver {
-
-Direct3DHelper::Direct3DHelper() {
-}
-
-Direct3DHelper::~Direct3DHelper() {
-}
-
-void Direct3DHelper::Initialize(winui::Core::ICoreWindow* window) {
- window_ = window;
- CreateDeviceResources();
- CreateWindowSizeDependentResources();
-}
-
-// TODO(scottmg): Need to handle resize messages and recreation.
-
-void Direct3DHelper::CreateDeviceResources() {
- unsigned int creation_flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;
- D3D_FEATURE_LEVEL feature_levels[] = {
- D3D_FEATURE_LEVEL_11_1,
- D3D_FEATURE_LEVEL_11_0,
- D3D_FEATURE_LEVEL_10_1,
- D3D_FEATURE_LEVEL_10_0,
- D3D_FEATURE_LEVEL_9_3,
- D3D_FEATURE_LEVEL_9_2,
- D3D_FEATURE_LEVEL_9_1,
- };
-
- mswr::ComPtr<ID3D11Device> device;
- mswr::ComPtr<ID3D11DeviceContext> context;
- CheckIfFailed(
- D3D11CreateDevice(
- nullptr,
- D3D_DRIVER_TYPE_HARDWARE,
- nullptr,
- creation_flags,
- feature_levels,
- ARRAYSIZE(feature_levels),
- D3D11_SDK_VERSION,
- &device,
- &feature_level_,
- &context));
- CheckIfFailed(device.As(&d3d_device_));
- CheckIfFailed(context.As(&d3d_context_));
-}
-
-void Direct3DHelper::CreateWindowSizeDependentResources() {
- float window_width = 0;
- float window_height = 0;
-
- if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
- // Windows 8 returns in DIPs.
- CheckIfFailed(window_->get_Bounds(&window_bounds_));
- window_width = ConvertDipsToPixels(window_width);
- window_height = ConvertDipsToPixels(window_height);
- }
-
- // TODO(scottmg): Orientation.
-
- if (swap_chain_ != nullptr) {
- // TODO(scottmg): Resize if it already exists.
- NOTIMPLEMENTED();
- } else {
- DXGI_SWAP_CHAIN_DESC1 swap_chain_desc = { 0 };
- swap_chain_desc.Width = window_width;
- swap_chain_desc.Height = window_height;
- swap_chain_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
- swap_chain_desc.Stereo = false;
- swap_chain_desc.SampleDesc.Count = 1;
- swap_chain_desc.SampleDesc.Quality = 0;
- swap_chain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- swap_chain_desc.BufferCount = 2; // TODO(scottmg): Probably 1 is fine.
- swap_chain_desc.Scaling = DXGI_SCALING_NONE;
- swap_chain_desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
- swap_chain_desc.Flags = 0;
-
- mswr::ComPtr<IDXGIDevice1> dxgi_device;
- CheckIfFailed(d3d_device_.As(&dxgi_device));
-
- mswr::ComPtr<IDXGIAdapter> dxgi_adapter;
- CheckIfFailed(dxgi_device->GetAdapter(&dxgi_adapter));
-
- mswr::ComPtr<IDXGIFactory2> dxgi_factory;
- CheckIfFailed(dxgi_adapter->GetParent(
- __uuidof(IDXGIFactory2), &dxgi_factory));
-
- if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
- // On Win8 we need the CoreWindow interface to create the Swapchain.
- CheckIfFailed(dxgi_factory->CreateSwapChainForCoreWindow(
- d3d_device_.Get(),
- reinterpret_cast<IUnknown*>(window_),
- &swap_chain_desc,
- nullptr,
- &swap_chain_));
- } else {
- // On Win7 we need the raw HWND to create the Swapchain.
- mswr::ComPtr<ICoreWindowInterop> interop;
- CheckIfFailed(window_->QueryInterface(interop.GetAddressOf()));
- HWND window = NULL;
- interop->get_WindowHandle(&window);
-
- swap_chain_desc.Scaling = DXGI_SCALING_STRETCH;
- swap_chain_desc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-
- CheckIfFailed(dxgi_factory->CreateSwapChainForHwnd(
- d3d_device_.Get(),
- window,
- &swap_chain_desc,
- nullptr,
- nullptr,
- &swap_chain_));
- // Prevent DXGI from monitoring an application message queue and thus
- // attempt mode changes. For e.g. Alt + Enter by default causes
- // DXGI to attempt to take the window fullscreen.
- CheckIfFailed(dxgi_factory->MakeWindowAssociation(
- window, DXGI_MWA_NO_WINDOW_CHANGES));
- }
- }
-}
-
-} // namespace metro_driver
« no previous file with comments | « win8/metro_driver/direct3d_helper.h ('k') | win8/metro_driver/display_properties.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698