Enable WebGL on Windows.
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jun 2014 22:22:23 +0000 (22:22 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jun 2014 22:22:23 +0000 (22:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=133503

Reviewed by Brent Fulgham.

Source/ThirdParty/ANGLE:
* changes.diff
Recorded additional changes from ANGLE.
* ANGLE.vcxproj/libEGL.vcxproj:
* ANGLE.vcxproj/libEGL.vcxproj.filters:
* ANGLE.vcxproj/libGLESv2.vcxproj:
* ANGLE.vcxproj/libGLESv2.vcxproj.filters:
* include/EGL/egl.h:
* include/EGL/eglsoftlinking.h: Added.
* include/GLES2/gl2.h:
* include/GLES2/gl2softlinking.h: Added.
Resurrected soft linking headers from r153664.
* src/libGLESv2/renderer/VertexBuffer.cpp:
(rx::VertexBufferInterface::directStoragePossible):
Compile fix for Win64.

Source/WebCore:
No new tests, but we should enable the webgl tests soon.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markContextChanged):
Check if the context and RenderBox are accelerated to use accelerated code path.
* html/canvas/WebGLRenderingContext.h:
Disable accelerated compositing on WebGL canvases until that works.
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
Compile fix after r166563.

Source/WebKit:
* WebKit.vcxproj/WebKit.sln:
Build ANGLE projects and add them as a dependency for linking WebKit.dll.
* WebKit.vcxproj/WebKit/WebKitCommon.props:
Link to ANGLE libraries to get EGL, GLESv2, and GLSL translator symbols.
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Added 64-bit linker symbol.

Source/WTF:
* wtf/FeatureDefines.h:
Enable WebGL for AppleWin and WinCairo ports.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169601 268f45cc-cd09-0410-ab3c-d52691b4dbfc

21 files changed:
Source/ThirdParty/ANGLE/ANGLE.vcxproj/libEGL.vcxproj
Source/ThirdParty/ANGLE/ANGLE.vcxproj/libEGL.vcxproj.filters
Source/ThirdParty/ANGLE/ANGLE.vcxproj/libGLESv2.vcxproj
Source/ThirdParty/ANGLE/ANGLE.vcxproj/libGLESv2.vcxproj.filters
Source/ThirdParty/ANGLE/ChangeLog
Source/ThirdParty/ANGLE/changes.diff
Source/ThirdParty/ANGLE/include/EGL/egl.h
Source/ThirdParty/ANGLE/include/EGL/eglsoftlinking.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/include/GLES2/gl2.h
Source/ThirdParty/ANGLE/include/GLES2/gl2softlinking.h [new file with mode: 0644]
Source/ThirdParty/ANGLE/src/libGLESv2/renderer/VertexBuffer.cpp
Source/WTF/ChangeLog
Source/WTF/wtf/FeatureDefines.h
Source/WebCore/ChangeLog
Source/WebCore/html/canvas/WebGLRenderingContext.cpp
Source/WebCore/html/canvas/WebGLRenderingContext.h
Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp
Source/WebKit/ChangeLog
Source/WebKit/WebKit.vcxproj/WebKit.sln
Source/WebKit/WebKit.vcxproj/WebKit/WebKitCommon.props
Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in

index 6e61b20..26020f1 100755 (executable)
     <ClInclude Include="..\include\EGL\egl.h" />
     <ClInclude Include="..\include\EGL\eglext.h" />
     <ClInclude Include="..\include\EGL\eglplatform.h" />
+    <ClInclude Include="..\include\EGL\eglsoftlinking.h" />
     <ClInclude Include="..\src\common\version.h" />
     <ClInclude Include="..\src\libEGL\Config.h" />
     <ClInclude Include="..\src\libEGL\Display.h" />
index 4e3aff9..8f24ac4 100755 (executable)
@@ -44,6 +44,9 @@
     <ClInclude Include="..\src\common\version.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\include\EGL\eglsoftlinking.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\src\libEGL\Config.cpp">
index dc6fe33..b19bb9e 100755 (executable)
     <ClCompile Include="..\src\libGLESv2\Uniform.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\include\GLES2\gl2softlinking.h" />
     <ClInclude Include="..\src\common\debug.h" />
     <ClInclude Include="..\src\common\event_tracer.h" />
     <ClInclude Include="..\src\common\system.h" />
index a249433..93dd663 100755 (executable)
     <ClInclude Include="..\src\libGLESv2\renderer\d3d\HLSLCompiler.h">
       <Filter>Source Files\Renderer\d3d</Filter>
     </ClInclude>
+    <ClInclude Include="..\include\GLES2\gl2softlinking.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\src\libGLESv2\renderer\d3d11\shaders\Passthrough11.hlsl">
index 8403699..74d763e 100644 (file)
@@ -1,3 +1,25 @@
+2014-06-04  Alex Christensen  <achristensen@webkit.org>
+
+        Enable WebGL on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=133503
+
+        Reviewed by Brent Fulgham.
+
+        * changes.diff
+        Recorded additional changes from ANGLE.
+        * ANGLE.vcxproj/libEGL.vcxproj:
+        * ANGLE.vcxproj/libEGL.vcxproj.filters:
+        * ANGLE.vcxproj/libGLESv2.vcxproj:
+        * ANGLE.vcxproj/libGLESv2.vcxproj.filters:
+        * include/EGL/egl.h:
+        * include/EGL/eglsoftlinking.h: Added.
+        * include/GLES2/gl2.h:
+        * include/GLES2/gl2softlinking.h: Added.
+        Resurrected soft linking headers from r153664.
+        * src/libGLESv2/renderer/VertexBuffer.cpp:
+        (rx::VertexBufferInterface::directStoragePossible):
+        Compile fix for Win64.
+
 2014-05-02  Alex Christensen  <achristensen@webkit.org>
 
         Update ANGLE Windows build.
index a044a25..b477ef4 100644 (file)
@@ -1,3 +1,51 @@
+diff --git a/include/EGL/egl.h b/include/EGL/egl.h
+index b55e6c6..eeb16af 100644
+--- a/include/EGL/egl.h
++++ b/include/EGL/egl.h
+@@ -246,6 +246,10 @@ typedef void *EGLClientBuffer;
+ /* EGL Functions */
++#if defined(_MSC_VER) && !defined(ANGLE_WEBKIT_WIN)
++#include <EGL/eglsoftlinking.h>
++#else
++
+ EGLAPI EGLint EGLAPIENTRY eglGetError(void);
+ EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
+@@ -322,6 +326,8 @@ typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+ EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
+        eglGetProcAddress(const char *procname);
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/include/GLES2/gl2.h b/include/GLES2/gl2.h
+index c2d8357..9ab5832 100644
+--- a/include/GLES2/gl2.h
++++ b/include/GLES2/gl2.h
+@@ -470,6 +470,10 @@ typedef khronos_ssize_t  GLsizeiptr;
+  * GL core functions.
+  *-----------------------------------------------------------------------*/
++#if defined(_MSC_VER) && !defined(ANGLE_WEBKIT_WIN)
++#include <GLES2/gl2softlinking.h>
++#else
++
+ GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
+ GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
+ GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
+@@ -613,6 +617,8 @@ GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloa
+ GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
+ GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
 diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
 index 7970bfa..b716c6f 100644
 --- a/include/GLSLANG/ShaderLang.h
@@ -391,3 +439,16 @@ index 8a9fb04..46db788 100644
  }
  
  void InfoLog::reset()
