Index: content/gpu/gpu_info_collector.h |
=================================================================== |
--- content/gpu/gpu_info_collector.h (revision 173266) |
+++ content/gpu/gpu_info_collector.h (working copy) |
@@ -10,41 +10,60 @@ |
#include "content/common/content_export.h" |
#include "content/public/common/gpu_info.h" |
+struct IDirect3D9; |
+ |
namespace gpu_info_collector { |
-// Collects basic GPU info without creating a GL/DirectX context (and without |
-// the danger of crashing), including vendor_id and device_id. |
-// This is called at browser process startup time. |
+// Populate variables with necessary graphics card information. |
+// Returns true on success. |
+bool CollectGraphicsInfo(content::GPUInfo* gpu_info); |
+ |
+// Similar to CollectGraphicsInfo, only this collects a subset of variables |
+// without creating a GL/DirectX context (and without the danger of crashing). |
// The subset each platform collects may be different. |
-CONTENT_EXPORT bool CollectBasicGraphicsInfo( |
+CONTENT_EXPORT bool CollectPreliminaryGraphicsInfo( |
content::GPUInfo* gpu_info); |
-// Create a GL/DirectX context and collect related info. |
-// This is called at GPU process startup time. |
-// Returns true on success. |
-bool CollectContextGraphicsInfo(content::GPUInfo* gpu_info); |
+#if defined(OS_WIN) |
+// Windows provides two ways of doing graphics so we need two ways of |
+// collecting info based on what's on a user's machine. |
+// The selection between the two methods is done in the cc file. |
-#if defined(OS_WIN) |
+// A D3D argument is passed in for testing purposes |
+CONTENT_EXPORT bool CollectGraphicsInfoD3D(IDirect3D9* d3d, |
+ content::GPUInfo* gpu_info); |
+ |
+// Collects D3D driver version/date through registry lookup. |
+// Note that this does not require a D3D context. |
+// device_id here is the raw data in DISPLAY_DEVICE. |
+CONTENT_EXPORT bool CollectDriverInfoD3D(const std::wstring& device_id, |
+ content::GPUInfo* gpu_info); |
+ |
// Collect the DirectX Disagnostics information about the attached displays. |
bool GetDxDiagnostics(content::DxDiagNode* output); |
#endif // OS_WIN |
-// Create a GL context and collect GL strings and versions. |
+// All platforms have a GL version for collecting information |
CONTENT_EXPORT bool CollectGraphicsInfoGL(content::GPUInfo* gpu_info); |
+// Collect GL and Shading language version information |
+bool CollectGLVersionInfo(content::GPUInfo* gpu_info); |
+ |
+// Platform specific method for collecting vendor and device ids |
+bool CollectVideoCardInfo(content::GPUInfo* gpu_info); |
+ |
// Each platform stores the driver version on the GL_VERSION string differently |
bool CollectDriverInfoGL(content::GPUInfo* gpu_info); |
-// Merge GPUInfo from CollectContextGraphicsInfo into basic GPUInfo. |
-// This is platform specific, depending on which info are collected at which |
-// stage. |
-void MergeGPUInfo(content::GPUInfo* basic_gpu_info, |
- const content::GPUInfo& context_gpu_info); |
+// Advanced Micro Devices has interesting configurations on laptops were |
+// there are two videocards that can alternatively a given process output. |
+enum AMDVideoCardType { |
+ UNKNOWN, |
+ STANDALONE, |
+ INTEGRATED, |
+ SWITCHABLE |
+}; |
-// MergeGPUInfo() when GL driver is used. |
-void MergeGPUInfoGL(content::GPUInfo* basic_gpu_info, |
- const content::GPUInfo& context_gpu_info); |
- |
} // namespace gpu_info_collector |
#endif // CONTENT_GPU_GPU_INFO_COLLECTOR_H_ |