Hash :
29ddcc99
Author :
Date :
2017-10-21T16:10:02
Add an auto-generated dispatch table for GL bindings. This will more easily allow us to extend our implementation to make a NULL or "stub" set of bindings. It also exposes a lot more function permutations via extension variations. It might improve the loading speed for bindings obtained via extensions. Instead of generating a list every time an extension is checked, we use a single std::set for a fast query. However because more extensions are checked for more entry points, it might not make a huge difference. This also fixes an issue where the "real" ANGLE GL headers were being propagated to the entry point dispatch table definitions, instead of being in a totally isolated file. This patch adds the missing typedefs to our proxy headers. It also fixes the naming of a few entry points which was inconsistent with the spec. It also makes an XML adjustment to GL_NV_path_rendering to accomodate a hole in the spec where glLoadMatrixfEXT was not ever defined in OpenGL ES. A spec oddity with the TexStorage extension is not resolved - in this case, some methods are only exposed if other extensions are present, but this information is missing from gl.xml. BUG=angleproject:2188 Change-Id: I0fd61dd32de6fadd55fa6bd79295833392d51104 Reviewed-on: https://chromium-review.googlesource.com/726949 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
//
// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// PathGL.cpp: Implementation for PathGL class.
#include "libANGLE/renderer/gl/PathGL.h"
#include "libANGLE/renderer/gl/FunctionsGL.h"
namespace rx
{
PathGL::PathGL(const FunctionsGL *functions, GLuint path) : mFunctions(functions), mPathID(path)
{
}
PathGL::~PathGL()
{
}
gl::Error PathGL::setCommands(GLsizei numCommands,
const GLubyte *commands,
GLsizei numCoords,
GLenum coordType,
const void *coords)
{
mFunctions->pathCommandsNV(mPathID, numCommands, commands, numCoords, coordType, coords);
return gl::NoError();
}
void PathGL::setPathParameter(GLenum pname, GLfloat value)
{
mFunctions->pathParameterfNV(mPathID, pname, value);
}
} // rx