[Webkit-unassigned] [Bug 66903] New: Restructure GraphicsContext3D to make it more extensible

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 24 16:07:12 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=66903

           Summary: Restructure GraphicsContext3D to make it more
                    extensible
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebGL
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: cmarrin at apple.com


Currently GC3D needs to work on GLX, CGL and (as of https://bugs.webkit.org/show_bug.cgi?id=59064) EGL platforms. It also needs to work with OpenGL, GLES and possibly ANGLE (if there are differences). Finally, it needs to work with the split process model of Chromium. So the code should be restructured to make all these variables easier to implement.

We should first consider resurrecting https://bugs.webkit.org/show_bug.cgi?id=53201. This might move all the GLX/CGL/EGL code into DrawingBuffer and avoid the need for any differences in GC3D for that part of the code. Other changes we should make:

1) Rename GraphicsContext3DInternal to GraphicsContext3DPrivate (matches the uses in the rest of the code)

2) Rename m_internal to m_private

3) Make the Mac implementation use GraphicsContext3DPrivate and get rid of the ifdef around it

4) Move all API that is not part of the public API into GraphicsContext3DPrivate.

(Note: is GraphicsContext3DInternal still needed if we make GraphicsContext3D use DrawingBuffer?)

Once that is done, the code should be generaly split into the following files. What goes into which file depends on what is needed to avoid ifdefs as much as possible:

    GraphicsContext3D - Anything that is common to all platforms
    GraphicsContext3DOpenGLCommon - code common to any OpenGL implementation
    GraphicsContext3DOpenGL - OpenGL (not OpenGL ES) specific code)
    GraphicsContext3DGLES - OpenGL ES specific code

The OpenGLShims file is also getting very messy. A way should be found to eliminate as many of its ifdefs as possible. But that file is not used in the Mac implementation so I don't know enough to suggest any changes there.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list