lldxhardware.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:3k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file lldxhardware.h
  3.  * @brief LLDXHardware definition
  4.  *
  5.  * $LicenseInfo:firstyear=2001&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2001-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LL_LLDXHARDWARE_H
  33. #define LL_LLDXHARDWARE_H
  34. #include <map>
  35. #include "stdtypes.h"
  36. #include "llstring.h"
  37. #include "llsd.h"
  38. class LLVersion
  39. {
  40. public:
  41. LLVersion();
  42. BOOL set(const std::string &version_string);
  43. S32 getField(const S32 field_num);
  44. protected:
  45. std::string mVersionString;
  46. S32 mFields[4];
  47. BOOL mValid;
  48. };
  49. class LLDXDriverFile
  50. {
  51. public:
  52. std::string dump();
  53. public:
  54. std::string mFilepath;
  55. std::string mName;
  56. std::string mVersionString;
  57. LLVersion mVersion;
  58. std::string mDateString;
  59. };
  60. class LLDXDevice
  61. {
  62. public:
  63. ~LLDXDevice();
  64. std::string dump();
  65. LLDXDriverFile *findDriver(const std::string &driver);
  66. public:
  67. std::string mName;
  68. std::string mPCIString;
  69. std::string mVendorID;
  70. std::string mDeviceID;
  71. typedef std::map<std::string, LLDXDriverFile *> driver_file_map_t;
  72. driver_file_map_t mDriverFiles;
  73. };
  74. class LLDXHardware
  75. {
  76. public:
  77. LLDXHardware();
  78. void setWriteDebugFunc(void (*func)(const char*));
  79. void cleanup();
  80. // Returns TRUE on success.
  81. // vram_only TRUE does a "light" probe.
  82. BOOL getInfo(BOOL vram_only);
  83. S32 getVRAM() const { return mVRAM; }
  84. LLSD getDisplayInfo();
  85. // Find a particular device that matches the following specs.
  86. // Empty strings indicate that you don't care.
  87. // You can separate multiple devices with '|' chars to indicate you want
  88. // ANY of them to match and return.
  89. // LLDXDevice *findDevice(const std::string &vendor, const std::string &devices);
  90. // std::string dumpDevices();
  91. public:
  92. typedef std::map<std::string, LLDXDevice *> device_map_t;
  93. // device_map_t mDevices;
  94. protected:
  95. S32 mVRAM;
  96. };
  97. extern void (*gWriteDebug)(const char* msg);
  98. extern LLDXHardware gDXHardware;
  99. #endif // LL_LLDXHARDWARE_H