+diff --git a/src/libGLESv2/renderer/VertexBuffer.cpp b/src/libGLESv2/renderer/VertexBuffer.cpp
+index 4e732e1..20050e1 100644
+--- a/src/libGLESv2/renderer/VertexBuffer.cpp
++++ b/src/libGLESv2/renderer/VertexBuffer.cpp
+@@ -166,7 +166,7 @@ bool VertexBufferInterface::directStoragePossible(const gl::VertexAttribute &att
+     //  (Undocumented, and experimentally confirmed)
+     unsigned int outputElementSize;
+     getVertexBuffer()->getSpaceRequired(attrib, 1, 0, &outputElementSize);
+-    size_t alignment = std::min(static_cast<size_t>(outputElementSize), 4u);
++    size_t alignment = std::min<size_t>(static_cast<size_t>(outputElementSize), 4);
+     bool isAligned = (static_cast<size_t>(attrib.stride()) % alignment == 0) &&
+                      (static_cast<size_t>(attrib.mOffset) % alignment == 0);
index b55e6c6..eeb16af 100644 (file)
@@ -246,6 +246,10 @@ typedef void *EGLClientBuffer;
 
 /* EGL Functions */
 
+#if defined(_MSC_VER) && !defined(ANGLE_WEBKIT_WIN)
+#include <EGL/eglsoftlinking.h>
+#else
+
 EGLAPI EGLint EGLAPIENTRY eglGetError(void);
 
 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
@@ -322,6 +326,8 @@ typedef void (*__eglMustCastToProperFunctionPointerType)(void);
 EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
        eglGetProcAddress(const char *procname);
 
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Source/ThirdParty/ANGLE/include/EGL/eglsoftlinking.h b/Source/ThirdParty/ANGLE/include/EGL/eglsoftlinking.h
new file mode 100644 (file)
index 0000000..40038b2
--- /dev/null
@@ -0,0 +1,63 @@
+/* 
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "SoftLinking.h"
+
+SOFT_LINK_LIBRARY(libEGL)
+
+SOFT_LINK(libEGL, eglGetError, EGLint, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglGetDisplay, EGLDisplay, EGLAPIENTRY, (EGLNativeDisplayType display_id), (display_id));
+SOFT_LINK(libEGL, eglInitialize, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLint *major, EGLint *minor), (dpy, major, minor));
+SOFT_LINK(libEGL, eglTerminate, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy), (dpy));
+SOFT_LINK(libEGL, eglQueryString, const char *, EGLAPIENTRY, (EGLDisplay dpy, EGLint name), (dpy, name));
+SOFT_LINK(libEGL, eglGetConfigs, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config), (dpy, configs, config_size, num_config));
+SOFT_LINK(libEGL, eglChooseConfig, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config), (dpy, attrib_list, configs, config_size, num_config));
+SOFT_LINK(libEGL, eglGetConfigAttrib, EGLint, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value), (dpy, config, attribute, value));
+SOFT_LINK(libEGL, eglCreateWindowSurface, EGLSurface, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list), (dpy, config, win, attrib_list));
+SOFT_LINK(libEGL, eglCreatePbufferSurface, EGLSurface, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list), (dpy, config, attrib_list));
+SOFT_LINK(libEGL, eglCreatePixmapSurface, EGLSurface, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list), (dpy, config, pixmap, attrib_list));
+SOFT_LINK(libEGL, eglDestroySurface, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface), (dpy, surface));
+SOFT_LINK(libEGL, eglQuerySurface, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value), (dpy, surface, attribute, value));
+SOFT_LINK(libEGL, eglBindAPI, EGLBoolean, EGLAPIENTRY, (EGLenum api), (api));
+SOFT_LINK(libEGL, eglQueryAPI, EGLenum, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglWaitClient, EGLBoolean, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglReleaseThread, EGLBoolean, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglCreatePbufferFromClientBuffer, EGLSurface, EGLAPIENTRY, (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list), (dpy, buftype, buffer, config, attrib_list));
+SOFT_LINK(libEGL, eglSurfaceAttrib, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value), (dpy, surface, attribute, value));
+SOFT_LINK(libEGL, eglBindTexImage, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface, EGLint buffer), (dpy, surface, buffer));
+SOFT_LINK(libEGL, eglReleaseTexImage, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface, EGLint buffer), (dpy, surface, buffer));
+SOFT_LINK(libEGL, eglSwapInterval, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLint interval), (dpy, interval));
+SOFT_LINK(libEGL, eglCreateContext, EGLContext, EGLAPIENTRY, (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list), (dpy, config, share_context, attrib_list));
+SOFT_LINK(libEGL, eglDestroyContext, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLContext ctx), (dpy, ctx));
+SOFT_LINK(libEGL, eglMakeCurrent, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx), (dpy, draw, read, ctx));
+SOFT_LINK(libEGL, eglGetCurrentContext, EGLContext, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglGetCurrentSurface, EGLSurface, EGLAPIENTRY, (EGLint readdraw), (readdraw));
+SOFT_LINK(libEGL, eglGetCurrentDisplay, EGLDisplay, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglQueryContext, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value), (dpy, ctx, attribute, value));
+SOFT_LINK(libEGL, eglWaitGL, EGLBoolean, EGLAPIENTRY, (void), ());
+SOFT_LINK(libEGL, eglWaitNative, EGLBoolean, EGLAPIENTRY, (EGLint engine), (engine));
+SOFT_LINK(libEGL, eglSwapBuffers, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface), (dpy, surface));
+SOFT_LINK(libEGL, eglCopyBuffers, EGLBoolean, EGLAPIENTRY, (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target), (dpy, surface, target));
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+SOFT_LINK(libEGL, eglGetProcAddress, __eglMustCastToProperFunctionPointerType, EGLAPIENTRY, (const char *procname), (procname));
index c2d8357..9ab5832 100644 (file)
@@ -470,6 +470,10 @@ typedef khronos_ssize_t  GLsizeiptr;
  * GL core functions.
  *-----------------------------------------------------------------------*/
 
+#if defined(_MSC_VER) && !defined(ANGLE_WEBKIT_WIN)
+#include <GLES2/gl2softlinking.h>
+#else
+
 GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
 GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
 GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
@@ -613,6 +617,8 @@ GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloa
 GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
 GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
 
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/Source/ThirdParty/ANGLE/include/GLES2/gl2softlinking.h b/Source/ThirdParty/ANGLE/include/GLES2/gl2softlinking.h
new file mode 100644 (file)
index 0000000..17b115c
--- /dev/null
@@ -0,0 +1,170 @@
+/* 
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "SoftLinking.h"
+
+SOFT_LINK_LIBRARY(libGLESv2)
+
+SOFT_LINK(libGLESv2, glActiveTexture, void, GL_APIENTRY, (GLenum texture), (texture));
+SOFT_LINK(libGLESv2, glAttachShader, void, GL_APIENTRY, (GLuint program, GLuint shader), (program, shader));
+SOFT_LINK(libGLESv2, glBindAttribLocation, void, GL_APIENTRY, (GLuint program, GLuint index, const GLchar* name), (program, index, name));
+SOFT_LINK(libGLESv2, glBindBuffer, void, GL_APIENTRY, (GLenum target, GLuint buffer), (target, buffer));
+SOFT_LINK(libGLESv2, glBindFramebuffer, void, GL_APIENTRY, (GLenum target, GLuint framebuffer), (target, framebuffer));
+SOFT_LINK(libGLESv2, glBindRenderbuffer, void, GL_APIENTRY, (GLenum target, GLuint renderbuffer), (target, renderbuffer));
+SOFT_LINK(libGLESv2, glBindTexture, void, GL_APIENTRY, (GLenum target, GLuint texture), (target, texture));
+SOFT_LINK(libGLESv2, glBlendColor, void, GL_APIENTRY, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red, green, blue, alpha));
+SOFT_LINK(libGLESv2, glBlendEquation, void, GL_APIENTRY, (GLenum mode), (mode));
+SOFT_LINK(libGLESv2, glBlendEquationSeparate, void, GL_APIENTRY, (GLenum modeRGB, GLenum modeAlpha), (modeRGB, modeAlpha));
+SOFT_LINK(libGLESv2, glBlendFunc, void, GL_APIENTRY, (GLenum sfactor, GLenum dfactor), (sfactor, dfactor));
+SOFT_LINK(libGLESv2, glBlendFuncSeparate, void, GL_APIENTRY, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha), (srcRGB, dstRGB, srcAlpha, dstAlpha));
+SOFT_LINK(libGLESv2, glBufferData, void, GL_APIENTRY, (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage), (target, size, data, usage));
+SOFT_LINK(libGLESv2, glBufferSubData, void, GL_APIENTRY, (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data), (target, offset, size, data));
+SOFT_LINK(libGLESv2, glCheckFramebufferStatus, GLenum, GL_APIENTRY, (GLenum target), (target));
+SOFT_LINK(libGLESv2, glClear, void, GL_APIENTRY, (GLbitfield mask), (mask));
+SOFT_LINK(libGLESv2, glClearColor, void, GL_APIENTRY, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red, green, blue, alpha));
+SOFT_LINK(libGLESv2, glClearDepthf, void, GL_APIENTRY, (GLclampf depth), (depth));
+SOFT_LINK(libGLESv2, glClearStencil, void, GL_APIENTRY, (GLint s), (s));
+SOFT_LINK(libGLESv2, glColorMask, void, GL_APIENTRY, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha), (red, green, blue, alpha));
+SOFT_LINK(libGLESv2, glCompileShader, void, GL_APIENTRY, (GLuint shader), (shader));
+SOFT_LINK(libGLESv2, glCompressedTexImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data), (target, level, internalformat, width, height, border, imageSize, data));
+SOFT_LINK(libGLESv2, glCompressedTexSubImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data), (target, level, xoffset, yoffset, width, height, format, imageSize, data));
+SOFT_LINK(libGLESv2, glCopyTexImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), (target, level, internalformat, x, y, width, height, border));
+SOFT_LINK(libGLESv2, glCopyTexSubImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, x, y, width, height));
+SOFT_LINK(libGLESv2, glCreateProgram, GLuint, GL_APIENTRY, (void), ());
+SOFT_LINK(libGLESv2, glCreateShader, GLuint, GL_APIENTRY, (GLenum type), (type));
+SOFT_LINK(libGLESv2, glCullFace, void, GL_APIENTRY, (GLenum mode), (mode));
+SOFT_LINK(libGLESv2, glDeleteBuffers, void, GL_APIENTRY, (GLsizei n, const GLuint* buffers), (n, buffers));
+SOFT_LINK(libGLESv2, glDeleteFramebuffers, void, GL_APIENTRY, (GLsizei n, const GLuint* framebuffers), (n, framebuffers));
+SOFT_LINK(libGLESv2, glDeleteProgram, void, GL_APIENTRY, (GLuint program), (program));
+SOFT_LINK(libGLESv2, glDeleteRenderbuffers, void, GL_APIENTRY, (GLsizei n, const GLuint* renderbuffers), (n, renderbuffers));
+SOFT_LINK(libGLESv2, glDeleteShader, void, GL_APIENTRY, (GLuint shader), (shader));
+SOFT_LINK(libGLESv2, glDeleteTextures, void, GL_APIENTRY, (GLsizei n, const GLuint* textures), (n, textures));
+SOFT_LINK(libGLESv2, glDepthFunc, void, GL_APIENTRY, (GLenum func), (func));
+SOFT_LINK(libGLESv2, glDepthMask, void, GL_APIENTRY, (GLboolean flag), (flag));
+SOFT_LINK(libGLESv2, glDepthRangef, void, GL_APIENTRY, (GLclampf zNear, GLclampf zFar), (zNear, zFar));
+SOFT_LINK(libGLESv2, glDetachShader, void, GL_APIENTRY, (GLuint program, GLuint shader), (program, shader));
+SOFT_LINK(libGLESv2, glDisable, void, GL_APIENTRY, (GLenum cap), (cap));
+SOFT_LINK(libGLESv2, glDisableVertexAttribArray, void, GL_APIENTRY, (GLuint index), (index));
+SOFT_LINK(libGLESv2, glDrawArrays, void, GL_APIENTRY, (GLenum mode, GLint first, GLsizei count), (mode, first, count));
+SOFT_LINK(libGLESv2, glDrawElements, void, GL_APIENTRY, (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices), (mode, count, type, indices));
+SOFT_LINK(libGLESv2, glEnable, void, GL_APIENTRY, (GLenum cap), (cap));
+SOFT_LINK(libGLESv2, glEnableVertexAttribArray, void, GL_APIENTRY, (GLuint index), (index));
+SOFT_LINK(libGLESv2, glFinish, void, GL_APIENTRY, (void), ());
+SOFT_LINK(libGLESv2, glFlush, void, GL_APIENTRY, (void), ());
+SOFT_LINK(libGLESv2, glFramebufferRenderbuffer, void, GL_APIENTRY, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer), (target, attachment, renderbuffertarget, renderbuffer));
+SOFT_LINK(libGLESv2, glFramebufferTexture2D, void, GL_APIENTRY, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level), (target, attachment, textarget, texture, level));
+SOFT_LINK(libGLESv2, glFrontFace, void, GL_APIENTRY, (GLenum mode), (mode));
+SOFT_LINK(libGLESv2, glGenBuffers, void, GL_APIENTRY, (GLsizei n, GLuint* buffers), (n, buffers));
+SOFT_LINK(libGLESv2, glGenerateMipmap, void, GL_APIENTRY, (GLenum target), (target));
+SOFT_LINK(libGLESv2, glGenFramebuffers, void, GL_APIENTRY, (GLsizei n, GLuint* framebuffers), (n, framebuffers));
+SOFT_LINK(libGLESv2, glGenRenderbuffers, int, GL_APIENTRY, (GLsizei n, GLuint* renderbuffers), (n, renderbuffers));
+SOFT_LINK(libGLESv2, glGenTextures, void, GL_APIENTRY, (GLsizei n, GLuint* textures), (n, textures));
+SOFT_LINK(libGLESv2, glGetActiveAttrib, void, GL_APIENTRY, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name), (program, index, bufsize, length, size, type, name));
+SOFT_LINK(libGLESv2, glGetActiveUniform, GLenum, GL_APIENTRY, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name), (program, index, bufsize, length, size, type, name));
+SOFT_LINK(libGLESv2, glGetAttachedShaders, void, GL_APIENTRY, (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders), (program, maxcount, count, shaders));
+SOFT_LINK(libGLESv2, glGetAttribLocation, int, GL_APIENTRY, (GLuint program, const GLchar* name), (program, name));
+SOFT_LINK(libGLESv2, glGetBooleanv, void, GL_APIENTRY, (GLenum pname, GLboolean* params), (pname, params));
+SOFT_LINK(libGLESv2, glGetBufferParameteriv, void, GL_APIENTRY, (GLenum target, GLenum pname, GLint* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glGetError, GLenum, GL_APIENTRY, (void), ());
+SOFT_LINK(libGLESv2, glGetFloatv, void, GL_APIENTRY, (GLenum pname, GLfloat* params), (pname, params));
+SOFT_LINK(libGLESv2, glGetFramebufferAttachmentParameteriv, void, GL_APIENTRY, (GLenum target, GLenum attachment, GLenum pname, GLint* params), (target, attachment, pname, params));
+SOFT_LINK(libGLESv2, glGetIntegerv, void, GL_APIENTRY, (GLenum pname, GLint* params), (pname, params));
+SOFT_LINK(libGLESv2, glGetProgramiv, void, GL_APIENTRY, (GLuint program, GLenum pname, GLint* params), (program, pname, params));
+SOFT_LINK(libGLESv2, glGetProgramInfoLog, void, GL_APIENTRY, (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog), (program, bufsize, length, infolog));
+SOFT_LINK(libGLESv2, glGetRenderbufferParameteriv, void, GL_APIENTRY, (GLenum target, GLenum pname, GLint* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glGetShaderiv, void, GL_APIENTRY, (GLuint shader, GLenum pname, GLint* params), (shader, pname, params));
+SOFT_LINK(libGLESv2, glGetShaderInfoLog, void, GL_APIENTRY, (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog), (shader, bufsize, length, infolog));
+SOFT_LINK(libGLESv2, glGetShaderPrecisionFormat, void, GL_APIENTRY, (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision), (shadertype, precisiontype, range, precision));
+SOFT_LINK(libGLESv2, glGetShaderSource, void, GL_APIENTRY, (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source), (shader, bufsize, length, source));
+SOFT_LINK(libGLESv2, glGetString, const GLubyte*, GL_APIENTRY, (GLenum name), (name));
+SOFT_LINK(libGLESv2, glGetTexParameterfv, void, GL_APIENTRY, (GLenum target, GLenum pname, GLfloat* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glGetTexParameteriv, void, GL_APIENTRY, (GLenum target, GLenum pname, GLint* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glGetUniformfv, void, GL_APIENTRY, (GLuint program, GLint location, GLfloat* params), (program, location, params));
+SOFT_LINK(libGLESv2, glGetUniformiv, void, GL_APIENTRY, (GLuint program, GLint location, GLint* params), (program, location, params));
+SOFT_LINK(libGLESv2, glGetUniformLocation, int, GL_APIENTRY, (GLuint program, const GLchar* name), (program, name));
+SOFT_LINK(libGLESv2, glGetVertexAttribfv, void, GL_APIENTRY, (GLuint index, GLenum pname, GLfloat* params), (index, pname, params));
+SOFT_LINK(libGLESv2, glGetVertexAttribiv, void, GL_APIENTRY, (GLenum target, GLenum pname, GLint* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glGetVertexAttribPointerv, void, GL_APIENTRY, (GLuint index, GLenum pname, GLvoid** pointer), (index, pname, pointer));
+SOFT_LINK(libGLESv2, glHint, void, GL_APIENTRY, (GLenum target, GLenum mode), (target, mode));
+SOFT_LINK(libGLESv2, glIsBuffer, GLboolean, GL_APIENTRY, (GLuint buffer), (buffer));
+SOFT_LINK(libGLESv2, glIsEnabled, GLboolean, GL_APIENTRY, (GLenum cap), (cap));
+SOFT_LINK(libGLESv2, glIsFramebuffer, GLboolean, GL_APIENTRY, (GLuint framebuffer), (framebuffer));
+SOFT_LINK(libGLESv2, glIsProgram, GLboolean, GL_APIENTRY, (GLuint program), (program));
+SOFT_LINK(libGLESv2, glIsRenderbuffer, GLboolean, GL_APIENTRY, (GLuint renderbuffer), (renderbuffer));
+SOFT_LINK(libGLESv2, glIsShader, GLboolean, GL_APIENTRY, (GLuint shader), (shader));
+SOFT_LINK(libGLESv2, glIsTexture, GLboolean, GL_APIENTRY, (GLuint texture), (texture));
+SOFT_LINK(libGLESv2, glLineWidth, void, GL_APIENTRY, (GLfloat width), (width));
+SOFT_LINK(libGLESv2, glLinkProgram, void, GL_APIENTRY, (GLuint program), (program));
+SOFT_LINK(libGLESv2, glPixelStorei, void, GL_APIENTRY, (GLenum pname, GLint param), (pname, param));
+SOFT_LINK(libGLESv2, glPolygonOffset, void, GL_APIENTRY, (GLfloat factor, GLfloat units), (factor, units));
+SOFT_LINK(libGLESv2, glReadPixels, void, GL_APIENTRY, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels), (x, y, width, height, format, type, pixels));
+SOFT_LINK(libGLESv2, glReleaseShaderCompiler, void, GL_APIENTRY, (void), ());
+SOFT_LINK(libGLESv2, glRenderbufferStorage, void, GL_APIENTRY, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height), (target, internalformat, width, height));
+SOFT_LINK(libGLESv2, glSampleCoverage, void, GL_APIENTRY, (GLclampf value, GLboolean invert), (value, invert));
+SOFT_LINK(libGLESv2, glScissor, void, GL_APIENTRY, (GLint x, GLint y, GLsizei width, GLsizei height), (x, y, width, height));
+SOFT_LINK(libGLESv2, glShaderBinary, void, GL_APIENTRY, (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length), (n, shaders, binaryformat, binary, length));
+SOFT_LINK(libGLESv2, glShaderSource, void, GL_APIENTRY, (GLuint shader, GLsizei count, const GLchar** string, const GLint* length), (shader, count, string, length));
+SOFT_LINK(libGLESv2, glStencilFunc, void, GL_APIENTRY, (GLenum func, GLint ref, GLuint mask), (func, ref, mask));
+SOFT_LINK(libGLESv2, glStencilFuncSeparate, void, GL_APIENTRY, (GLenum face, GLenum func, GLint ref, GLuint mask), (face, func, ref, mask));
+SOFT_LINK(libGLESv2, glStencilMask, void, GL_APIENTRY, (GLuint mask), (mask));
+SOFT_LINK(libGLESv2, glStencilMaskSeparate, void, GL_APIENTRY, (GLenum face, GLuint mask), (face, mask));
+SOFT_LINK(libGLESv2, glStencilOp, void, GL_APIENTRY, (GLenum fail, GLenum zfail, GLenum zpass), (fail, zfail, zpass));
+SOFT_LINK(libGLESv2, glStencilOpSeparate, void, GL_APIENTRY, (GLenum face, GLenum fail, GLenum zfail, GLenum zpass), (face, fail, zfail, zpass));
+SOFT_LINK(libGLESv2, glTexImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels), (target, level, internalformat, width, height, border, format, type, pixels));
+SOFT_LINK(libGLESv2, glTexParameterf, void, GL_APIENTRY, (GLenum target, GLenum pname, GLfloat param), (target, pname, param));
+SOFT_LINK(libGLESv2, glTexParameterfv, void, GL_APIENTRY, (GLenum target, GLenum pname, const GLfloat* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glTexParameteri, void, GL_APIENTRY, (GLenum target, GLenum pname, GLint param), (target, pname, param));
+SOFT_LINK(libGLESv2, glTexParameteriv, void, GL_APIENTRY, (GLenum target, GLenum pname, const GLint* params), (target, pname, params));
+SOFT_LINK(libGLESv2, glTexSubImage2D, void, GL_APIENTRY, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels), (target, level, xoffset, yoffset, width, height, format, type, pixels));
+SOFT_LINK(libGLESv2, glUniform1f, void, GL_APIENTRY, (GLint location, GLfloat x), (location, x));
+SOFT_LINK(libGLESv2, glUniform1fv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLfloat* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform1i, void, GL_APIENTRY, (GLint location, GLint x), (location, x));
+SOFT_LINK(libGLESv2, glUniform1iv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLint* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform2f, void, GL_APIENTRY, (GLint location, GLfloat x, GLfloat y), (location, x, y));
+SOFT_LINK(libGLESv2, glUniform2fv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLfloat* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform2i, void, GL_APIENTRY, (GLint location, GLint x, GLint y), (location, x, y));
+SOFT_LINK(libGLESv2, glUniform2iv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLint* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform3f, void, GL_APIENTRY, (GLint location, GLfloat x, GLfloat y, GLfloat z), (location, x, y, z));
+SOFT_LINK(libGLESv2, glUniform3fv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLfloat* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform3i, void, GL_APIENTRY, (GLint location, GLint x, GLint y, GLint z), (location, x, y, z));
+SOFT_LINK(libGLESv2, glUniform3iv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLint* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform4f, void, GL_APIENTRY, (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w), (location, x, y, z, w));
+SOFT_LINK(libGLESv2, glUniform4fv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLfloat* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniform4i, void, GL_APIENTRY, (GLint location, GLint x, GLint y, GLint z, GLint w), (location, x, y, z, w));
+SOFT_LINK(libGLESv2, glUniform4iv, void, GL_APIENTRY, (GLint location, GLsizei count, const GLint* v), (location, count, v));
+SOFT_LINK(libGLESv2, glUniformMatrix2fv, void, GL_APIENTRY, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value));
+SOFT_LINK(libGLESv2, glUniformMatrix3fv, void, GL_APIENTRY, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value));
+SOFT_LINK(libGLESv2, glUniformMatrix4fv, void, GL_APIENTRY, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value));
+SOFT_LINK(libGLESv2, glUseProgram, void, GL_APIENTRY, (GLuint program), (program));
+SOFT_LINK(libGLESv2, glValidateProgram, void, GL_APIENTRY, (GLuint program), (program));
+SOFT_LINK(libGLESv2, glVertexAttrib1f, void, GL_APIENTRY, (GLuint indx, GLfloat x), (indx, x));
+SOFT_LINK(libGLESv2, glVertexAttrib1fv, void, GL_APIENTRY, (GLuint indx, const GLfloat* values), (indx, values));
+SOFT_LINK(libGLESv2, glVertexAttrib2f, void, GL_APIENTRY, (GLuint indx, GLfloat x, GLfloat y), (indx, x, y));
+SOFT_LINK(libGLESv2, glVertexAttrib2fv, void, GL_APIENTRY, (GLuint indx, const GLfloat* values), (indx, values));
+SOFT_LINK(libGLESv2, glVertexAttrib3f, void, GL_APIENTRY, (GLuint indx, GLfloat x, GLfloat y, GLfloat z), (indx, x, y, z));
+SOFT_LINK(libGLESv2, glVertexAttrib3fv, void, GL_APIENTRY, (GLuint indx, const GLfloat* values), (indx, values));
+SOFT_LINK(libGLESv2, glVertexAttrib4f, void, GL_APIENTRY, (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w), (indx, x, y, z, w));
+SOFT_LINK(libGLESv2, glVertexAttrib4fv, void, GL_APIENTRY, (GLuint indx, const GLfloat* values), (indx, values));
+SOFT_LINK(libGLESv2, glVertexAttribPointer, void, GL_APIENTRY, (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr), (indx, size, type, normalized, stride, ptr));
+SOFT_LINK(libGLESv2, glViewport, void, GL_APIENTRY, (GLint x, GLint y, GLsizei width, GLsizei height), (x, y, width, height));
index 4e732e1..20050e1 100644 (file)
@@ -166,7 +166,7 @@ bool VertexBufferInterface::directStoragePossible(const gl::VertexAttribute &att
     //  (Undocumented, and experimentally confirmed)
     unsigned int outputElementSize;
     getVertexBuffer()->getSpaceRequired(attrib, 1, 0, &outputElementSize);
-    size_t alignment = std::min(static_cast<size_t>(outputElementSize), 4u);
+    size_t alignment = std::min<size_t>(static_cast<size_t>(outputElementSize), 4);
 
     bool isAligned = (static_cast<size_t>(attrib.stride()) % alignment == 0) &&
                      (static_cast<size_t>(attrib.mOffset) % alignment == 0);
index c04cb99..f501e6a 100644 (file)
@@ -1,3 +1,13 @@
+2014-06-04  Alex Christensen  <achristensen@webkit.org>
+
+        Enable WebGL on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=133503
+
+        Reviewed by Brent Fulgham.
+
+        * wtf/FeatureDefines.h:
+        Enable WebGL for AppleWin and WinCairo ports.
+
 2014-06-01  Jer Noble  <jer.noble@apple.com>
 
         [MSE] Appends of overlapping sample data do not clear existing samples properly.
index d133042..dfa8e11 100644 (file)
 #define ENABLE_WEB_ARCHIVE 1
 #endif
 
+#if !defined(ENABLE_WEBGL)
+#define ENABLE_WEBGL 1
+#endif
+
 #endif /* PLATFORM(WIN) && !OS(WINCE) && !PLATFORM(WIN_CAIRO) */
 
 /* --------- WinCE port --------- */
 #define ENABLE_VIEW_MODE_CSS_MEDIA 0
 #endif
 
+#if !defined(ENABLE_WEBGL)
+#define ENABLE_WEBGL 1
+#endif
+
 #endif /* PLATFORM(WIN_CAIRO) */
 
 /* --------- EFL port (Unix) --------- */
index 070c27c..aefbf1f 100644 (file)
@@ -1,3 +1,21 @@
+2014-06-04  Alex Christensen  <achristensen@webkit.org>
+
+        Enable WebGL on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=133503
+
+        Reviewed by Brent Fulgham.
+
+        No new tests, but we should enable the webgl tests soon.
+
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::markContextChanged):
+        Check if the context and RenderBox are accelerated to use accelerated code path.
+        * html/canvas/WebGLRenderingContext.h:
+        Disable accelerated compositing on WebGL canvases until that works.
+        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+        (WebCore::GraphicsContext3D::reshapeFBOs):
+        Compile fix after r166563.
+
 2014-06-04  Benjamin Poulain  <benjamin@webkit.org>
 
         Regression(r169547): Crash in WebCore::styleForFirstLetter() while loading http://thenextweb.com/apple/2014/02/21/apple-confirms-acquired-testflight-creator-burstly/
