views:

20

answers:

1

I'm trying to build webkit chromium port on Windows with 3D_CANVAS support turned off, here is what I did to build it:

  1. modify WebKit/WebKit/chromium/features.gypi, set ENABLE_3D_CANVAS=0
  2. build-webkit --chromium --release

I got a bunch of link errors while linking against webcore.lib, after checking the source code I found that with ENABLE_3D_CANVAS=0, the implementation of GraphicsContext3D is pulled out, but it's still being used at a lot of places, like GLES2Canvas.cpp.

Here is one of the link error:

webcore.lib(PlatformContextSkia.obj) : error LNK2019: unresolved external symbol "public: void __thiscall WebCore::GraphicsContext3D::readPixels(long,long,unsigned long,unsigned long,unsigned long,unsigned long,void *)" (?readPixels@GraphicsContext3D@WebCore@@QAEXJJKKKKPAX@Z)),referenced by "private: void __thiscall WebCore::PlatformContextSkia::readbackHardwareToSoftware(void)const " (?readbackHardwareToSoftware@PlatformContextSkia@WebCore@@ABEXXZ)

Since the code base is used by an internal product, I cannot run the risk of getting latest code from chromium. It would be grateful if someone can help me on this!

A: 

Here's what I did in trying to recover from the link error: 1. Modify WebKit/WebKit/chromium/features.gypi to turn off WTF_USE_ACCELERATED_COMPOSITION 2. Modify WebKit/JavaScriptCore/wtf/platform.h, turn off GLES2_RENDERING at the same time 3D_CANVAS is turned off

But I'm still quite confused why is the USE_ACCELERATED_COMPOSITION and GLES2_RENDERING flag get in the way of 3D_CANVAS?

Could someone possibly know the relationship between these flags and what they are intended for?

quanhui

related questions