Add adapter LUID to EGL vendor string.

This is so Chrome can create another D3D device on the same adapter that can share resources with ANGLE's D3D device.
Review URL: https://codereview.appspot.com/9225046

git-svn-id: http://angleproject.googlecode.com/svn/trunk@2210 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/common/version.h b/src/common/version.h
index a4a9597..48ab500 100644
--- a/src/common/version.h
+++ b/src/common/version.h
@@ -1,7 +1,7 @@
 #define MAJOR_VERSION 1
 #define MINOR_VERSION 0
 #define BUILD_VERSION 0
-#define BUILD_REVISION 2209
+#define BUILD_REVISION 2210
 
 #define STRINGIFY(x) #x
 #define MACRO_STRINGIFY(x) STRINGIFY(x)
diff --git a/src/libEGL/Display.cpp b/src/libEGL/Display.cpp
index d2388ef..52d5b75 100644
--- a/src/libEGL/Display.cpp
+++ b/src/libEGL/Display.cpp
@@ -319,6 +319,7 @@
     }
 
     initExtensionString();
+    initVendorString();
 
     static const TCHAR windowName[] = TEXT("AngleHiddenWindow");
     static const TCHAR className[] = TEXT("STATIC");
@@ -1244,6 +1245,27 @@
     return mExtensionString.c_str();
 }
 
+void Display::initVendorString()
+{
+    mVendorString = "Google Inc.";
+
+    if (mD3d9Ex)
+    {
+        LUID adapterLuid = {0};
+        mD3d9Ex->GetAdapterLUID(mAdapter, &adapterLuid);
+
+        char adapterLuidString[64];
+        sprintf_s(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart);
+
+        mVendorString += adapterLuidString;
+    }
+}
+
+const char *Display::getVendorString() const
+{
+    return mVendorString.c_str();
+}
+
 bool Display::shareHandleSupported() const 
 {
     // PIX doesn't seem to support using share handles, so disable them.
diff --git a/src/libEGL/Display.h b/src/libEGL/Display.h
index a9238f9..42d0e73 100644
--- a/src/libEGL/Display.h
+++ b/src/libEGL/Display.h
@@ -102,6 +102,7 @@
 
     bool isD3d9ExDevice() const { return mD3d9Ex != NULL; }
     const char *getExtensionString() const;
+    const char *getVendorString() const;
     bool shareHandleSupported() const;
 
     virtual IDirect3DVertexShader9 *createVertexShader(const DWORD *function, size_t length);
@@ -163,6 +164,9 @@
     void initExtensionString();
     std::string mExtensionString;
 
+    void initVendorString();
+    std::string mVendorString;
+
     typedef HRESULT (WINAPI *D3DCompileFunc)(LPCVOID pSrcData,
                                              SIZE_T SrcDataSize,
                                              LPCSTR pSourceName,
diff --git a/src/libEGL/libEGL.cpp b/src/libEGL/libEGL.cpp
index 25df1c8..564e605 100644
--- a/src/libEGL/libEGL.cpp
+++ b/src/libEGL/libEGL.cpp
@@ -178,9 +178,9 @@
           case EGL_CLIENT_APIS:
             return success("OpenGL_ES");
           case EGL_EXTENSIONS:
-            return display->getExtensionString();
+            return success(display->getExtensionString());
           case EGL_VENDOR:
-            return success("Google Inc.");
+            return success(display->getVendorString());
           case EGL_VERSION:
             return success("1.4 (ANGLE " VERSION_STRING ")");
         }