index f181012..d3e0dcb 100644 (file)
@@ -683,7 +683,7 @@ void WebGLRenderingContext::markContextChanged()
 
     m_layerCleared = false;
     RenderBox* renderBox = canvas()->renderBox();
-    if (renderBox && renderBox->hasAcceleratedCompositing()) {
+    if (isAccelerated() && renderBox && renderBox->hasAcceleratedCompositing()) {
         m_markedCanvasDirty = true;
         canvas()->clearCopiedImage();
         renderBox->contentChanged(CanvasChanged);
index a22a1c6..340980c 100644 (file)
@@ -88,7 +88,12 @@ public:
     virtual ~WebGLRenderingContext();
 
     virtual bool is3d() const override { return true; }
+#if PLATFORM(WIN)
+    // FIXME: Implement accelerated 3d canvas on Windows.
+    virtual bool isAccelerated() const override { return false; }
+#else
     virtual bool isAccelerated() const override { return true; }
+#endif
 
     int drawingBufferWidth() const;
     int drawingBufferHeight() const;
index eac9ee1..c122e00 100644 (file)
@@ -110,6 +110,7 @@ bool GraphicsContext3D::reshapeFBOs(const IntSize& size)
         ::glBindTexture(GL_TEXTURE_2D, 0);
     }
 
+    Extensions3DOpenGLES* extensions = static_cast<Extensions3DOpenGLES*>(getExtensions());
     if (extensions->isImagination() && m_attrs.antialias) {
         GLint maxSampleCount;
         ::glGetIntegerv(Extensions3D::MAX_SAMPLES_IMG, &maxSampleCount); 
index b3adc18..eb4955f 100644 (file)
@@ -1,3 +1,17 @@
+2014-06-04  Alex Christensen  <achristensen@webkit.org>
+
+        Enable WebGL on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=133503
+
+        Reviewed by Brent Fulgham.
+
+        * WebKit.vcxproj/WebKit.sln:
+        Build ANGLE projects and add them as a dependency for linking WebKit.dll.
+        * WebKit.vcxproj/WebKit/WebKitCommon.props:
+        Link to ANGLE libraries to get EGL, GLESv2, and GLSL translator symbols.
+        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
+        Added 64-bit linker symbol.
+
 2014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>
 
         Roll r168668 back in.
index 6a91a7a..fab47bb 100644 (file)
@@ -54,6 +54,7 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "WebKit\WebKit.vcxproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
        ProjectSection(ProjectDependencies) = postProject
                {0F837117-8C0B-4596-A373-A37E14A01223} = {0F837117-8C0B-4596-A373-A37E14A01223}
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testRegExp", "..\..\JavaScriptCore\JavaScriptCore.vcxproj\testRegExp\testRegExp.vcxproj", "{BB16286B-AADC-46C1-BC0D-6C06F323E04B}"
@@ -880,89 +881,143 @@ Global
                {67A61940-F80B-42A0-A29D-B6DB1C27BCEE}.Release|x64.ActiveCfg = Release|x64
                {67A61940-F80B-42A0-A29D-B6DB1C27BCEE}.Release|x64.Build.0 = Release|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|Win32.ActiveCfg = Debug|Win32
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|Win32.Build.0 = Debug|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|x64.ActiveCfg = Debug|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.DebugSuffix|x64.Build.0 = Debug|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Production|Win32.ActiveCfg = Production|Win32
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Production|Win32.Build.0 = Production|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Production|x64.ActiveCfg = Production|x64
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Production|x64.Build.0 = Production|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|Win32.ActiveCfg = Release|Win32
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|Win32.Build.0 = Release|Win32
                {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x64.ActiveCfg = Release|x64
+               {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|x64.Build.0 = Release|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|Win32.ActiveCfg = Debug|Win32
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|Win32.Build.0 = Debug|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|x64.ActiveCfg = Debug|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.DebugSuffix|x64.Build.0 = Debug|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Production|Win32.ActiveCfg = Production|Win32
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Production|Win32.Build.0 = Production|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Production|x64.ActiveCfg = Production|x64
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Production|x64.Build.0 = Production|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|Win32.ActiveCfg = Release|Win32
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|Win32.Build.0 = Release|Win32
                {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x64.ActiveCfg = Release|x64
+               {B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|x64.Build.0 = Release|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|Win32.ActiveCfg = Debug|Win32
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|Win32.Build.0 = Debug|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|x64.ActiveCfg = Debug|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.DebugSuffix|x64.Build.0 = Debug|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Production|Win32.ActiveCfg = Production|Win32
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Production|Win32.Build.0 = Production|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Production|x64.ActiveCfg = Production|x64
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Production|x64.Build.0 = Production|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|Win32.ActiveCfg = Release|Win32
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|Win32.Build.0 = Release|Win32
                {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x64.ActiveCfg = Release|x64
+               {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|x64.Build.0 = Release|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug|Win32.ActiveCfg = Debug|Win32
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug|Win32.Build.0 = Debug|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Debug|x64.ActiveCfg = Debug|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.DebugSuffix|x64.Build.0 = Debug|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Production|Win32.ActiveCfg = Production|Win32
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Production|Win32.Build.0 = Production|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Production|x64.ActiveCfg = Production|x64
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Production|x64.Build.0 = Production|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release|Win32.ActiveCfg = Release|Win32
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release|Win32.Build.0 = Release|Win32
                {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release|x64.ActiveCfg = Release|x64
+               {23C3AC97-A1BF-4188-A092-8C78CF022DD7}.Release|x64.Build.0 = Release|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug|Win32.ActiveCfg = Debug|Win32
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug|Win32.Build.0 = Debug|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Debug|x64.ActiveCfg = Debug|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.DebugSuffix|x64.Build.0 = Debug|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Production|Win32.ActiveCfg = Production|Win32
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Production|Win32.Build.0 = Production|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Production|x64.ActiveCfg = Production|x64
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Production|x64.Build.0 = Production|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release|Win32.ActiveCfg = Release|Win32
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release|Win32.Build.0 = Release|Win32
                {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release|x64.ActiveCfg = Release|x64
+               {74D9486C-8F75-46FD-B2B7-6142E09AE3A8}.Release|x64.Build.0 = Release|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug_WinCairo|x64.Build.0 = Debug_WinCairo|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug|Win32.ActiveCfg = Debug|Win32
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug|Win32.Build.0 = Debug|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Debug|x64.ActiveCfg = Debug|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.DebugSuffix|Win32.ActiveCfg = Debug|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.DebugSuffix|Win32.Build.0 = Debug|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.DebugSuffix|x64.ActiveCfg = Debug|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.DebugSuffix|x64.Build.0 = Debug|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Production|Win32.ActiveCfg = Production|Win32
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Production|Win32.Build.0 = Production|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Production|x64.ActiveCfg = Production|x64
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Production|x64.Build.0 = Production|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release_WinCairo|x64.Build.0 = Release_WinCairo|x64
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release|Win32.ActiveCfg = Release|Win32
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release|Win32.Build.0 = Release|Win32
                {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release|x64.ActiveCfg = Release|x64
+               {8C6B55FF-783C-4AA4-BAC2-24A1CDBEDC8A}.Release|x64.Build.0 = Release|x64
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Debug_WinCairo|Win32.ActiveCfg = Debug_WinCairo|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Debug_WinCairo|Win32.Build.0 = Debug_WinCairo|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Debug_WinCairo|x64.ActiveCfg = Debug_WinCairo|x64
@@ -976,6 +1031,7 @@ Global
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Production|Win32.ActiveCfg = Production|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Production|Win32.Build.0 = Production|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Production|x64.ActiveCfg = Release|x64
+               {0473724F-0AB3-4F12-892E-9FAB0186C804}.Production|x64.Build.0 = Release|x64
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release_WinCairo|Win32.ActiveCfg = Release_WinCairo|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release_WinCairo|Win32.Build.0 = Release_WinCairo|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release_WinCairo|x64.ActiveCfg = Release_WinCairo|x64
@@ -983,6 +1039,7 @@ Global
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release|Win32.ActiveCfg = Release|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release|Win32.Build.0 = Release|Win32
                {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release|x64.ActiveCfg = Release|x64
+               {0473724F-0AB3-4F12-892E-9FAB0186C804}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
index 0ec5f3c..24491ae 100644 (file)
@@ -13,7 +13,7 @@
       <ForcedIncludeFiles>WebKitPrefix.h;ICUVersion.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
     <Link>
-      <AdditionalDependencies>opengl32.lib;delayimp.lib;kernel32.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;usp10.lib;comctl32.lib;version.lib;shlwapi.lib;libxslt$(DebugSuffix).lib;libxml2$(DebugSuffix).lib;libicuin$(DebugSuffix).lib;libicuuc$(DebugSuffix).lib;WTF$(DebugSuffix).lib;JavaScriptCore$(DebugSuffix).lib;WebCore$(DebugSuffix).lib;WebKitGUID$(DebugSuffix).lib;SQLite3$(DebugSuffix).lib;msimg32.lib;crypt32.lib;iphlpapi.lib;winmm.lib;comsuppw.lib;rpcrt4.lib;zdll$(DebugSuffix).lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>libEGL.lib;libGLESv2.lib;preprocessor.lib;translator_common.lib;translator_glsl.lib;translator_hlsl.lib;opengl32.lib;delayimp.lib;kernel32.lib;user32.lib;gdi32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;usp10.lib;comctl32.lib;version.lib;shlwapi.lib;libxslt$(DebugSuffix).lib;libxml2$(DebugSuffix).lib;libicuin$(DebugSuffix).lib;libicuuc$(DebugSuffix).lib;WTF$(DebugSuffix).lib;JavaScriptCore$(DebugSuffix).lib;WebCore$(DebugSuffix).lib;WebKitGUID$(DebugSuffix).lib;SQLite3$(DebugSuffix).lib;msimg32.lib;crypt32.lib;iphlpapi.lib;winmm.lib;comsuppw.lib;rpcrt4.lib;zdll$(DebugSuffix).lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ModuleDefinitionFile>$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebKitExportGenerator\WebKitExports.def</ModuleDefinitionFile>
       <DelayLoadDLLs>usp10.dll;comctl32.dll;version.dll;iphlpapi.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
     </Link>
index ace2570..2beff93 100644 (file)
@@ -170,7 +170,7 @@ EXPORTS
         symbolWithPointer(?absoluteBoundingBoxRect@RenderObject@WebCore@@QBE?AVIntRect@2@_N@Z, ?absoluteBoundingBoxRect@RenderObject@WebCore@@QEBA?AVIntRect@2@_N@Z)
         symbolWithPointer(?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QBE?AVIntRect@2@XZ, ?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QEBA?AVIntRect@2@XZ)
         symbolWithPointer(?description@DocumentMarker@WebCore@@QBEABVString@WTF@@XZ, ?description@DocumentMarker@WebCore@@QEBAAEBVString@WTF@@XZ)
-        ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@AAVStringImpl@2@@Z
+        symbolWithPointer(?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@AAVStringImpl@2@@Z, ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@AEAVStringImpl@2@@Z)
         symbolWithPointer(?cacheDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PAV23@PBUClassInfo@3@@Z, ?cacheDOMStructure@WebCore@@YAPEAVStructure@JSC@@PEAVJSDOMGlobalObject@1@PEAV23@PEBUClassInfo@3@@Z)
         symbolWithPointer(?childItemWithTarget@HistoryItem@WebCore@@QBEPAV12@ABVString@WTF@@@Z, ?childItemWithTarget@HistoryItem@WebCore@@QEBAPEAV12@AEBVString@WTF@@@Z)
         symbolWithPointer(?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z, ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@AEAVDocument@2@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z)