diff options
Diffstat (limited to 'content/common/gpu/gpu_info.cc')
-rw-r--r-- | content/common/gpu/gpu_info.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/content/common/gpu/gpu_info.cc b/content/common/gpu/gpu_info.cc new file mode 100644 index 0000000..f067baf --- /dev/null +++ b/content/common/gpu/gpu_info.cc @@ -0,0 +1,63 @@ +// Copyright (c) 2011 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 "content/common/gpu/gpu_info.h" + +GPUInfo::GPUInfo() + : finalized(false), + vendor_id(0), + device_id(0), + can_lose_context(false) { +} + +GPUInfo::~GPUInfo() { } + +bool GPUInfo::Merge(const GPUInfo& other) { + if (device_id != other.device_id || vendor_id != other.vendor_id) { + *this = other; + return true; + } + + bool changed = false; + if (!finalized) { + finalized = other.finalized; + initialization_time = other.initialization_time; + if (driver_vendor.empty() && !other.driver_vendor.empty()) { + driver_vendor = other.driver_vendor; + changed = true; + } + if (driver_version.empty() && !other.driver_version.empty()) { + driver_version = other.driver_version; + changed = true; + } + if (driver_date.empty() && !other.driver_date.empty()) { + driver_date = other.driver_date; + changed = true; + } + if (pixel_shader_version.empty()) + pixel_shader_version = other.pixel_shader_version; + if (vertex_shader_version.empty()) + vertex_shader_version = other.vertex_shader_version; + if (gl_version.empty()) + gl_version = other.gl_version; + if (gl_version_string.empty()) + gl_version_string = other.gl_version_string; + if (gl_vendor.empty()) + gl_vendor = other.gl_vendor; + if (gl_renderer.empty() && !other.gl_renderer.empty()) { + gl_renderer = other.gl_renderer; + changed = true; + } + if (gl_extensions.empty()) + gl_extensions = other.gl_extensions; + can_lose_context = other.can_lose_context; +#if defined(OS_WIN) + if (dx_diagnostics.values.size() == 0 && + dx_diagnostics.children.size() == 0) + dx_diagnostics = other.dx_diagnostics; +#endif + } + return changed; +} + |