<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Replace OpenGL{,ES}Shims with libepoxy, and #if USE(OPENGL_ES_2) with runtime checks"
   href="https://bugs.webkit.org/show_bug.cgi?id=146680">146680</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Replace OpenGL{,ES}Shims with libepoxy, and #if USE(OPENGL_ES_2) with runtime checks
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>URL</th>
          <td>https://github.com/anholt/libepoxy
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebCore Misc.
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>emmanuel.peyrot&#64;collabora.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>clopez&#64;igalia.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>libepoxy is a library retrieving function pointers from a libGL, one of the many OpenGL wranglers you might have hard from.

What makes it better than the current solution is its automated aliasing of identical functions, and its ability to select a libGL or libGLESv2 at runtime instead of at compile-time, so no recompilation with -DENABLE_GLES2=ON and OFF required anymore to support both APIs on multiple drivers, everything in a single binary.

In most case, #if USE(OPENGL_ES_2) would be replaced with a cached if (!epoxy_is_desktop_gl()), cached to avoid a potential runtime string comparison everytime the function is called.

libepoxy is a dependency of GTK+ and Xorg (for GLAMOR), and probably some other widely used software, so this usually won’t add another dependency.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>