summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/.gitignore3
-rw-r--r--gui/CMakeLists.txt88
-rw-r--r--gui/androiddevicedialog.cpp556
-rw-r--r--gui/androiddevicedialog.h65
-rw-r--r--gui/androidfiledialog.cpp279
-rw-r--r--gui/androidfiledialog.h45
-rw-r--r--gui/androidretracer.cpp326
-rw-r--r--gui/androidretracer.h33
-rw-r--r--gui/androidutils.cpp185
-rw-r--r--gui/androidutils.h71
-rw-r--r--gui/apicalldelegate.cpp18
-rw-r--r--gui/apicalldelegate.h5
-rw-r--r--gui/apisurface.cpp17
-rw-r--r--gui/apisurface.h13
-rw-r--r--gui/apitrace.cpp117
-rw-r--r--gui/apitrace.h25
-rw-r--r--gui/apitracecall.cpp205
-rw-r--r--gui/apitracecall.h46
-rw-r--r--gui/apitracefilter.h5
-rw-r--r--gui/apitracemodel.cpp1
-rw-r--r--gui/apitracemodel.h5
-rw-r--r--gui/argumentseditor.h5
-rw-r--r--gui/calldurationgraph.h4
-rw-r--r--gui/glsledit.cpp2
-rw-r--r--gui/graphing/frameaxiswidget.h5
-rw-r--r--gui/graphing/graphaxiswidget.h5
-rw-r--r--gui/graphing/graphing.h5
-rw-r--r--gui/graphing/graphlabelwidget.h5
-rw-r--r--gui/graphing/graphview.h5
-rw-r--r--gui/graphing/graphwidget.h5
-rw-r--r--gui/graphing/heatmapverticalaxiswidget.h5
-rw-r--r--gui/graphing/heatmapview.h5
-rw-r--r--gui/graphing/histogramview.h5
-rw-r--r--gui/graphing/timeaxiswidget.h5
-rw-r--r--gui/imageviewer.cpp8
-rw-r--r--gui/imageviewer.h8
-rw-r--r--gui/jumpwidget.h5
-rw-r--r--gui/leaktracethread.cpp82
-rw-r--r--gui/leaktracethread.h35
-rw-r--r--gui/main.cpp5
-rw-r--r--gui/mainwindow.cpp476
-rw-r--r--gui/mainwindow.h31
-rw-r--r--gui/pixelwidget.h5
-rw-r--r--gui/profiledialog.cpp2
-rw-r--r--gui/profiledialog.h5
-rw-r--r--gui/profileheatmap.h13
-rw-r--r--gui/profiletablemodel.h4
-rw-r--r--gui/profiling.h5
-rw-r--r--gui/qapitrace.qrc46
-rw-r--r--gui/qubjson.cpp298
-rw-r--r--gui/qubjson.h34
-rw-r--r--gui/qubjson_test.cpp161
-rw-r--r--gui/resources/android-setup.pngbin0 -> 4289 bytes
-rw-r--r--gui/resources/android.pngbin0 -> 5237 bytes
-rwxr-xr-xgui/resources/glreference-man.sh10
-rwxr-xr-xgui/resources/glreference-registry.sh6
-rw-r--r--gui/resources/glreference.tsv6498
-rw-r--r--gui/retracer.cpp181
-rw-r--r--gui/retracer.h22
-rw-r--r--gui/saverthread.cpp11
-rw-r--r--gui/saverthread.h6
-rw-r--r--gui/searchwidget.h5
-rw-r--r--gui/settingsdialog.cpp60
-rw-r--r--gui/settingsdialog.h11
-rw-r--r--gui/shaderssourcewidget.h5
-rw-r--r--gui/thumbnail.h5
-rw-r--r--gui/tracedialog.h5
-rw-r--r--gui/traceloader.cpp228
-rw-r--r--gui/traceloader.h11
-rw-r--r--gui/traceprocess.h5
-rw-r--r--gui/trimprocess.cpp2
-rw-r--r--gui/trimprocess.h5
-rw-r--r--gui/ui/androiddevicedialog.ui132
-rw-r--r--gui/ui/androidfiledialog.ui149
-rw-r--r--gui/ui/imageviewer.ui18
-rw-r--r--gui/ui/jumpwidget.ui2
-rw-r--r--gui/ui/mainwindow.ui142
-rw-r--r--gui/ui/profilereplaydialog.ui12
-rw-r--r--gui/ui/settings.ui136
-rw-r--r--gui/vertexdatainterpreter.h5
80 files changed, 7103 insertions, 3961 deletions
diff --git a/gui/.gitignore b/gui/.gitignore
index a0052ede..cd437b3f 100644
--- a/gui/.gitignore
+++ b/gui/.gitignore
@@ -1,3 +1,6 @@
+moc_*.cpp
qapitrace.qrc.depends
+qapitrace_automoc.cpp
+qrc_qapitrace.cpp
qrc_qapitrace.cxx
ui_*.h
diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index ad13475e..b74e3ece 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -1,7 +1,31 @@
-# Include the cmake file needed to use qt4
-include( ${QT_USE_FILE} )
+# CMake will throw a cryptic message if an user unwittingly invokes it from
+# this directory.
+if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
+ message (FATAL_ERROR
+ "qapitrace must be built from the top source directory.\n"
+ "Read docs/INSTALL.markdown for detailed build instructions."
+ )
+endif ()
+
+add_definitions (-DQT_FORCE_ASSERTS)
+
+if (APPLE)
+ # Recent builds of Qt no longer support i386 architecture
+ set (CMAKE_OSX_ARCHITECTURES "x86_64")
+endif()
+
+add_library (qubjson STATIC
+ qubjson.cpp
+)
+
+add_gtest (qubjson_test qubjson_test.cpp)
+target_link_libraries (qubjson_test qubjson)
set(qapitrace_SRCS
+ androiddevicedialog.cpp
+ androidfiledialog.cpp
+ androidretracer.cpp
+ androidutils.cpp
apisurface.cpp
apitrace.cpp
apicalldelegate.cpp
@@ -27,6 +51,7 @@ set(qapitrace_SRCS
traceprocess.cpp
trimprocess.cpp
vertexdatainterpreter.cpp
+ leaktracethread.cpp
graphing/frameaxiswidget.cpp
graphing/graphwidget.cpp
graphing/graphaxiswidget.cpp
@@ -37,11 +62,11 @@ set(qapitrace_SRCS
graphing/timeaxiswidget.cpp
)
-qt4_automoc(${qapitrace_SRCS})
-
-qt4_add_resources(qapitrace_SRCS qapitrace.qrc)
+qt5_add_resources(qapitrace_SRCS qapitrace.qrc)
set(qapitrace_UIS
+ ui/androidfiledialog.ui
+ ui/androiddevicedialog.ui
ui/argumentseditor.ui
ui/imageviewer.ui
ui/jumpwidget.ui
@@ -55,47 +80,56 @@ set(qapitrace_UIS
ui/shaderssourcewidget.ui
)
-QT4_WRAP_UI(qapitrace_UIS_H ${qapitrace_UIS})
+set (CMAKE_AUTOMOC ON)
+# Silence `Note: No relevant classes found. No output generated.`
+set (CMAKE_AUTOMOC_MOC_OPTIONS "-nn")
+
+QT5_WRAP_UI(qapitrace_UIS_H ${qapitrace_UIS})
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
#add_app_icon(qapitrace_SRCS ../icons/hi*-qapitrace.png)
-link_directories(${LINK_DIRECTORIES} ${QJSON_LIBRARY_DIRS})
include_directories(
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_SOURCE_DIR}
- ${QJSON_INCLUDE_DIR}
- ${QT_INCLUDES}
+ ${CMAKE_SOURCE_DIR} # for image/*
)
-if (WIN32)
- # Use Windows subsystem (i.e., no console).
- set (qapitrace_SUBSYSTEM "WIN32")
-endif ()
+add_executable (qapitrace ${qapitrace_SRCS} ${qapitrace_UIS_H})
-add_executable(qapitrace ${qapitrace_SUBSYSTEM} ${qapitrace_SRCS} ${qapitrace_UIS_H})
+# Avoid qt5_use_modules. See also:
+# - https://bugreports.qt.io/browse/QTBUG-39457
+# - http://doc.qt.io/qt-5/cmake-manual.html
+# - http://www.kdab.com/using-cmake-with-qt-5/
+if (Qt5Core_VERSION_STRING VERSION_LESS 5.2.0)
+ qt5_use_modules (qubjson Widgets)
+ qt5_use_modules (qubjson_test Widgets)
+ qt5_use_modules (qapitrace Widgets WebKitWidgets)
+else ()
+ target_link_libraries (qubjson Qt5::Widgets)
+ target_link_libraries (qubjson_test Qt5::Widgets)
+ target_link_libraries (qapitrace Qt5::Widgets Qt5::WebKitWidgets)
+endif ()
target_link_libraries (qapitrace
+ qubjson
image
common
${ZLIB_LIBRARIES}
${SNAPPY_LIBRARIES}
- ${QJSON_LIBRARIES}
- ${QT_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
)
-if (APPLE)
- # Recent builds of Qt no longer support i386 architecture
- set_target_properties (qapitrace PROPERTIES OSX_ARCHITECTURES x86_64)
-endif ()
-if (MSVC)
- # When the Windows subsystem is chosen by default MSVC expects WinMain()
- # entry point, but we rather use plain old main() everywhere.
- set_target_properties (qapitrace PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
+if (WIN32 AND NOT (CMAKE_BUILD_TYPE STREQUAL "Debug"))
+ # Use Windows subsystem (i.e., no console).
+ set_target_properties (qapitrace PROPERTIES CMAKE_WIN32_EXECUTABLE TRUE)
+ if (MSVC)
+ # When the Windows subsystem is chosen by default MSVC expects WinMain()
+ # entry point, but we rather use plain old main() everywhere.
+ set_target_properties (qapitrace PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
+ endif ()
endif ()
########### install files ###############
install (TARGETS qapitrace RUNTIME DESTINATION bin)
+install_pdb (qapitrace RUNTIME DESTINATION bin)
#install (FILES qapitrace.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
diff --git a/gui/androiddevicedialog.cpp b/gui/androiddevicedialog.cpp
new file mode 100644
index 00000000..8c524fc2
--- /dev/null
+++ b/gui/androiddevicedialog.cpp
@@ -0,0 +1,556 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://www.qt.io/licensing. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#include "androiddevicedialog.h"
+#include "ui_androiddevicedialog.h"
+
+#include <QMessageBox>
+#include <QPainter>
+#include <QProcess>
+#include <QSettings>
+#include <QStyledItemDelegate>
+#include <QToolTip>
+
+// yeah, writing tree models is fun!
+class AndroidDeviceModelNode
+{
+public:
+ AndroidDeviceModelNode(AndroidDeviceModelNode *parent, const AndroidDeviceInfo &info, const QString &incompatibleReason = QString())
+ : m_parent(parent), m_info(info), m_incompatibleReason(incompatibleReason)
+ {
+ if (m_parent)
+ m_parent->m_children.append(this);
+ }
+
+ AndroidDeviceModelNode(AndroidDeviceModelNode *parent, const QString &displayName)
+ : m_parent(parent), m_displayName(displayName)
+ {
+ if (m_parent)
+ m_parent->m_children.append(this);
+ }
+
+ ~AndroidDeviceModelNode()
+ {
+ if (m_parent)
+ m_parent->m_children.removeOne(this);
+ QList<AndroidDeviceModelNode *> children = m_children;
+ qDeleteAll(children);
+ }
+
+ AndroidDeviceModelNode *parent() const
+ {
+ return m_parent;
+ }
+
+ QList<AndroidDeviceModelNode *> children() const
+ {
+ return m_children;
+ }
+
+ AndroidDeviceInfo deviceInfo() const
+ {
+ return m_info;
+ }
+
+ QString displayName() const
+ {
+ return m_displayName;
+ }
+
+ QString incompatibleReason() const
+ {
+ return m_incompatibleReason;
+ }
+
+private:
+ AndroidDeviceModelNode *m_parent;
+ AndroidDeviceInfo m_info;
+ QString m_incompatibleReason;
+ QString m_displayName;
+ QList<AndroidDeviceModelNode *> m_children;
+};
+
+class AndroidDeviceModelDelegate : public QStyledItemDelegate
+{
+public:
+ AndroidDeviceModelDelegate(QObject * parent = 0)
+ : QStyledItemDelegate(parent)
+ {
+
+ }
+
+ ~AndroidDeviceModelDelegate()
+ {
+ }
+
+ QString getProductModel(const QString &device) const
+ {
+ if (m_serialNumberToDeviceName.contains(device))
+ return m_serialNumberToDeviceName.value(device);
+ // workaround for '????????????' serial numbers
+ QStringList arguments = AndroidDeviceInfo::adbSelector(device);
+ arguments << QLatin1String("shell") << QLatin1String("getprop")
+ << QLatin1String("ro.product.model");
+
+ QProcess adbProc;
+ adbProc.start(AndroidDeviceInfo::adbPath(), arguments);
+ if (!adbProc.waitForFinished(10000)) {
+ adbProc.kill();
+ return device;
+ }
+ QString model = QString::fromLocal8Bit(adbProc.readAll().trimmed());
+ if (model.isEmpty())
+ return device;
+ if (!device.startsWith(QLatin1String("????")))
+ m_serialNumberToDeviceName.insert(device, model);
+ return model;
+ }
+
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+ {
+ QStyleOptionViewItemV4 opt = option;
+ initStyleOption(&opt, index);
+ painter->save();
+
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(index.internalPointer());
+ AndroidDeviceInfo device = node->deviceInfo();
+
+ painter->setPen(Qt::NoPen);
+
+ // Paint Background
+ QPalette palette = opt.palette; // we always draw enabled
+ palette.setCurrentColorGroup(QPalette::Active);
+ bool selected = opt.state & QStyle::State_Selected;
+ QColor backgroundColor = selected ? palette.highlight().color()
+ : palette.background().color();
+ painter->setBrush(backgroundColor);
+
+ painter->drawRect(0, opt.rect.top(), opt.rect.width() + opt.rect.left(), opt.rect.height());
+
+ QColor textColor;
+ // Set Text Color
+ if (opt.state & QStyle::State_Selected)
+ textColor = palette.highlightedText().color();
+ else
+ textColor = palette.text().color();
+ painter->setPen(textColor);
+
+ if (!node->displayName().isEmpty()) { // Title
+ // We have a top level node
+ QFont font = opt.font;
+ font.setPointSizeF(font.pointSizeF() * 1.2);
+ font.setBold(true);
+
+ QFontMetrics fm(font);
+ painter->setFont(font);
+ int top = (opt.rect.bottom() + opt.rect.top() - fm.height()) / 2 + fm.ascent();
+ painter->drawText(6, top, node->displayName());
+ } else {
+ QIcon icon(QLatin1String(":/resources/android.png"));
+ int size = opt.rect.bottom() - opt.rect.top() - 12;
+ QPixmap pixmap = icon.pixmap(size, size);
+ painter->drawPixmap(6 + (size - pixmap.width()) / 2, opt.rect.top() + 6 + (size - pixmap.width()) / 2, pixmap);
+
+ QFontMetrics fm(opt.font);
+ // TopLeft
+ QString topLeft = device.serialNumber;
+ if (device.type == AndroidDeviceInfo::Hardware)
+ topLeft = getProductModel(device.serialNumber);
+ painter->drawText(size + 12, 2 + opt.rect.top() + fm.ascent(), topLeft);
+
+ QString topRight = device.serialNumber;
+ // topRight
+ if (device.type == AndroidDeviceInfo::Hardware) // otherwise it's not very informative
+ painter->drawText(opt.rect.right() - fm.width(topRight) - 6 , 2 + opt.rect.top() + fm.ascent(), topRight);
+
+ // Directory
+ QColor mix;
+ mix.setRgbF(0.7 * textColor.redF() + 0.3 * backgroundColor.redF(),
+ 0.7 * textColor.greenF() + 0.3 * backgroundColor.greenF(),
+ 0.7 * textColor.blueF() + 0.3 * backgroundColor.blueF());
+ painter->setPen(mix);
+
+ QString lineText;
+ if (node->incompatibleReason().isEmpty())
+ lineText = device.serialNumber;
+ else
+ lineText = node->incompatibleReason();
+ painter->drawText(size + 12, opt.rect.top() + fm.ascent() + fm.height() + 6, lineText);
+ }
+
+ // Separator lines
+ painter->setPen(QColor::fromRgb(150,150,150));
+ painter->drawLine(0, opt.rect.bottom(), opt.rect.right(), opt.rect.bottom());
+ painter->restore();
+ }
+
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
+ {
+ QStyleOptionViewItemV4 opt = option;
+ initStyleOption(&opt, index);
+
+ QFontMetrics fm(option.font);
+ QSize s;
+ s.setWidth(option.rect.width());
+ s.setHeight(fm.height() * 2 + 10);
+ return s;
+ }
+private:
+ mutable QHash<QString, QString> m_serialNumberToDeviceName;
+
+};
+
+class AndroidDeviceModel : public QAbstractItemModel
+{
+public:
+ AndroidDeviceModel();
+ QModelIndex index(int row, int column,
+ const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex parent(const QModelIndex &child) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+
+ AndroidDeviceInfo device(QModelIndex index);
+ void setDevices(const QVector<AndroidDeviceInfo> &devices);
+
+ QModelIndex indexFor(const QString &serial);
+private:
+ AndroidDeviceModelNode *m_root;
+};
+
+bool androidDevicesLessThan(const AndroidDeviceInfo &dev1, const AndroidDeviceInfo &dev2)
+{
+ // shamelessly stolen from qtcreator :)
+ if (dev1.serialNumber.contains(QLatin1String("????")) != dev2.serialNumber.contains(QLatin1String("????")))
+ return !dev1.serialNumber.contains(QLatin1String("????"));
+ if (dev1.type != dev2.type)
+ return dev1.type == AndroidDeviceInfo::Hardware;
+
+ return dev1.serialNumber < dev2.serialNumber;
+}
+
+/////////////////
+// AndroidDeviceModel
+/////////////////
+AndroidDeviceModel::AndroidDeviceModel()
+ : m_root(0)
+{
+}
+
+QModelIndex AndroidDeviceModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if (column != 0)
+ return QModelIndex();
+
+ if (!m_root)
+ return QModelIndex();
+
+ if (!parent.isValid()) {
+ if (row < 0 || row >= m_root->children().count())
+ return QModelIndex();
+ return createIndex(row, column, m_root->children().at(row));
+ }
+
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(parent.internalPointer());
+ if (row < node->children().count())
+ return createIndex(row, column, node->children().at(row));
+
+ return QModelIndex();
+}
+
+QModelIndex AndroidDeviceModel::parent(const QModelIndex &child) const
+{
+ if (!child.isValid())
+ return QModelIndex();
+ if (!m_root)
+ return QModelIndex();
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(child.internalPointer());
+ if (node == m_root)
+ return QModelIndex();
+ AndroidDeviceModelNode *parent = node->parent();
+
+ if (parent == m_root)
+ return QModelIndex();
+
+ AndroidDeviceModelNode *grandParent = parent->parent();
+ return createIndex(grandParent->children().indexOf(parent), 0, parent);
+}
+
+int AndroidDeviceModel::rowCount(const QModelIndex &parent) const
+{
+ if (!m_root)
+ return 0;
+ if (!parent.isValid())
+ return m_root->children().count();
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(parent.internalPointer());
+ return node->children().count();
+}
+
+int AndroidDeviceModel::columnCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent);
+ return 1;
+}
+
+QVariant AndroidDeviceModel::data(const QModelIndex &index, int role) const
+{
+ if (role != Qt::DisplayRole)
+ return QVariant();
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(index.internalPointer());
+ if (!node)
+ return QVariant();
+ return node->deviceInfo().serialNumber;
+}
+
+Qt::ItemFlags AndroidDeviceModel::flags(const QModelIndex &index) const
+{
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(index.internalPointer());
+ if (node)
+ if (node->displayName().isEmpty() && node->incompatibleReason().isEmpty())
+ return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
+
+ return Qt::NoItemFlags;
+}
+
+AndroidDeviceInfo AndroidDeviceModel::device(QModelIndex index)
+{
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(index.internalPointer());
+ if (!node)
+ return AndroidDeviceInfo();
+ return node->deviceInfo();
+}
+
+void AndroidDeviceModel::setDevices(const QVector<AndroidDeviceInfo> &devices)
+{
+ beginResetModel();
+ delete m_root;
+ m_root = new AndroidDeviceModelNode(0, QString());
+
+ AndroidDeviceModelNode *compatibleDevices = new AndroidDeviceModelNode(m_root, AndroidDeviceDialog::tr("Compatible devices"));
+ AndroidDeviceModelNode *incompatibleDevices = 0; // created on demand
+ foreach (const AndroidDeviceInfo &device, devices) {
+ QString error;
+ if (device.state == AndroidDeviceInfo::UnAuthorizedState) {
+ error = AndroidDeviceDialog::tr("Unauthorized. Please check the confirmation dialog on your device %1.")
+ .arg(device.serialNumber);
+ }else if (device.state == AndroidDeviceInfo::OfflineState) {
+ error = AndroidDeviceDialog::tr("Offline. Please check the state of your device %1.")
+ .arg(device.serialNumber);
+ } else {
+ new AndroidDeviceModelNode(compatibleDevices, device);
+ continue;
+ }
+ if (!incompatibleDevices)
+ incompatibleDevices = new AndroidDeviceModelNode(m_root, AndroidDeviceDialog::tr("Incompatible devices"));
+ new AndroidDeviceModelNode(incompatibleDevices, device, error);
+ }
+ endResetModel();
+}
+
+QModelIndex AndroidDeviceModel::indexFor(const QString &serial)
+{
+ foreach (AndroidDeviceModelNode *topLevelNode, m_root->children()) {
+ QList<AndroidDeviceModelNode *> deviceNodes = topLevelNode->children();
+ for (int i = 0; i < deviceNodes.size(); ++i) {
+ if (deviceNodes.at(i)->deviceInfo().serialNumber == serial)
+ return createIndex(i, 0, deviceNodes.at(i));
+ }
+ }
+ return QModelIndex();
+}
+
+/////////////////
+// AndroidDeviceDialog
+/////////////////
+
+static inline QString msgConnect()
+{
+ return AndroidDeviceDialog::tr("<p>Connect an Android device via USB and activate developer mode on it. "
+ "Some devices require the installation of a USB driver.</p>");
+
+}
+
+static inline QString msgAdbListDevices()
+{
+ return AndroidDeviceDialog::tr("<p>The adb tool in the Android SDK lists all connected devices if run via &quot;adb devices&quot;.</p>");
+}
+
+AndroidDeviceDialog::AndroidDeviceDialog(QWidget *parent) :
+ QDialog(parent),
+ m_model(new AndroidDeviceModel()),
+ m_ui(new Ui::AndroidDeviceDialog)
+{
+ m_ui->setupUi(this);
+ m_ui->deviceView->setModel(m_model);
+ m_ui->deviceView->setItemDelegate(new AndroidDeviceModelDelegate(m_ui->deviceView));
+ m_ui->deviceView->setHeaderHidden(true);
+ m_ui->deviceView->setRootIsDecorated(false);
+ m_ui->deviceView->setUniformRowHeights(true);
+ m_ui->deviceView->setExpandsOnDoubleClick(false);
+
+ m_ui->defaultDeviceCheckBox->setText(tr("Always use this device for this session"));
+
+ m_ui->noDeviceFoundLabel->setText(QLatin1String("<p align=\"center\"><span style=\" font-size:16pt;\">")
+ + tr("No Device Found") + QLatin1String("</span></p><br/>")
+ + msgConnect() + QLatin1String("<br/>")
+ + msgAdbListDevices());
+ connect(m_ui->missingLabel, SIGNAL(linkActivated(QString)),
+ this, SLOT(showHelp()));
+
+ connect(m_ui->refreshDevicesButton, SIGNAL(clicked()),
+ this, SLOT(refreshDeviceList()));
+
+ connect(m_ui->deviceView, SIGNAL(doubleClicked(QModelIndex)),
+ this, SLOT(accept()));
+
+ refreshDeviceList();
+}
+
+AndroidDeviceDialog::~AndroidDeviceDialog()
+{
+ delete m_ui;
+}
+
+AndroidDeviceInfo AndroidDeviceDialog::device()
+{
+ if (result() == QDialog::Accepted)
+ return m_model->device(m_ui->deviceView->currentIndex());
+ return AndroidDeviceInfo();
+}
+
+void AndroidDeviceDialog::accept()
+{
+ QDialog::accept();
+}
+
+bool AndroidDeviceDialog::saveDeviceSelection()
+{
+ return m_ui->defaultDeviceCheckBox->isChecked();
+}
+
+void AndroidDeviceDialog::refreshDeviceList()
+{
+ QString serialNumber;
+ QModelIndex currentIndex = m_ui->deviceView->currentIndex();
+ if (currentIndex.isValid())
+ serialNumber = m_model->device(currentIndex).serialNumber;
+
+ QVector<AndroidDeviceInfo> devices;
+ foreach (const AndroidDeviceInfo &info, connectedDevices())
+ if (info.type == AndroidDeviceInfo::Hardware)
+ devices << info;
+
+ m_model->setDevices(devices);
+
+ m_ui->deviceView->expand(m_model->index(0, 0));
+ if (m_model->rowCount() > 1) // we have a incompatible device node
+ m_ui->deviceView->expand(m_model->index(1, 0));
+
+ // Smartly select a index
+ QModelIndex newIndex;
+ if (!serialNumber.isEmpty())
+ newIndex = m_model->indexFor(serialNumber);
+
+ if (!newIndex.isValid() && !devices.isEmpty())
+ newIndex = m_model->indexFor(devices.first().serialNumber);
+
+ m_ui->deviceView->setCurrentIndex(newIndex);
+
+ m_ui->stackedWidget->setCurrentIndex(devices.isEmpty() ? 1 : 0);
+}
+
+
+// Does not work.
+void AndroidDeviceDialog::clickedOnView(const QModelIndex &idx)
+{
+ if (idx.isValid()) {
+ AndroidDeviceModelNode *node = static_cast<AndroidDeviceModelNode *>(idx.internalPointer());
+ if (!node->displayName().isEmpty()) {
+ if (m_ui->deviceView->isExpanded(idx))
+ m_ui->deviceView->collapse(idx);
+ else
+ m_ui->deviceView->expand(idx);
+ }
+ }
+}
+
+void AndroidDeviceDialog::showHelp()
+{
+ QPoint pos = m_ui->missingLabel->pos();
+ pos = m_ui->missingLabel->parentWidget()->mapToGlobal(pos);
+ QToolTip::showText(pos, msgConnect() + msgAdbListDevices(), this);
+}
+
+QVector<AndroidDeviceInfo> AndroidDeviceDialog::connectedDevices(QString *error)
+{
+ // shamelessly stolen from qtcreator :)
+ // Well, not exactly shamelessly, because is more or leass my work though :)
+ QVector<AndroidDeviceInfo> devices;
+ QProcess adbProc;
+ QString adbPath = AndroidDeviceInfo::adbPath();
+ adbProc.start(adbPath, QStringList() << QLatin1String("devices"));
+ if (!adbProc.waitForFinished(10000)) {
+ adbProc.kill();
+ if (error)
+ *error = tr("Could not run: %1").arg(adbPath + QLatin1String(" devices"));
+ return devices;
+ }
+ QList<QByteArray> adbDevs = adbProc.readAll().trimmed().split('\n');
+ if (adbDevs.empty())
+ return devices;
+
+ while (adbDevs.first().startsWith("* daemon"))
+ adbDevs.removeFirst(); // remove the daemon logs
+ adbDevs.removeFirst(); // remove "List of devices attached" header line
+
+ // workaround for '????????????' serial numbers:
+ // can use "adb -d" when only one usb device attached
+ foreach (const QByteArray &device, adbDevs) {
+ const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());
+ const QString deviceType = QString::fromLatin1(device.mid(device.indexOf('\t'))).trimmed();
+ AndroidDeviceInfo dev;
+ dev.serialNumber = serialNo;
+ dev.type = serialNo.startsWith(QLatin1String("emulator")) ? AndroidDeviceInfo::Emulator : AndroidDeviceInfo::Hardware;
+ if (deviceType == QLatin1String("unauthorized"))
+ dev.state = AndroidDeviceInfo::UnAuthorizedState;
+ else if (deviceType == QLatin1String("offline"))
+ dev.state = AndroidDeviceInfo::OfflineState;
+ else
+ dev.state = AndroidDeviceInfo::OkState;
+ devices.push_back(dev);
+ }
+
+ std::sort(devices.begin(), devices.end(), androidDevicesLessThan);
+ if (devices.isEmpty() && error)
+ *error = tr("No devices found in output of: %1").arg(adbPath + QLatin1String(" devices"));
+ return devices;
+}
diff --git a/gui/androiddevicedialog.h b/gui/androiddevicedialog.h
new file mode 100644
index 00000000..0b994c6a
--- /dev/null
+++ b/gui/androiddevicedialog.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://www.qt.io/licensing. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#pragma once
+
+#include "androidutils.h"
+
+#include <QVector>
+#include <QDialog>
+
+class AndroidDeviceModel;
+namespace Ui { class AndroidDeviceDialog; }
+
+class AndroidDeviceDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit AndroidDeviceDialog(QWidget *parent = 0);
+ ~AndroidDeviceDialog();
+
+ AndroidDeviceInfo device();
+ void accept();
+ bool saveDeviceSelection();
+
+private slots:
+ void refreshDeviceList();
+ void clickedOnView(const QModelIndex &idx);
+ void showHelp();
+
+private:
+ QVector<AndroidDeviceInfo> connectedDevices(QString *error = 0);
+
+private:
+ AndroidDeviceModel *m_model;
+ Ui::AndroidDeviceDialog *m_ui;
+};
+
diff --git a/gui/androidfiledialog.cpp b/gui/androidfiledialog.cpp
new file mode 100644
index 00000000..e3c1479a
--- /dev/null
+++ b/gui/androidfiledialog.cpp
@@ -0,0 +1,279 @@
+#include "androidfiledialog.h"
+#include "androidutils.h"
+
+#include "ui_androidfiledialog.h"
+
+#include <QAbstractTableModel>
+#include <QApplication>
+#include <QFileInfo>
+
+typedef QLatin1String _;
+
+static bool androidFileLessThan(const AndroidUtils::FileInfo &file1, const AndroidUtils::FileInfo &file2)
+{
+ if (file1.type != file2.type)
+ return file1.type == AndroidUtils::FileInfo::Directory;
+ return file1.name < file2.name;
+}
+
+const int FileInfoRole = Qt::UserRole + 1;
+
+static QString humanSize(double size)
+{
+ QStringList list;
+ list << " KB" << " MB" << " GB";
+
+ QStringListIterator i(list);
+ QString unit("bytes");
+
+ while(size >= 1024.0 && i.hasNext())
+ {
+ unit = i.next();
+ size /= 1024.0;
+ }
+
+ return QString::number(size, 'f', 2) + unit;
+}
+
+class AndroidFileDialogModel : public QAbstractTableModel
+{
+public:
+ AndroidFileDialogModel(QObject * parent = 0)
+ : QAbstractTableModel(parent)
+ {}
+
+ void setDir(const QString &dir)
+ {
+ m_fileList = m_androidUtils.ls(dir + _("/"));
+ setFilterSuffix(m_suffix);
+ }
+
+ void setFilterSuffix(const QString &suffix)
+ {
+ m_suffix = suffix;
+ beginResetModel();
+ if (!m_suffix.isEmpty()) {
+ AndroidUtils::FileInfoList::iterator it = m_fileList.begin();
+ while(it != m_fileList.end()) {
+ if (it->type == AndroidUtils::FileInfo::File &&
+ !it->name.endsWith(m_suffix)) {
+ it = m_fileList.erase(it);
+ } else {
+ ++it;
+ }
+ }
+ }
+ std::sort(m_fileList.begin(), m_fileList.end(), androidFileLessThan);
+ endResetModel();
+ }
+
+ virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const
+ {
+ if (!index.isValid() || index.row() >= m_fileList.size())
+ return QVariant();
+
+ QVariant ret;
+ switch (role) {
+ case Qt::DisplayRole:
+ switch (index.column()) {
+ case 0:
+ ret = m_fileList.at(index.row()).name;
+ break;
+ case 1:
+ {
+ const AndroidUtils::FileInfo &file = m_fileList.at(index.row());
+ if (file.type == AndroidUtils::FileInfo::File)
+ ret = humanSize(file.size);
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case Qt::DecorationRole:
+ if (index.column() == 0) {
+ if (m_fileList.at(index.row()).type == AndroidUtils::FileInfo::File)
+ ret = qApp->style()->standardIcon(QStyle::SP_FileIcon);
+ else
+ ret = qApp->style()->standardIcon(QStyle::SP_DirIcon);
+ }
+ break;
+
+ case Qt::TextAlignmentRole:
+ ret = int(index.column() == 1 ? Qt::AlignRight : Qt::AlignLeft) | Qt::AlignVCenter;
+ break;
+
+ case FileInfoRole:
+ ret = QVariant::fromValue(m_fileList.at(index.row()));
+ break;
+ default:
+ break;
+ }
+ return ret;
+ }
+ virtual QVariant headerData(int section, Qt::Orientation orientation,
+ int role = Qt::DisplayRole) const {
+ if (orientation != Qt::Horizontal || role != Qt::DisplayRole)
+ return QVariant();
+
+ QVariant ret;
+ switch (section) {
+ case 0:
+ ret = tr("Name");
+ break;
+ case 1:
+ ret = tr("Size");
+ break;
+ }
+ return ret;
+ }
+
+ virtual int columnCount(const QModelIndex &parent = QModelIndex()) const
+ {
+ return 2;
+ }
+
+ virtual int rowCount(const QModelIndex &parent = QModelIndex()) const
+ {
+ if (parent.isValid())
+ return 0;
+ return m_fileList.size();
+ }
+
+private:
+ AndroidUtils m_androidUtils;
+ QString m_suffix;
+ AndroidUtils::FileInfoList m_fileList;
+};
+
+AndroidFileDialog::AndroidFileDialog(Mode mode, QWidget *parent)
+ : QDialog(parent),
+ m_ui(new Ui::AndroidFileDialog),
+ m_model(new AndroidFileDialogModel(this)),
+ m_mode(mode)
+{
+ m_ui->setupUi(this);
+ m_ui->pathComboBox->setModel(&m_pathModel);
+ m_ui->filesView->setModel(m_model);
+ m_ui->upButton->setIcon(qApp->style()->standardIcon(QStyle::SP_ArrowUp));
+ m_ui->buttonBox->setStandardButtons(QDialogButtonBox::StandardButton(m_mode) | QDialogButtonBox::Cancel);
+ connect(m_ui->buttonBox, SIGNAL(accepted()), SLOT(accept()));
+ connect(m_ui->upButton, SIGNAL(clicked()), SLOT(upFolder()));
+ connect(m_ui->pathComboBox, SIGNAL(activated(QString)), SLOT(setDir(QString)));
+ QHeaderView *hv = m_ui->filesView->horizontalHeader();
+ hv->setSectionResizeMode(0, QHeaderView::Stretch);
+ hv->setSectionResizeMode(1, QHeaderView::ResizeToContents);
+ connect(m_ui->filesView, SIGNAL(activated(QModelIndex)), SLOT(itemActivated(QModelIndex)));
+}
+
+AndroidFileDialog::~AndroidFileDialog()
+{
+ delete m_model;
+}
+
+void AndroidFileDialog::setInitialPath(const QString &path)
+{
+ AndroidUtils::FileInfoList files = AndroidUtils().ls(path);
+ if (files.size() == 1 && files.at(0).type == AndroidUtils::FileInfo::File) {
+ QFileInfo fi(path);
+ m_ui->fileLineEdit->setText(fi.fileName());
+ setDir(fi.absolutePath());
+ } else {
+ if (files.isEmpty() && m_mode == SaveFile) {
+ QFileInfo fi(path);
+ m_ui->fileLineEdit->setText(fi.fileName());
+ setDir(fi.absolutePath());
+ } else {
+ m_ui->fileLineEdit->setText(QString());
+ setDir(path);
+ }
+ }
+}
+
+void AndroidFileDialog::setSuffix(const QString &suffix)
+{
+ m_model->setFilterSuffix(suffix);
+}
+
+QString AndroidFileDialog::filePath() const
+{
+ return m_dir + _("/") + m_ui->fileLineEdit->text();
+}
+
+QString AndroidFileDialog::getOpenFileName(QWidget *parent, const QString &caption, const QString &path, const QString &filter)
+{
+ AndroidFileDialog d(OpenFile, parent);
+ d.setWindowTitle(caption);
+ d.setSuffix(filter);
+ d.setInitialPath(path);
+ if (d.exec() == QDialog::Accepted)
+ return d.filePath();
+ return QString();
+}
+
+QString AndroidFileDialog::getSaveFileName(QWidget *parent, const QString &caption, const QString &path, const QString &filter)
+{
+ AndroidFileDialog d(SaveFile, parent);
+ d.setWindowTitle(caption);
+ d.setSuffix(filter);
+ d.setInitialPath(path);
+ if (d.exec() == QDialog::Accepted)
+ return d.filePath();
+ return QString();
+}
+
+void AndroidFileDialog::accept()
+{
+ if (m_mode == SaveFile) {
+ QDialog::accept();
+ return;
+ }
+ AndroidUtils::FileInfoList files = AndroidUtils().ls(filePath());
+ if (files.size() == 1 && files.at(0).type == AndroidUtils::FileInfo::File)
+ QDialog::accept();
+}
+
+void AndroidFileDialog::upFolder()
+{
+ setDir(QFileInfo(m_dir).absolutePath());
+}
+
+void AndroidFileDialog::itemActivated(QModelIndex index)
+{
+ QVariant file = index.data(FileInfoRole);
+ if (file.isNull())
+ return;
+ AndroidUtils::FileInfo f = file.value<AndroidUtils::FileInfo>();
+ if (f.type == AndroidUtils::FileInfo::Directory) {
+ setDir(m_dir + _("/") + f.name);
+ } else {
+ m_ui->fileLineEdit->setText(f.name);
+ accept();
+ }
+}
+
+void AndroidFileDialog::setDir(const QString &dir)
+{
+ m_dir = dir;
+ while (m_dir.endsWith(QLatin1Char('/')))
+ m_dir.chop(1);
+
+ if (m_dir.isEmpty())
+ m_dir = _("/");
+
+ QStringList paths;
+ QString dirname = m_dir;
+ paths << dirname;
+ while (dirname != _("/")) {
+ dirname = QFileInfo(dirname).absolutePath();
+ paths << dirname;
+ }
+
+ m_pathModel.setStringList(paths);
+ m_ui->pathComboBox->setCurrentIndex(0);
+ m_ui->upButton->setEnabled(paths.size() > 1);
+ m_model->setDir(dir);
+}
+
+Q_DECLARE_METATYPE(AndroidUtils::FileInfo);
diff --git a/gui/androidfiledialog.h b/gui/androidfiledialog.h
new file mode 100644
index 00000000..ac626ef0
--- /dev/null
+++ b/gui/androidfiledialog.h
@@ -0,0 +1,45 @@
+#pragma once
+
+#include <QDialog>
+#include <QDialogButtonBox>
+#include <QStringListModel>
+#include <QModelIndex>
+
+class AndroidFileDialogModel;
+
+namespace Ui { class AndroidFileDialog; }
+
+class AndroidFileDialog : public QDialog
+{
+ Q_OBJECT
+ enum Mode {
+ OpenFile = QDialogButtonBox::Open,
+ SaveFile = QDialogButtonBox::Save
+ };
+
+public:
+ explicit AndroidFileDialog(Mode mode, QWidget *parent = 0);
+ ~AndroidFileDialog();
+
+ void setInitialPath(const QString &path);
+ void setSuffix(const QString &suffix);
+ QString filePath() const;
+ void setMode(Mode mode);
+
+ static QString getOpenFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &path = QString(), const QString &suffix = QString());
+ static QString getSaveFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &path = QString(), const QString &filter = QString());
+
+private slots:
+ virtual void accept();
+ void upFolder();
+ void itemActivated(QModelIndex index);
+ void setDir(const QString &dir);
+
+private:
+ QString m_dir;
+ QStringListModel m_pathModel;
+ Ui::AndroidFileDialog *m_ui;
+ AndroidFileDialogModel *m_model;
+ Mode m_mode;
+};
+
diff --git a/gui/androidretracer.cpp b/gui/androidretracer.cpp
new file mode 100644
index 00000000..de70606d
--- /dev/null
+++ b/gui/androidretracer.cpp
@@ -0,0 +1,326 @@
+#include "androidretracer.h"
+
+#include "androiddevicedialog.h"
+
+#include "thumbnail.h"
+
+#include "image/image.hpp"
+#include "trace_profiler.hpp"
+
+#include <QHostAddress>
+#include <QSettings>
+#include <QTime>
+#include <QBuffer>
+
+#include "qubjson.h"
+
+typedef QLatin1String _;
+
+static QLatin1String packageName("apitrace.github.io.eglretrace");
+static QLatin1String activityName("/.RetraceActivity");
+
+AndroidRetracer::AndroidRetracer(QObject *parent)
+ : Retracer(parent),
+ m_stdoutPort(52341),
+ m_stderrPort(52342)
+{
+ connect(&m_androidUtils, SIGNAL(statusMessage(QString)),
+ SIGNAL(statusMessage(QString)));
+}
+
+void AndroidRetracer::setAndroidFileName(const QString &fileName)
+{
+ m_androdiFileName = fileName;
+}
+
+static int extractPidFromChunk(const QByteArray &chunk, int from)
+{
+ int pos1 = chunk.indexOf(' ', from);
+ if (pos1 == -1)
+ return -1;
+ while (chunk[pos1] == ' ')
+ ++pos1;
+ int pos3 = chunk.indexOf(' ', pos1);
+ int pid = chunk.mid(pos1, pos3 - pos1).toInt();
+ return pid;
+}
+
+static int extractPid(const QByteArray &psOutput)
+{
+ static const QByteArray needle("apitrace.github.io.eglretrace\r");
+ const int to = psOutput.indexOf(needle);
+ if (to == -1)
+ return -1;
+ const int from = psOutput.lastIndexOf('\n', to);
+ if (from == -1)
+ return -1;
+ return extractPidFromChunk(psOutput, from);
+}
+
+static QByteArray readLine(QTcpSocket &sock)
+{
+ while (!sock.canReadLine() && sock.waitForReadyRead());
+ if (sock.state() != QAbstractSocket::ConnectedState)
+ return QByteArray();
+ return sock.readLine();
+}
+
+static bool read(QTcpSocket &sock, char *ptr, qint64 sz)
+{
+ do {
+ qint64 readBytes = sock.read(ptr, sz);
+ ptr += readBytes;
+ sz -= readBytes;
+ } while(sz && sock.waitForReadyRead());
+ return sz == 0;
+}
+
+void AndroidRetracer::run()
+{
+ m_androidUtils.reloadAdb();
+ QString errorStr;
+ bool setupRet;
+ QMetaObject::invokeMethod(this, "setup", Qt::BlockingQueuedConnection,
+ Q_RETURN_ARG(bool, setupRet),
+ Q_ARG(QString *, &errorStr));
+
+ if (!setupRet) {
+ emit finished(errorStr);
+ return;
+ }
+
+ if (!m_androidUtils.runAdb(QStringList() << _("shell") << _("am") << _("start") << _("-n") << packageName + activityName)) {
+ emit finished(tr("Can't start apitrace application"));
+ return;
+ }
+ QByteArray which;
+ if (!m_androidUtils.runAdb(QStringList() << _("shell") << _("readlink") << _("$(which ps)") , &which)) {
+ emit finished(tr("Can't start adb"));
+ return;
+ }
+
+ bool isBusyBox = which.startsWith("busybox");
+ QStringList psArgs;
+ psArgs << _("shell") << _("ps");
+ if (isBusyBox)
+ psArgs << _("-w");
+
+ qint64 processPID;
+ bool wasStarted = false;
+ QTime startTime;
+ startTime.start();
+
+ QTcpSocket stdoutSocket;
+ QTcpSocket stderrSocket;
+
+ ImageHash thumbnails;
+
+ QVariantMap parsedJson;
+ trace::Profile* profile = isProfiling() ? new trace::Profile() : NULL;
+
+ QList<ApiTraceError> errors;
+ QRegExp regexp("(^\\d+): +(\\b\\w+\\b): ([^\\r\\n]+)[\\r\\n]*$");
+
+ QString msg = QLatin1String("Replay finished!");
+ QByteArray ubjsonBuffer;
+ QByteArray outputBuffer;
+ bool keepGoing = true;
+ while(keepGoing) {
+ if (!wasStarted || startTime.elapsed() > 1000) {
+ QByteArray psOut;
+ m_androidUtils.runAdb(psArgs, &psOut);
+ processPID = extractPid(psOut);
+ if (wasStarted)
+ startTime.restart();
+ }
+
+ if (processPID == -1) {
+ if (wasStarted) {
+ break;
+ } else {
+ if (startTime.elapsed() > 3000) { // wait 3 seconds to start
+ emit finished(tr("Unable to start retrace on device."));
+ return;
+ }
+ }
+ msleep(100);
+ continue;
+ }
+
+ // we have a valid pid, it means the application started
+ if (!wasStarted) {
+ // connect the sockets
+ int tries = 0;
+ do {
+ stdoutSocket.connectToHost(QHostAddress::LocalHost, m_stdoutPort);
+ } while (!stdoutSocket.waitForConnected(100) && ++tries < 10);
+ if (stdoutSocket.state() != QAbstractSocket::ConnectedState) {
+ emit finished(tr("Can't connect to stdout socket."));
+ return;
+ }
+
+ // Android doesn't suport GPU and PPD profiling (at leats not on my devices)
+ //setProfiling(false, isProfilingCpu(), false);
+
+ QString args = (retraceArguments() << m_androdiFileName).join(" ") + _("\n");
+ stdoutSocket.write(args.toUtf8());
+ if (!stdoutSocket.waitForBytesWritten()) {
+ emit finished(tr("Can't send params."));
+ return;
+ }
+
+
+ stderrSocket.connectToHost(QHostAddress::LocalHost, m_stderrPort);
+ stderrSocket.waitForConnected(100);
+ if (stderrSocket.state() != QAbstractSocket::ConnectedState) {
+ emit finished(tr("Can't connect to stderr socket."));
+ return;
+ }
+ wasStarted = true;
+ }
+
+ // We are going to read both channels at the same time
+
+ // read stdout channel
+ if (stdoutSocket.waitForReadyRead(100)) {
+ if (captureState())
+ ubjsonBuffer.append(stdoutSocket.readAll());
+ else if (captureThumbnails()) {
+ // read one image
+ image::PNMInfo info;
+ QByteArray header;
+ int headerLines = 3; // assume no optional comment line
+ for (int headerLine = 0; headerLine < headerLines; ++headerLine) {
+ QByteArray line = readLine(stdoutSocket);
+ if (line.isEmpty()) {
+ keepGoing = false;
+ break;
+ }
+ header += line;
+ // if header actually contains optional comment line, ...
+ if (headerLine == 1 && line[0] == '#') {
+ ++headerLines;
+ }
+ }
+
+ const char *headerEnd = image::readPNMHeader(header.constData(), header.size(), info);
+
+ // if invalid PNM header was encountered, ...
+ if (headerEnd == NULL ||
+ info.channelType != image::TYPE_UNORM8) {
+ qDebug() << "error: invalid snapshot stream encountered";
+ keepGoing = false;
+ break;
+ }
+
+ unsigned channels = info.channels;
+ unsigned width = info.width;
+ unsigned height = info.height;
+
+ // qDebug() << "channels: " << channels << ", width: " << width << ", height: " << height";
+
+ QImage snapshot = QImage(width, height, channels == 1 ? QImage::Format_Mono : QImage::Format_RGB888);
+
+ int rowBytes = channels * width;
+ for (int y = 0; y < height; ++y) {
+ unsigned char *scanLine = snapshot.scanLine(y);
+ if (!read(stdoutSocket, (char *) scanLine, rowBytes)) {
+ keepGoing = false;
+ break;
+ }
+ }
+
+ QImage thumb = thumbnail(snapshot);
+ thumbnails.insert(info.commentNumber, thumb);
+ } else if (isProfiling()) {
+ QByteArray line = readLine(stdoutSocket);
+ if (line.isEmpty()) {
+ keepGoing = false;
+ break;
+ }
+ line.append('\0');
+ trace::Profiler::parseLine(line.constData(), profile);
+ } else {
+ outputBuffer.append(stdoutSocket.readAll());
+ }
+ }
+
+ // read stderr channel
+ if (stderrSocket.waitForReadyRead(5) && stderrSocket.canReadLine()) {
+ QString line = stderrSocket.readLine();
+ if (regexp.indexIn(line) != -1) {
+ ApiTraceError error;
+ error.callIndex = regexp.cap(1).toInt();
+ error.type = regexp.cap(2);
+ error.message = regexp.cap(3);
+ errors.append(error);
+ } else if (!errors.isEmpty()) {
+ // Probably a multiligne message
+ ApiTraceError &previous = errors.last();
+ if (line.endsWith("\n")) {
+ line.chop(1);
+ }
+ previous.message.append('\n');
+ previous.message.append(line);
+ }
+ }
+ }
+
+ if (outputBuffer.size() < 80)
+ msg = outputBuffer;
+
+ if (captureState()) {
+ QBuffer io(&ubjsonBuffer);
+ io.open(QIODevice::ReadOnly);
+
+ parsedJson = decodeUBJSONObject(&io).toMap();
+ ApiTraceState *state = new ApiTraceState(parsedJson);
+ emit foundState(state);
+ }
+
+ if (captureThumbnails() && !thumbnails.isEmpty()) {
+ emit foundThumbnails(thumbnails);
+ }
+
+ if (isProfiling() && profile) {
+ emit foundProfile(profile);
+ }
+
+ if (!errors.isEmpty()) {
+ emit retraceErrors(errors);
+ }
+
+ emit finished(msg);
+}
+
+bool AndroidRetracer::setup(QString *error)
+{
+ m_androidUtils.reloadAdb();
+ if (m_androidUtils.serialNumber().isEmpty()) {
+ *error = tr("No device selected");
+ return false;
+ }
+
+ // forward adbPorts
+ QSettings s;
+ s.beginGroup(_("android"));
+ m_stdoutPort = s.value(_("stdoutPort"), m_stdoutPort).toInt();
+ m_stderrPort = s.value(_("stderrPort"), m_stderrPort).toInt();
+ s.endGroup();
+
+ if (!m_androidUtils.runAdb(QStringList(_("forward"))
+ << QString::fromLatin1("tcp:%1").arg(m_stdoutPort)
+ << _("localabstract:apitrace.github.io.eglretrace.stdout"))) {
+ *error = tr("Can't forward ports");
+ return false;
+ }
+
+ if (!m_androidUtils.runAdb(QStringList(_("forward"))
+ << QString::fromLatin1("tcp:%1").arg(m_stderrPort)
+ << _("localabstract:apitrace.github.io.eglretrace.stderr"))) {
+ *error = tr("Can't forward ports");
+ return false;
+ }
+
+ return true;
+}
diff --git a/gui/androidretracer.h b/gui/androidretracer.h
new file mode 100644
index 00000000..f2c758e5
--- /dev/null
+++ b/gui/androidretracer.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#include <QAtomicInt>
+#include <QTcpSocket>
+
+#include "androidutils.h"
+#include "retracer.h"
+
+class AndroidRetracer : public Retracer
+{
+ Q_OBJECT
+public:
+ AndroidRetracer(QObject *parent);
+
+ void setAndroidFileName(const QString &fileName);
+
+signals:
+ void statusMessage(const QString &message);
+
+protected:
+ void run();
+
+private slots:
+ bool setup(QString *error);
+
+private:
+ QString m_androdiFileName;
+ QString m_serialNumber;
+ AndroidUtils m_androidUtils;
+ int m_stdoutPort;
+ int m_stderrPort;
+};
+
diff --git a/gui/androidutils.cpp b/gui/androidutils.cpp
new file mode 100644
index 00000000..ac0ca263
--- /dev/null
+++ b/gui/androidutils.cpp
@@ -0,0 +1,185 @@
+#include "androidutils.h"
+#include "androiddevicedialog.h"
+
+#include <QCoreApplication>
+#include <QByteArray>
+#include <QFileInfo>
+#include <QProcess>
+#include <QSettings>
+#include <QStringList>
+
+typedef QLatin1String _;
+
+static QString s_androidSerialNumber;
+
+QStringList AndroidDeviceInfo::adbSelector(const QString &serialNumber)
+{
+ if (serialNumber.startsWith(_("????")))
+ return QStringList() << _("-d");
+ return QStringList() << _("-s") << serialNumber;
+}
+
+QString AndroidDeviceInfo::adbPath()
+{
+ QSettings s;
+ s.beginGroup(_("android"));
+ return s.value(_("adbPath"), _("adb")).toString();
+}
+
+AndroidUtils::FileInfo::FileInfo()
+{
+ type = File;
+ size = 0;
+}
+
+AndroidUtils::AndroidUtils()
+{
+ m_wait = 30000;
+ reloadAdb();
+}
+
+void AndroidUtils::reloadAdb()
+{
+ m_adbPath = AndroidDeviceInfo::adbPath();
+}
+
+QString AndroidUtils::serialNumber() const
+{
+ if (m_serialNumber.isEmpty())
+ m_serialNumber = s_androidSerialNumber;
+
+ if (m_serialNumber.isEmpty()) {
+ AndroidDeviceDialog ad;
+ if (ad.exec() != QDialog::Accepted)
+ return QString();
+
+ m_serialNumber = ad.device().serialNumber;
+ if (ad.saveDeviceSelection())
+ s_androidSerialNumber = m_serialNumber;
+ }
+ return m_serialNumber;
+}
+
+bool AndroidUtils::runAdb(const QStringList &params, QByteArray *output) const
+{
+ QProcess adbProcess;
+ adbProcess.start(m_adbPath, AndroidDeviceInfo::adbSelector(serialNumber()) << params);
+ if (!output)
+ connect(&adbProcess, SIGNAL(readyReadStandardError()), SLOT(processReadyRead()));
+
+ if (!adbProcess.waitForStarted())
+ return false;
+
+ if (!adbProcess.waitForFinished(m_wait > INT_MAX ? -1 : m_wait))
+ return false;
+
+ if (output)
+ *output = adbProcess.readAll();
+ return true;
+}
+
+AndroidUtils::FileInfoList AndroidUtils::ls(const QString &path) const
+{
+ m_wait = 10000;
+ FileInfoList ret;
+ QByteArray lsOutput;
+ runAdb(QStringList(_("shell")) << _("ls") << _("-l") << path, &lsOutput);
+ foreach (const QByteArray &line, lsOutput.split('\n')) {
+ if (line.isEmpty() || line[10] != ' ')
+ continue;
+
+ int pos = line.indexOf(':');
+ if (pos == -1)
+ continue;
+ pos += 3;
+ if (pos >= line.size())
+ continue;
+
+ FileInfo f;
+ // Assume all links are directories
+ f.type = (line[0] == 'd' || line[0] == 'l') ? FileInfo::Directory : FileInfo::File;
+ f.name = line.mid(pos).trimmed();
+ if (f.type == FileInfo::File) {
+ pos = line.lastIndexOf('-', pos);
+ if (pos < 4)
+ continue;
+ pos = line.lastIndexOf('-', pos -1);
+ if (pos < 3)
+ continue;
+ pos = line.lastIndexOf(' ', pos -1);
+ if (pos < 2)
+ continue;
+ int startPos = line.lastIndexOf(' ', pos -1);
+ if (startPos == -1)
+ continue;
+ f.size = line.mid(startPos, pos - startPos).trimmed().toLongLong();
+ } else if (line[0] == 'l') {
+ // Fix links
+ pos = f.name.indexOf(_("->"));
+ if (pos < 2)
+ continue;
+ f.name = f.name.left(pos - 1).trimmed();
+ }
+ ret << f;
+ }
+ return ret;
+}
+
+bool AndroidUtils::sameFile(const QString &localPath, const QString &devicePath)
+{
+ QFileInfo fi(localPath);
+ QList<FileInfo> deviceFiles = ls(devicePath);
+ return fi.exists() && (deviceFiles.size() == 1) && (deviceFiles.first().size == fi.size());
+}
+
+bool AndroidUtils::updateFile(const QString &localPath, const QString &devicePath, UpdateType updateType)
+{
+ if (sameFile(localPath, devicePath))
+ return true;
+
+ QFileInfo fi(localPath);
+ QList<FileInfo> deviceFiles = ls(devicePath);
+
+ switch (updateType) {
+ case PushLocalToDevice:
+ if (!fi.exists())
+ return false;
+
+ m_wait = std::min(fi.size() / 1024, qint64(30000));
+ if (!runAdb(QStringList()<< _("push") << _("-p") << localPath << devicePath))
+ return false;
+
+ deviceFiles = ls(devicePath);
+
+ if (deviceFiles.size() != 1 || deviceFiles.first().size != fi.size())
+ return false; // pushing to device failed
+ break;
+
+ case PullFromDeviceToLocal:
+ if (deviceFiles.size() != 1)
+ return false;
+
+ m_wait = std::min(deviceFiles.at(0).size / 1024, qint64(30000));
+ if (!runAdb(QStringList()<< _("pull") << _("-p") << devicePath << localPath))
+ return false;
+
+ fi = QFileInfo(localPath);
+ if (!fi.exists() || deviceFiles.first().size != fi.size())
+ return false; // pulling from device failed
+ break;
+ }
+ return true;
+}
+
+void AndroidUtils::processReadyRead()
+{
+ QProcess *proc = qobject_cast<QProcess *>(QObject::sender());
+ if (proc) {
+ QByteArray stdOutErr = proc->readAllStandardError();
+ foreach (const QByteArray &line, stdOutErr.split('\r')) {
+ QString msg(line.trimmed());
+ if (!msg.isEmpty())
+ emit statusMessage(msg);
+ }
+ }
+}
diff --git a/gui/androidutils.h b/gui/androidutils.h
new file mode 100644
index 00000000..60c8abea
--- /dev/null
+++ b/gui/androidutils.h
@@ -0,0 +1,71 @@
+#pragma once
+
+#include <QList>
+#include <QObject>
+#include <QString>
+
+class QByteArray;
+class QStringList;
+
+
+struct AndroidDeviceInfo
+{
+ QString serialNumber;
+ enum State { OkState, UnAuthorizedState, OfflineState };
+ State state;
+ bool unauthorized;
+ enum AndroidDeviceType { Hardware, Emulator };
+ AndroidDeviceType type;
+
+ static QStringList adbSelector(const QString &serialNumber);
+ static QString adbPath();
+};
+
+class AndroidUtils : public QObject
+{
+ Q_OBJECT
+public:
+ struct FileInfo
+ {
+ FileInfo();
+
+ enum Type {
+ File,
+ Directory
+ };
+ Type type;
+ QString name;
+ qint64 size;
+ };
+
+ typedef QList<FileInfo> FileInfoList;
+
+ enum UpdateType {
+ PushLocalToDevice,
+ PullFromDeviceToLocal
+ };
+
+public:
+ AndroidUtils();
+
+ void reloadAdb();
+
+ QString serialNumber() const;
+
+ bool runAdb(const QStringList &params, QByteArray *output = 0) const;
+ FileInfoList ls(const QString &path) const;
+
+ bool sameFile(const QString &localPath, const QString &devicePath);
+ bool updateFile(const QString &localPath, const QString &devicePath, UpdateType updateType);
+
+signals:
+ void statusMessage(const QString &message);
+
+private slots:
+ void processReadyRead();
+
+private:
+ QString m_adbPath;
+ mutable qint64 m_wait;
+ mutable QString m_serialNumber;
+};
diff --git a/gui/apicalldelegate.cpp b/gui/apicalldelegate.cpp
index 9ad9f24a..d52e2d10 100644
--- a/gui/apicalldelegate.cpp
+++ b/gui/apicalldelegate.cpp
@@ -43,6 +43,8 @@ void ApiCallDelegate::paint(QPainter *painter,
if (!thumbnail.isNull()) {
painter->drawImage(offset, thumbnail);
offset += QPoint(textSize.height() + thumbnail.width(), option.rect.height()/2 - textSize.height()/2);
+ } else {
+ frame->missingThumbnail();
}
}
@@ -54,6 +56,13 @@ void ApiCallDelegate::paint(QPainter *painter,
}
if (event->type() == ApiTraceEvent::Call) {
ApiTraceCall *call = static_cast<ApiTraceCall*>(event);
+ const QImage & thumbnail = call->thumbnail();
+ if (!thumbnail.isNull()) {
+ painter->drawImage(offset, thumbnail);
+ offset += QPoint(textSize.height() + thumbnail.width(), option.rect.height()/2 - textSize.height()/2);
+ } else if (call->flags() & trace::CALL_FLAG_RENDER) {
+ call->missingThumbnail();
+ }
if (call->hasError()) {
QPixmap px = m_errorEmblem.pixmap(textSize.height(),
textSize.height());
@@ -101,6 +110,15 @@ QSize ApiCallDelegate::sizeHint(const QStyleOptionViewItem &option,
size.setHeight(thumbnail.height());
}
}
+ } else if (event->type() == ApiTraceEvent::Call) {
+ ApiTraceCall *call = static_cast<ApiTraceCall*>(event);
+ const QImage & thumbnail = call->thumbnail();
+ if (!thumbnail.isNull()) {
+ size.rwidth() += thumbnail.width();
+ if (size.height() < thumbnail.height()) {
+ size.setHeight(thumbnail.height());
+ }
+ }
}
return size;
diff --git a/gui/apicalldelegate.h b/gui/apicalldelegate.h
index 18c8b33a..c4379586 100644
--- a/gui/apicalldelegate.h
+++ b/gui/apicalldelegate.h
@@ -1,5 +1,4 @@
-#ifndef APICALLDELEGATE_H
-#define APICALLDELEGATE_H
+#pragma once
#include <QStyledItemDelegate>
@@ -20,5 +19,3 @@ private:
QIcon m_editEmblem;
QIcon m_errorEmblem;
};
-
-#endif
diff --git a/gui/apisurface.cpp b/gui/apisurface.cpp
index 22de5f0b..4f0a9173 100644
--- a/gui/apisurface.cpp
+++ b/gui/apisurface.cpp
@@ -25,29 +25,29 @@ void ApiSurface::setSize(const QSize &size)
struct ByteArrayBuf : public std::streambuf
{
- ByteArrayBuf(QByteArray & a)
+ ByteArrayBuf(const QByteArray & a)
{
- setg(a.data(), a.data(), a.data() + a.size());
+ setg((char *)a.data(), (char *)a.data(), (char *)a.data() + a.size());
}
};
-void ApiSurface::contentsFromBase64(const QByteArray &base64)
+void ApiSurface::setData(const QByteArray &data)
{
- m_base64Data = base64;
+ m_data = data;
/*
* We need to do the conversion to create the thumbnail
*/
- image::Image *image = imageFromBase64(base64);
+ image::Image *image = imageFromData(data);
Q_ASSERT(image);
QImage img = qimageFromRawImage(image);
m_thumb = thumbnail(img);
delete image;
}
-QByteArray ApiSurface::base64Data() const
+QByteArray ApiSurface::data() const
{
- return m_base64Data;
+ return m_data;
}
QImage ApiSurface::thumb() const
@@ -107,9 +107,8 @@ void ApiFramebuffer::setType(const QString &str)
}
image::Image *
-ApiSurface::imageFromBase64(const QByteArray &base64)
+ApiSurface::imageFromData(const QByteArray &dataArray)
{
- QByteArray dataArray = QByteArray::fromBase64(base64);
image::Image *image;
/*
diff --git a/gui/apisurface.h b/gui/apisurface.h
index 19fbce31..de5f531d 100644
--- a/gui/apisurface.h
+++ b/gui/apisurface.h
@@ -1,5 +1,4 @@
-#ifndef APISURFACE_H
-#define APISURFACE_H
+#pragma once
#include <QImage>
#include <QSize>
@@ -23,12 +22,12 @@ public:
QString formatName() const;
void setFormatName(const QString &str);
- void contentsFromBase64(const QByteArray &base64);
+ void setData(const QByteArray &data);
- QByteArray base64Data() const;
+ QByteArray data() const;
QImage thumb() const;
- static image::Image *imageFromBase64(const QByteArray &data);
+ static image::Image *imageFromData(const QByteArray &data);
static QImage qimageFromRawImage(const image::Image *img,
float lowerValue = 0.0f,
float upperValue = 1.0f,
@@ -37,7 +36,7 @@ public:
private:
QSize m_size;
- QByteArray m_base64Data;
+ QByteArray m_data;
QImage m_thumb;
int m_depth;
QString m_formatName;
@@ -68,5 +67,3 @@ private:
QString m_type;
};
-
-#endif
diff --git a/gui/apitrace.cpp b/gui/apitrace.cpp
index 3f840eee..18556173 100644
--- a/gui/apitrace.cpp
+++ b/gui/apitrace.cpp
@@ -4,6 +4,7 @@
#include "saverthread.h"
#include <QDebug>
+#include <QFileInfo>
#include <QDir>
#include <QThread>
@@ -44,6 +45,8 @@ ApiTrace::ApiTrace()
this, SIGNAL(foundCallIndex(ApiTraceCall*)));
+ connect(m_loader, SIGNAL(parseProblem(const QString&)),
+ this, SIGNAL(problemLoadingTrace(const QString&)));
connect(m_loader, SIGNAL(startedParsing()),
this, SIGNAL(startedLoadingTrace()));
connect(m_loader, SIGNAL(parsed(int)),
@@ -173,11 +176,13 @@ ApiTraceState ApiTrace::defaultState() const
void ApiTrace::callEdited(ApiTraceCall *call)
{
if (!m_editedCalls.contains(call)) {
- //lets generate a temp filename
+ // Lets generate a temp filename
+ QFileInfo fileInfo(m_fileName);
QString tempPath = QDir::tempPath();
- m_tempFileName = QString::fromLatin1("%1/%2.edited")
- .arg(tempPath)
- .arg(m_fileName);
+ m_tempFileName = QDir::tempPath();
+ m_tempFileName += QDir::separator();
+ m_tempFileName += fileInfo.fileName();
+ m_tempFileName += QString::fromLatin1(".edited");
}
m_editedCalls.insert(call);
m_needsSaving = true;
@@ -276,18 +281,19 @@ void ApiTrace::loaderFrameLoaded(ApiTraceFrame *frame,
if (!m_queuedErrors.isEmpty()) {
QList< QPair<ApiTraceFrame*, ApiTraceError> >::iterator itr;
- for (itr = m_queuedErrors.begin(); itr != m_queuedErrors.end();
- ++itr) {
+ itr = m_queuedErrors.begin();
+ while (itr != m_queuedErrors.end()) {
const ApiTraceError &error = (*itr).second;
if ((*itr).first == frame) {
ApiTraceCall *call = frame->callWithIndex(error.callIndex);
if (!call) {
+ ++itr;
continue;
}
call->setError(error.message);
- m_queuedErrors.erase(itr);
+ itr = m_queuedErrors.erase(itr);
if (call->hasError()) {
m_errors.insert(call);
@@ -295,6 +301,8 @@ void ApiTrace::loaderFrameLoaded(ApiTraceFrame *frame,
m_errors.remove(call);
}
emit changed(call);
+ } else {
+ ++itr;
}
}
}
@@ -459,22 +467,24 @@ int ApiTrace::callInFrame(int callIdx) const
void ApiTrace::setCallError(const ApiTraceError &error)
{
int frameIdx = callInFrame(error.callIndex);
- ApiTraceFrame *frame = 0;
-
if (frameIdx < 0) {
return;
}
- frame = m_frames[frameIdx];
+ ApiTraceFrame *frame = 0;
+ frame = m_frames[frameIdx];
if (frame->isLoaded()) {
ApiTraceCall *call = frame->callWithIndex(error.callIndex);
- call->setError(error.message);
- if (call->hasError()) {
- m_errors.insert(call);
- } else {
- m_errors.remove(call);
+ // call might be null if the error is in a filtered call
+ if (call) {
+ call->setError(error.message);
+ if (call->hasError()) {
+ m_errors.insert(call);
+ } else {
+ m_errors.remove(call);
+ }
+ emit changed(call);
}
- emit changed(call);
} else {
loadFrame(frame);
m_queuedErrors.append(qMakePair(frame, error));
@@ -486,21 +496,80 @@ bool ApiTrace::isFrameLoading(ApiTraceFrame *frame) const
return m_loadingFrames.contains(frame);
}
-void ApiTrace::bindThumbnailsToFrames(const QList<QImage> &thumbnails)
+void ApiTrace::bindThumbnails(const ImageHash &thumbnails)
{
- QList<ApiTraceFrame *> frames = m_frames;
+ QHashIterator<int, QImage> i(thumbnails);
- QList<QImage>::const_iterator thumbnail = thumbnails.begin();
+ while (i.hasNext()) {
+ i.next();
- foreach (ApiTraceFrame *frame, frames) {
- if (thumbnail != thumbnails.end()) {
- frame->setThumbnail(*thumbnail);
+ if (!m_thumbnails.contains(i.key())) {
+ int callIndex = i.key();
+ const QImage &thumbnail = i.value();
- ++thumbnail;
+ m_thumbnails.insert(callIndex, thumbnail);
- emit changed(frame);
+ // find the frame associated with the call index
+ int frameIndex = 0;
+ while (frameAt(frameIndex)->lastCallIndex() < callIndex) {
+ ++frameIndex;
+ }
+
+ ApiTraceFrame *frame = frameAt(frameIndex);
+
+ // if the call was actually for a frame, ...
+ if (callIndex == frame->lastCallIndex()) {
+ frame->setThumbnail(thumbnail);
+
+ emit changed(frame);
+ } else {
+ ApiTraceCall *call = frame->callWithIndex(callIndex);
+ if (call) {
+ call->setThumbnail(thumbnail);
+
+ emit changed(call);
+ }
+ }
}
}
}
+void ApiTrace::missingThumbnail(ApiTraceFrame *frame)
+{
+ missingThumbnail(frame->lastCallIndex());
+}
+
+void ApiTrace::missingThumbnail(ApiTraceCall *call)
+{
+ missingThumbnail(call->index());
+}
+
+void ApiTrace::missingThumbnail(int callIdx)
+{
+ // technically, the contain() test is redundant, since this is a set;
+ // however, it enables debugging techniques to confirm correct behavior
+ if (!m_missingThumbnails.contains(callIdx)) {
+ //qDebug() << QLatin1String("debug: new missing thumbnail: ") << callIdx;
+ m_missingThumbnails.insert(callIdx);
+ }
+}
+
+bool ApiTrace::isMissingThumbnails() const
+{
+ return !m_missingThumbnails.isEmpty();
+}
+void ApiTrace::resetMissingThumbnails()
+{
+ m_missingThumbnails.clear();
+}
+
+void ApiTrace::iterateMissingThumbnails(void *object, ThumbnailCallback cb)
+{
+ //qDebug() << QLatin1String("debug: count of missing thumbnail list") << m_missingThumbnails.count();
+ foreach (int thumbnailIndex, m_missingThumbnails) {
+ //qDebug() << QLatin1String("debug: iterate missing thumbnail list") << thumbnailIndex;
+ (*cb)(object, thumbnailIndex);
+ }
+}
+
#include "apitrace.moc"
diff --git a/gui/apitrace.h b/gui/apitrace.h
index 22bedec2..d7259924 100644
--- a/gui/apitrace.h
+++ b/gui/apitrace.h
@@ -1,5 +1,4 @@
-#ifndef APITRACE_H
-#define APITRACE_H
+#pragma once
#include "apitracecall.h"
@@ -12,6 +11,9 @@ class TraceLoader;
class SaverThread;
class QThread;
+typedef void (*ThumbnailCallback)(void *object, int thumbnailIdx);
+typedef QHash<int, QImage> ImageHash;
+
class ApiTrace : public QObject
{
Q_OBJECT
@@ -77,6 +79,14 @@ public:
trace::API api() const;
+ void missingThumbnail(ApiTraceFrame* frame);
+ void missingThumbnail(ApiTraceCall* call);
+
+ bool isMissingThumbnails() const;
+ void resetMissingThumbnails();
+
+ void iterateMissingThumbnails(void *object, ThumbnailCallback cb);
+
public slots:
void setFileName(const QString &name);
void save();
@@ -95,11 +105,12 @@ public slots:
void findCallIndex(int index);
void setCallError(const ApiTraceError &error);
- void bindThumbnailsToFrames(const QList<QImage> &thumbnails);
+ void bindThumbnails(const ImageHash &thumbnails);
signals:
void loadTrace(const QString &name);
void requestFrame(ApiTraceFrame *frame);
+ void problemLoadingTrace(const QString &message);
void startedLoadingTrace();
void loaded(int percent);
void finishedLoadingTrace();
@@ -141,6 +152,8 @@ private slots:
private:
int callInFrame(int callIdx) const;
bool isFrameLoading(ApiTraceFrame *frame) const;
+
+ void missingThumbnail(int callIdx);
private:
QString m_fileName;
QString m_tempFileName;
@@ -159,6 +172,8 @@ private:
QSet<ApiTraceCall*> m_errors;
QList< QPair<ApiTraceFrame*, ApiTraceError> > m_queuedErrors;
QSet<ApiTraceFrame*> m_loadingFrames;
-};
-#endif
+ QSet<int> m_missingThumbnails;
+
+ ImageHash m_thumbnails;
+};
diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp
index a746cdd2..8ae03d0e 100644
--- a/gui/apitracecall.cpp
+++ b/gui/apitracecall.cpp
@@ -185,24 +185,17 @@ void VariantVisitor::visit(trace::Double *node)
void VariantVisitor::visit(trace::String *node)
{
- m_variant = QVariant(QString::fromStdString(node->value));
+ m_variant = QVariant(QString::fromLatin1(node->value));
}
-void VariantVisitor::visit(trace::Enum *e)
+void VariantVisitor::visit(trace::WString *node)
{
- ApiTraceEnumSignature *sig = 0;
-
- if (m_loader) {
- sig = m_loader->enumSignature(e->sig->id);
- }
- if (!sig) {
- sig = new ApiTraceEnumSignature(e->sig);
- if (m_loader) {
- m_loader->addEnumSignature(e->sig->id, sig);
- }
- }
+ m_variant = QVariant(QString::fromWCharArray(node->value));
+}
- m_variant = QVariant::fromValue(ApiEnum(sig, e->value));
+void VariantVisitor::visit(trace::Enum *e)
+{
+ m_variant = QVariant::fromValue(ApiEnum(e->sig, e->value));
}
void VariantVisitor::visit(trace::Bitmask *bitmask)
@@ -237,42 +230,24 @@ void VariantVisitor::visit(trace::Repr *repr)
repr->humanValue->visit(*this);
}
-ApiTraceEnumSignature::ApiTraceEnumSignature(const trace::EnumSig *sig)
-{
- for (const trace::EnumValue *it = sig->values;
- it != sig->values + sig->num_values; ++it) {
- QPair<QString, signed long long> pair;
-
- pair.first = QString::fromStdString(it->name);
- pair.second = it->value;
-
- m_names.append(pair);
- }
-}
-
-QString ApiTraceEnumSignature::name(signed long long value) const
-{
- for (ValueList::const_iterator it = m_names.begin();
- it != m_names.end(); ++it) {
- if (value == it->second) {
- return it->first;
- }
- }
- return QString::fromLatin1("%1").arg(value);
-}
-
-ApiEnum::ApiEnum(ApiTraceEnumSignature *sig, signed long long value)
+ApiEnum::ApiEnum(const trace::EnumSig *sig, signed long long value)
: m_sig(sig), m_value(value)
{
+ Q_ASSERT(m_sig);
}
QString ApiEnum::toString() const
{
- if (m_sig) {
- return m_sig->name(m_value);
+ Q_ASSERT(m_sig);
+
+ for (const trace::EnumValue *it = m_sig->values;
+ it != m_sig->values + m_sig->num_values; ++it) {
+ if (m_value == it->value) {
+ return QString::fromLatin1(it->name);
+ }
}
- Q_ASSERT(!"should never happen");
- return QString();
+
+ return QString::fromLatin1("%1").arg(m_value);
}
QVariant ApiEnum::value() const
@@ -284,15 +259,6 @@ QVariant ApiEnum::value() const
return QVariant();
}
-QString ApiEnum::name() const
-{
- if (m_sig) {
- return m_sig->name(m_value);
- }
- Q_ASSERT(!"should never happen");
- return QString();
-}
-
unsigned long long ApiBitmask::value() const
{
return m_value;
@@ -348,7 +314,7 @@ void ApiBitmask::init(const trace::Bitmask *bitmask)
it != bitmask->sig->flags + bitmask->sig->num_flags; ++it) {
QPair<QString, unsigned long long> pair;
- pair.first = QString::fromStdString(it->name);
+ pair.first = QString::fromLatin1(it->name);
pair.second = it->value;
m_sig.append(pair);
@@ -411,11 +377,11 @@ void ApiStruct::init(const trace::Struct *s)
if (!s)
return;
- m_sig.name = QString::fromStdString(s->sig->name);
+ m_sig.name = QString::fromLatin1(s->sig->name);
for (unsigned i = 0; i < s->sig->num_members; ++i) {
- VariantVisitor vis(0);
+ VariantVisitor vis;
m_sig.memberNames.append(
- QString::fromStdString(s->sig->member_names[i]));
+ QString::fromLatin1(s->sig->member_names[i]));
s->members[i]->visit(vis);
m_members.append(vis.variant());
}
@@ -458,7 +424,7 @@ void ApiArray::init(const trace::Array *arr)
m_array.reserve(arr->values.size());
for (int i = 0; i < arr->values.size(); ++i) {
- VariantVisitor vis(0);
+ VariantVisitor vis;
arr->values[i]->visit(vis);
m_array.append(vis.variant());
@@ -470,6 +436,34 @@ ApiTraceState::ApiTraceState()
{
}
+static ApiTexture getTextureFrom(QVariantMap const &image, QString label)
+{
+ QSize size(image[QLatin1String("__width__")].toInt(),
+ image[QLatin1String("__height__")].toInt());
+ QString cls = image[QLatin1String("__class__")].toString();
+ int depth =
+ image[QLatin1String("__depth__")].toInt();
+ QString formatName =
+ image[QLatin1String("__format__")].toString();
+
+ QByteArray dataArray =
+ image[QLatin1String("__data__")].toByteArray();
+
+ QString userLabel =
+ image[QLatin1String("__label__")].toString();
+ if (!userLabel.isEmpty()) {
+ label += QString(", \"%1\"").arg(userLabel);
+ }
+
+ ApiTexture tex;
+ tex.setSize(size);
+ tex.setDepth(depth);
+ tex.setFormatName(formatName);
+ tex.setLabel(label);
+ tex.setData(dataArray);
+ return tex;
+}
+
ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
{
m_parameters = parsedJson[QLatin1String("parameters")].toMap();
@@ -487,29 +481,14 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
m_uniforms = parsedJson[QLatin1String("uniforms")].toMap();
- QVariantMap textures =
- parsedJson[QLatin1String("textures")].toMap();
- for (itr = textures.constBegin(); itr != textures.constEnd(); ++itr) {
- QVariantMap image = itr.value().toMap();
- QSize size(image[QLatin1String("__width__")].toInt(),
- image[QLatin1String("__height__")].toInt());
- QString cls = image[QLatin1String("__class__")].toString();
- int depth =
- image[QLatin1String("__depth__")].toInt();
- QString formatName =
- image[QLatin1String("__format__")].toString();
+ m_buffers = parsedJson[QLatin1String("buffers")].toMap();
- QByteArray dataArray =
- image[QLatin1String("__data__")].toByteArray();
-
- ApiTexture tex;
- tex.setSize(size);
- tex.setDepth(depth);
- tex.setFormatName(formatName);
- tex.setLabel(itr.key());
- tex.contentsFromBase64(dataArray);
-
- m_textures.append(tex);
+ {
+ QVariantMap textures =
+ parsedJson[QLatin1String("textures")].toMap();
+ for (itr = textures.constBegin(); itr != textures.constEnd(); ++itr) {
+ m_textures.append(getTextureFrom(itr.value().toMap(), itr.key()));
+ }
}
QVariantMap fbos =
@@ -525,12 +504,19 @@ ApiTraceState::ApiTraceState(const QVariantMap &parsedJson)
QByteArray dataArray =
buffer[QLatin1String("__data__")].toByteArray();
+ QString label = itr.key();
+ QString userLabel =
+ buffer[QLatin1String("__label__")].toString();
+ if (!userLabel.isEmpty()) {
+ label += QString(", \"%1\"").arg(userLabel);
+ }
+
ApiFramebuffer fbo;
fbo.setSize(size);
fbo.setDepth(depth);
fbo.setFormatName(formatName);
- fbo.setType(itr.key());
- fbo.contentsFromBase64(dataArray);
+ fbo.setType(label);
+ fbo.setData(dataArray);
m_framebuffers.append(fbo);
}
}
@@ -550,6 +536,11 @@ const QVariantMap & ApiTraceState::uniforms() const
return m_uniforms;
}
+const QVariantMap & ApiTraceState::buffers() const
+{
+ return m_buffers;
+}
+
bool ApiTraceState::isEmpty() const
{
return m_parameters.isEmpty() &&
@@ -607,8 +598,7 @@ void ApiTraceCallSignature::setHelpUrl(const QUrl &url)
ApiTraceEvent::ApiTraceEvent()
: m_type(ApiTraceEvent::None),
- m_hasBinaryData(false),
- m_binaryDataIndex(0),
+ m_binaryDataIndex(-1),
m_state(0),
m_staticText(0)
{
@@ -616,11 +606,11 @@ ApiTraceEvent::ApiTraceEvent()
ApiTraceEvent::ApiTraceEvent(Type t)
: m_type(t),
- m_hasBinaryData(false),
- m_binaryDataIndex(0),
+ m_binaryDataIndex(-1),
m_state(0),
m_staticText(0)
{
+ Q_ASSERT(m_type == t);
}
ApiTraceEvent::~ApiTraceEvent()
@@ -629,15 +619,6 @@ ApiTraceEvent::~ApiTraceEvent()
delete m_staticText;
}
-QVariantMap ApiTraceEvent::stateParameters() const
-{
- if (m_state) {
- return m_state->parameters();
- } else {
- return QVariantMap();
- }
-}
-
ApiTraceState *ApiTraceEvent::state() const
{
return m_state;
@@ -648,6 +629,16 @@ void ApiTraceEvent::setState(ApiTraceState *state)
m_state = state;
}
+void ApiTraceEvent::setThumbnail(const QImage & thumbnail)
+{
+ m_thumbnail = thumbnail;
+}
+
+const QImage & ApiTraceEvent::thumbnail() const
+{
+ return m_thumbnail;
+}
+
ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame,
TraceLoader *loader,
const trace::Call *call)
@@ -683,28 +674,27 @@ ApiTraceCall::loadData(TraceLoader *loader,
m_signature = loader->signature(call->sig->id);
if (!m_signature) {
- QString name = QString::fromStdString(call->sig->name);
+ QString name = QString::fromLatin1(call->sig->name);
QStringList argNames;
argNames.reserve(call->sig->num_args);
for (int i = 0; i < call->sig->num_args; ++i) {
- argNames += QString::fromStdString(call->sig->arg_names[i]);
+ argNames += QString::fromLatin1(call->sig->arg_names[i]);
}
m_signature = new ApiTraceCallSignature(name, argNames);
loader->addSignature(call->sig->id, m_signature);
}
if (call->ret) {
- VariantVisitor retVisitor(loader);
+ VariantVisitor retVisitor;
call->ret->visit(retVisitor);
m_returnValue = retVisitor.variant();
}
m_argValues.reserve(call->args.size());
for (int i = 0; i < call->args.size(); ++i) {
if (call->args[i].value) {
- VariantVisitor argVisitor(loader);
+ VariantVisitor argVisitor;
call->args[i].value->visit(argVisitor);
m_argValues.append(argVisitor.variant());
if (m_argValues[i].type() == QVariant::ByteArray) {
- m_hasBinaryData = true;
m_binaryDataIndex = i;
}
} else {
@@ -910,11 +900,12 @@ QUrl ApiTraceCall::helpUrl() const
bool ApiTraceCall::hasBinaryData() const
{
- return m_hasBinaryData;
+ return m_binaryDataIndex >= 0;
}
int ApiTraceCall::binaryDataIndex() const
{
+ Q_ASSERT(hasBinaryData());
return m_binaryDataIndex;
}
@@ -1117,6 +1108,11 @@ bool ApiTraceCall::contains(const QString &str,
return txt.contains(str, sensitivity);
}
+void ApiTraceCall::missingThumbnail()
+{
+ m_parentFrame->parentTrace()->missingThumbnail(this);
+}
+
ApiTraceFrame::ApiTraceFrame(ApiTrace *parentTrace)
: ApiTraceEvent(ApiTraceEvent::Frame),
@@ -1317,12 +1313,7 @@ unsigned ApiTraceFrame::lastCallIndex() const
}
}
-void ApiTraceFrame::setThumbnail(const QImage & thumbnail)
-{
- m_thumbnail = thumbnail;
-}
-
-const QImage & ApiTraceFrame::thumbnail() const
+void ApiTraceFrame::missingThumbnail()
{
- return m_thumbnail;
+ m_parentTrace->missingThumbnail(this);
}
diff --git a/gui/apitracecall.h b/gui/apitracecall.h
index 46ead63e..7ff03400 100644
--- a/gui/apitracecall.h
+++ b/gui/apitracecall.h
@@ -1,5 +1,4 @@
-#ifndef APITRACECALL_H
-#define APITRACECALL_H
+#pragma once
#include "apisurface.h"
@@ -17,9 +16,6 @@ class TraceLoader;
class VariantVisitor : public trace::Visitor
{
public:
- VariantVisitor(TraceLoader *loader)
- : m_loader(loader)
- {}
virtual void visit(trace::Null *);
virtual void visit(trace::Bool *node);
virtual void visit(trace::SInt *node);
@@ -27,6 +23,7 @@ public:
virtual void visit(trace::Float *node);
virtual void visit(trace::Double *node);
virtual void visit(trace::String *node);
+ virtual void visit(trace::WString *node);
virtual void visit(trace::Enum *e);
virtual void visit(trace::Bitmask *bitmask);
virtual void visit(trace::Struct *str);
@@ -40,7 +37,6 @@ public:
return m_variant;
}
private:
- TraceLoader *m_loader;
QVariant m_variant;
};
@@ -52,29 +48,16 @@ struct ApiTraceError
QString message;
};
-class ApiTraceEnumSignature
-{
-public:
- ApiTraceEnumSignature(const trace::EnumSig *sig);
-
- QString name(signed long long value) const;
-
-private:
- typedef QList<QPair<QString, signed long long> > ValueList;
- ValueList m_names;
-};
-
class ApiEnum
{
public:
- ApiEnum(ApiTraceEnumSignature *sig=0, signed long long value = 0);
+ ApiEnum(const trace::EnumSig *sig=0, signed long long value = 0);
QString toString() const;
QVariant value() const;
- QString name() const;
private:
- ApiTraceEnumSignature *m_sig;
+ const trace::EnumSig *m_sig;
signed long long m_value;
};
Q_DECLARE_METATYPE(ApiEnum);
@@ -165,6 +148,7 @@ public:
const QVariantMap & parameters() const;
const QMap<QString, QString> & shaderSources() const;
const QVariantMap & uniforms() const;
+ const QVariantMap & buffers() const;
const QList<ApiTexture> & textures() const;
const QList<ApiFramebuffer> & framebuffers() const;
@@ -173,6 +157,7 @@ private:
QVariantMap m_parameters;
QMap<QString, QString> m_shaderSources;
QVariantMap m_uniforms;
+ QVariantMap m_buffers;
QList<ApiTexture> m_textures;
QList<ApiFramebuffer> m_framebuffers;
};
@@ -225,7 +210,6 @@ public:
virtual int callIndex(ApiTraceCall *call) const = 0;
virtual ApiTraceEvent *eventAtRow(int row) const = 0;
- QVariantMap stateParameters() const;
ApiTraceState *state() const;
void setState(ApiTraceState *state);
bool hasState() const
@@ -233,13 +217,19 @@ public:
return m_state && !m_state->isEmpty();
}
+ void setThumbnail(const QImage & thumbnail);
+ const QImage & thumbnail() const;
+
+ virtual void missingThumbnail() = 0;
+
protected:
int m_type : 4;
- mutable bool m_hasBinaryData;
mutable int m_binaryDataIndex:8;
ApiTraceState *m_state;
mutable QStaticText *m_staticText;
+
+ QImage m_thumbnail;
};
Q_DECLARE_METATYPE(ApiTraceEvent*);
@@ -297,6 +287,9 @@ public:
QString backtrace() const;
void setBacktrace(QString backtrace);
+
+ void missingThumbnail();
+
private:
void loadData(TraceLoader *loader,
const trace::Call *tcall);
@@ -363,8 +356,7 @@ public:
void setLastCallIndex(unsigned index);
unsigned lastCallIndex() const;
- void setThumbnail(const QImage & thumbnail);
- const QImage & thumbnail() const;
+ void missingThumbnail();
private:
ApiTrace *m_parentTrace;
@@ -374,9 +366,5 @@ private:
bool m_loaded;
unsigned m_callsToLoad;
unsigned m_lastCallIndex;
- QImage m_thumbnail;
};
Q_DECLARE_METATYPE(ApiTraceFrame*);
-
-
-#endif
diff --git a/gui/apitracefilter.h b/gui/apitracefilter.h
index 35f627df..b9cd75d5 100644
--- a/gui/apitracefilter.h
+++ b/gui/apitracefilter.h
@@ -1,5 +1,4 @@
-#ifndef APITRACEFILTER_H
-#define APITRACEFILTER_H
+#pragma once
#include <QRegExp>
#include <QSortFilterProxyModel>
@@ -40,5 +39,3 @@ private:
FilterOptions m_filters;
QRegExp m_customRegexp;
};
-
-#endif
diff --git a/gui/apitracemodel.cpp b/gui/apitracemodel.cpp
index fb339677..51908dea 100644
--- a/gui/apitracemodel.cpp
+++ b/gui/apitracemodel.cpp
@@ -384,7 +384,6 @@ void ApiTraceModel::fetchMore(const QModelIndex &parent)
ApiTraceEvent *event = item(parent);
if (event && event->type() == ApiTraceEvent::Frame) {
ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
- QModelIndex index = createIndex(frame->number, 0, frame);
Q_ASSERT(!frame->isLoaded());
m_loadingFrames.insert(frame);
diff --git a/gui/apitracemodel.h b/gui/apitracemodel.h
index e7354aa6..76876c20 100644
--- a/gui/apitracemodel.h
+++ b/gui/apitracemodel.h
@@ -1,5 +1,4 @@
-#ifndef APITRACEMODEL_H
-#define APITRACEMODEL_H
+#pragma once
#include <QAbstractItemModel>
@@ -67,5 +66,3 @@ private:
ApiTrace *m_trace;
QSet<ApiTraceFrame*> m_loadingFrames;
};
-
-#endif
diff --git a/gui/argumentseditor.h b/gui/argumentseditor.h
index 73cd4580..148b3ff6 100644
--- a/gui/argumentseditor.h
+++ b/gui/argumentseditor.h
@@ -1,5 +1,4 @@
-#ifndef ARGUMENTSEDITOR_H
-#define ARGUMENTSEDITOR_H
+#pragma once
#include "apitracecall.h"
#include "ui_argumentseditor.h"
@@ -182,5 +181,3 @@ private:
ApiTraceCall *m_call;
};
-
-#endif
diff --git a/gui/calldurationgraph.h b/gui/calldurationgraph.h
index 0c7e8c91..be6fe45e 100644
--- a/gui/calldurationgraph.h
+++ b/gui/calldurationgraph.h
@@ -1,5 +1,4 @@
-#ifndef CALLDURATIONGRAPH_H
-#define CALLDURATIONGRAPH_H
+#pragma once
#include "graphing/graphwidget.h"
#include "trace_profiler.hpp"
@@ -170,4 +169,3 @@ private:
SelectionState* m_selectionState;
};
-#endif
diff --git a/gui/glsledit.cpp b/gui/glsledit.cpp
index b73f0980..8cd7f022 100644
--- a/gui/glsledit.cpp
+++ b/gui/glsledit.cpp
@@ -29,7 +29,7 @@
#include "glsledit.h"
-#include <QtGui>
+#include <QtWidgets>
class GLSLBlockData: public QTextBlockUserData
{
diff --git a/gui/graphing/frameaxiswidget.h b/gui/graphing/frameaxiswidget.h
index 59fdc162..4b2c4cbb 100644
--- a/gui/graphing/frameaxiswidget.h
+++ b/gui/graphing/frameaxiswidget.h
@@ -1,5 +1,4 @@
-#ifndef FRAMEAXISWIDGET_H
-#define FRAMEAXISWIDGET_H
+#pragma once
#include "graphaxiswidget.h"
@@ -30,5 +29,3 @@ public:
protected:
FrameDataProvider* m_data;
};
-
-#endif
diff --git a/gui/graphing/graphaxiswidget.h b/gui/graphing/graphaxiswidget.h
index 6ae00800..a8d1c01a 100644
--- a/gui/graphing/graphaxiswidget.h
+++ b/gui/graphing/graphaxiswidget.h
@@ -1,5 +1,4 @@
-#ifndef GRAPHAXISWIDGET_H
-#define GRAPHAXISWIDGET_H
+#pragma once
#include "graphing.h"
@@ -69,5 +68,3 @@ protected:
QPoint m_mousePressPosition;
qint64 m_mousePressValue;
};
-
-#endif
diff --git a/gui/graphing/graphing.h b/gui/graphing/graphing.h
index 35b4a913..f97df8b3 100644
--- a/gui/graphing/graphing.h
+++ b/gui/graphing/graphing.h
@@ -1,5 +1,4 @@
-#ifndef GRAPHING_H
-#define GRAPHING_H
+#pragma once
#include <QString>
@@ -44,5 +43,3 @@ public:
/* Set pointer to selection state */
virtual void setSelectionState(SelectionState* state) = 0;
};
-
-#endif
diff --git a/gui/graphing/graphlabelwidget.h b/gui/graphing/graphlabelwidget.h
index 49c0cd49..050dc40d 100644
--- a/gui/graphing/graphlabelwidget.h
+++ b/gui/graphing/graphlabelwidget.h
@@ -1,5 +1,4 @@
-#ifndef GRAPHLABELWIDGET_H
-#define GRAPHLABELWIDGET_H
+#pragma once
#include <QWidget>
#include <QPainter>
@@ -38,5 +37,3 @@ protected:
int m_flags;
QString m_text;
};
-
-#endif
diff --git a/gui/graphing/graphview.h b/gui/graphing/graphview.h
index 6b881d4e..94328b69 100644
--- a/gui/graphing/graphview.h
+++ b/gui/graphing/graphview.h
@@ -1,5 +1,4 @@
-#ifndef GRAPHVIEW_H
-#define GRAPHVIEW_H
+#pragma once
#include "graphing.h"
@@ -89,5 +88,3 @@ protected:
qint64 m_graphTop;
} m_previous;
};
-
-#endif
diff --git a/gui/graphing/graphwidget.h b/gui/graphing/graphwidget.h
index 16b77868..17cb4651 100644
--- a/gui/graphing/graphwidget.h
+++ b/gui/graphing/graphwidget.h
@@ -1,5 +1,4 @@
-#ifndef GRAPHWIDGET_H
-#define GRAPHWIDGET_H
+#pragma once
#include "graphview.h"
#include "graphaxiswidget.h"
@@ -108,5 +107,3 @@ protected:
qint64 m_verticalEnd;
Qt::ScrollBarPolicy m_verticalScrollbarPolicy;
};
-
-#endif
diff --git a/gui/graphing/heatmapverticalaxiswidget.h b/gui/graphing/heatmapverticalaxiswidget.h
index ca64adb4..9a21c25b 100644
--- a/gui/graphing/heatmapverticalaxiswidget.h
+++ b/gui/graphing/heatmapverticalaxiswidget.h
@@ -1,5 +1,4 @@
-#ifndef HEATMAPVERTICALAXISWIDGET_H
-#define HEATMAPVERTICALAXISWIDGET_H
+#pragma once
#include "heatmapview.h"
#include "graphaxiswidget.h"
@@ -20,5 +19,3 @@ protected:
int m_rowHeight;
HeatmapDataProvider* m_data;
};
-
-#endif
diff --git a/gui/graphing/heatmapview.h b/gui/graphing/heatmapview.h
index 781c9a7a..86d8848d 100644
--- a/gui/graphing/heatmapview.h
+++ b/gui/graphing/heatmapview.h
@@ -1,5 +1,4 @@
-#ifndef HEATMAPVIEW_H
-#define HEATMAPVIEW_H
+#pragma once
#include "graphview.h"
@@ -120,5 +119,3 @@ protected:
int m_rowHeight;
HeatmapDataProvider* m_data;
};
-
-#endif
diff --git a/gui/graphing/histogramview.h b/gui/graphing/histogramview.h
index 563d664b..ae89f7b1 100644
--- a/gui/graphing/histogramview.h
+++ b/gui/graphing/histogramview.h
@@ -1,5 +1,4 @@
-#ifndef HISTOGRAMVIEW_H
-#define HISTOGRAMVIEW_H
+#pragma once
#include "graphview.h"
@@ -37,5 +36,3 @@ protected:
GraphDataProvider* m_data;
};
-
-#endif
diff --git a/gui/graphing/timeaxiswidget.h b/gui/graphing/timeaxiswidget.h
index 836651cb..7f79a399 100644
--- a/gui/graphing/timeaxiswidget.h
+++ b/gui/graphing/timeaxiswidget.h
@@ -1,5 +1,4 @@
-#ifndef TIMEAXISWIDGET_H
-#define TIMEAXISWIDGET_H
+#pragma once
#include "graphaxiswidget.h"
@@ -12,5 +11,3 @@ public:
virtual void paintEvent(QPaintEvent *e);
};
-
-#endif
diff --git a/gui/imageviewer.cpp b/gui/imageviewer.cpp
index 4c3f2bdc..6953c009 100644
--- a/gui/imageviewer.cpp
+++ b/gui/imageviewer.cpp
@@ -61,10 +61,10 @@ ImageViewer::~ImageViewer()
delete m_image;
}
-void ImageViewer::setBase64Data(const QByteArray &base64)
+void ImageViewer::setData(const QByteArray &data)
{
delete m_image;
- m_image = ApiSurface::imageFromBase64(base64);
+ m_image = ApiSurface::imageFromData(data);
m_convertedImage = ApiSurface::qimageFromRawImage(m_image);
m_pixelWidget->setSurface(m_convertedImage);
updateGeometry();
@@ -126,6 +126,10 @@ QString createPixelLabel(image::Image *img, int x, int y)
unsigned char *pixelLocation = 0;
T *pixel;
+ if (x < 0 || y < 0 || x >= img->width || y >= img->height) {
+ return QString::fromLatin1("(Out of bounds)");
+ }
+
pixelLocation = img->pixels + img->stride() * y;
pixelLocation += x * img->bytesPerPixel;
pixel = ((T*)pixelLocation);
diff --git a/gui/imageviewer.h b/gui/imageviewer.h
index ce5d9bdd..7cb2eb52 100644
--- a/gui/imageviewer.h
+++ b/gui/imageviewer.h
@@ -1,5 +1,4 @@
-#ifndef IMAGEVIEWER_H
-#define IMAGEVIEWER_H
+#pragma once
#include "ui_imageviewer.h"
#include <QDialog>
@@ -18,7 +17,7 @@ public:
ImageViewer(QWidget *parent = 0);
~ImageViewer();
- void setBase64Data(const QByteArray &base64);
+ void setData(const QByteArray &data);
QSize sizeHint() const;
@@ -35,6 +34,3 @@ private:
QImage m_convertedImage;
PixelWidget *m_pixelWidget;
};
-
-
-#endif
diff --git a/gui/jumpwidget.h b/gui/jumpwidget.h
index 5f71c002..8fec83f4 100644
--- a/gui/jumpwidget.h
+++ b/gui/jumpwidget.h
@@ -1,5 +1,4 @@
-#ifndef JUMPWIDGET_H
-#define JUMPWIDGET_H
+#pragma once
#include "ui_jumpwidget.h"
#include <QWidget>
@@ -27,5 +26,3 @@ protected:
private:
Ui_JumpWidget m_ui;
};
-
-#endif
diff --git a/gui/leaktracethread.cpp b/gui/leaktracethread.cpp
new file mode 100644
index 00000000..a5b1e346
--- /dev/null
+++ b/gui/leaktracethread.cpp
@@ -0,0 +1,82 @@
+#include "leaktracethread.h"
+
+#include "apitracecall.h"
+
+#include <QDebug>
+#include <QProcess>
+
+void LeakTraceThread::run()
+{
+ QString msg = QLatin1String("Replay finished!");
+
+ /*
+ * Construct command line
+ */
+
+ QString prog = "apitrace";
+ QStringList arguments;
+ arguments << "leaks";
+ arguments << filename;
+
+ /*
+ * Start the process.
+ */
+
+ {
+ QDebug debug(QtDebugMsg);
+ debug << "Running:";
+ debug << prog;
+ foreach (const QString &argument, arguments) {
+ debug << argument;
+ }
+ }
+
+ QProcess process;
+
+ process.start(prog, arguments, QIODevice::ReadOnly);
+ if (!process.waitForStarted(-1)) {
+ return;
+ }
+
+ /*
+ * Wait for process termination
+ */
+
+ process.waitForFinished(-1);
+
+ if (process.exitStatus() != QProcess::NormalExit) {
+ msg = QLatin1String("Process crashed");
+ } else if (process.exitCode() != 0) {
+ msg = QLatin1String("Process exited with non zero exit code");
+ }
+
+ /*
+ * Parse errors.
+ */
+
+ QList<ApiTraceError> errors;
+ process.setReadChannel(QProcess::StandardError);
+ QRegExp regexp("(^\\d+): +(\\b\\w+\\b): ([^\\r\\n]+)[\\r\\n]*$");
+ while (!process.atEnd()) {
+ QString line = process.readLine();
+ qDebug() << line;
+ if (regexp.indexIn(line) != -1) {
+ qDebug() << "error";
+ ApiTraceError error;
+ error.callIndex = regexp.cap(1).toInt();
+ error.type = regexp.cap(2);
+ error.message = regexp.cap(3);
+ errors.append(error);
+ } else {
+ qDebug() << line;
+ }
+ }
+
+ /*
+ * Emit signals
+ */
+
+ error = !errors.empty();
+ emit leakTraceErrors(errors);
+}
+
diff --git a/gui/leaktracethread.h b/gui/leaktracethread.h
new file mode 100644
index 00000000..cbc16ea0
--- /dev/null
+++ b/gui/leaktracethread.h
@@ -0,0 +1,35 @@
+
+#pragma once
+
+#include <QThread>
+#include <QString>
+#include <QList>
+
+struct ApiTraceError;
+
+class LeakTraceThread: public QThread{
+
+ Q_OBJECT
+
+ public:
+
+ LeakTraceThread(QString _filename):filename(_filename){}
+
+
+ bool hasError()const {return error;}
+ signals:
+
+ void leakTraceErrors(const QList<ApiTraceError> &errors);
+
+ protected:
+
+ virtual void run();
+
+ private:
+
+ QString filename;
+
+ bool error=false;
+};
+
+
diff --git a/gui/main.cpp b/gui/main.cpp
index b98bce60..d8f40656 100644
--- a/gui/main.cpp
+++ b/gui/main.cpp
@@ -18,7 +18,7 @@ Q_DECLARE_METATYPE(QVector<ApiTraceCall*>);
Q_DECLARE_METATYPE(Qt::CaseSensitivity);
Q_DECLARE_METATYPE(ApiTrace::SearchResult);
Q_DECLARE_METATYPE(ApiTrace::SearchRequest);
-Q_DECLARE_METATYPE(QList<QImage>);
+Q_DECLARE_METATYPE(ImageHash);
static void usage(void)
{
@@ -30,7 +30,6 @@ static void usage(void)
int main(int argc, char **argv)
{
- QApplication::setGraphicsSystem("raster");
QApplication app(argc, argv);
qRegisterMetaType<QList<ApiTraceFrame*> >();
@@ -39,7 +38,7 @@ int main(int argc, char **argv)
qRegisterMetaType<Qt::CaseSensitivity>();
qRegisterMetaType<ApiTrace::SearchResult>();
qRegisterMetaType<ApiTrace::SearchRequest>();
- qRegisterMetaType<QList<QImage> >();
+ qRegisterMetaType<ImageHash>();
#ifndef Q_OS_WIN
os::String currentProcess = os::getProcessName();
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index f10434d1..129e634d 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -17,10 +17,14 @@
#include "traceprocess.h"
#include "trimprocess.h"
#include "thumbnail.h"
+#include "androidretracer.h"
+#include "androidfiledialog.h"
#include "ui_retracerdialog.h"
#include "ui_profilereplaydialog.h"
#include "vertexdatainterpreter.h"
#include "trace_profiler.hpp"
+#include "image/image.hpp"
+#include "leaktracethread.h"
#include <QAction>
#include <QApplication>
@@ -32,16 +36,18 @@
#include <QLineEdit>
#include <QMessageBox>
#include <QProgressBar>
+#include <QSettings>
#include <QToolBar>
#include <QUrl>
#include <QVBoxLayout>
#include <QWebPage>
#include <QWebView>
+typedef QLatin1String _;
MainWindow::MainWindow()
: QMainWindow(),
- m_api(trace::API_GL),
+ m_api(trace::API_UNKNOWN),
m_initalCallNum(-1),
m_selectedEvent(0),
m_stateEvent(0),
@@ -97,6 +103,94 @@ void MainWindow::openTrace()
}
}
+void MainWindow::saveTrace()
+{
+ QString localFile = m_trace->fileName();
+
+ QString fileName =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Save Trace As"),
+ QFileInfo(localFile).fileName(),
+ tr("Trace Files (*.trace);;All Files (*)"));
+
+ if (!fileName.isEmpty()) {
+ QFile::copy(localFile, fileName);
+ }
+}
+
+void MainWindow::pullTrace()
+{
+ QString androidFile = AndroidFileDialog::getOpenFileName(this, tr("Open trace file"), _("/sdcard"), _(".trace"));
+ if (androidFile.isEmpty())
+ return;
+
+ QString localFile =
+ QFileDialog::getSaveFileName(
+ this,
+ tr("Open Trace"),
+ QDir::homePath() + _("/") + QFileInfo(androidFile).fileName(),
+ tr("Trace Files (*.trace)"));
+
+ if (localFile.isEmpty())
+ return;
+
+ AndroidUtils au;
+ connect(&au, SIGNAL(statusMessage(QString)), statusBar(), SLOT(showMessage(QString)));
+ if (au.updateFile(localFile, androidFile, AndroidUtils::PullFromDeviceToLocal)) {
+ m_androidFilePath = androidFile;
+ linkLocalAndroidTrace(localFile, androidFile);
+ newTraceFile(localFile);
+ m_ui.actionRetraceOnAndroid->setChecked(true);
+ } else {
+ QMessageBox::warning(this, tr("Error"),
+ tr("Pulling '%1' for Android device failed.").arg(androidFile));
+ }
+}
+
+void MainWindow::pushTrace()
+{
+ QString localFile = m_trace->fileName();
+ QString androidFile = AndroidFileDialog::getSaveFileName(this, tr("Save trace file"), _("/sdcard/") + QFileInfo(localFile).fileName(), _(".trace"));
+ if (androidFile.isEmpty())
+ return;
+ AndroidUtils au;
+ connect(&au, SIGNAL(statusMessage(QString)), statusBar(), SLOT(showMessage(QString)));
+ if (au.updateFile(localFile, androidFile, AndroidUtils::PushLocalToDevice)) {
+ m_androidFilePath = androidFile;
+ linkLocalAndroidTrace(localFile, androidFile);
+ } else {
+ QMessageBox::warning(this, tr("Error"),
+ tr("Pushing '%1' to Android device failed.\n"
+ "Make usre you have enough space on device.").arg(localFile));
+ }
+ statusBar()->showMessage(QString());
+}
+
+void MainWindow::linkTrace()
+{
+ QString localFile = m_trace->fileName();
+ QString androidFile = AndroidFileDialog::getOpenFileName(this, tr("Link trace file %1").arg(localFile),
+ _("/sdcard/") + QFileInfo(localFile).fileName(),
+ _(".trace"));
+ if (androidFile.isEmpty())
+ return;
+ m_androidFilePath = androidFile;
+ linkLocalAndroidTrace(localFile, androidFile);
+}
+
+void MainWindow::retraceOnAndroid(bool android)
+{
+ delete m_retracer;
+ if (android) {
+ m_retracer = new AndroidRetracer(this);
+ m_androidFilePath = linkedAndroidTrace(m_trace->fileName());
+ } else {
+ m_retracer = new Retracer(this);
+ }
+ initRetraceConnections();
+}
+
void MainWindow::loadTrace(const QString &fileName, int callNum)
{
if (!QFile::exists(fileName)) {
@@ -216,7 +310,7 @@ void MainWindow::replayStart()
m_retracer->setCoreProfile(
dlgUi.coreProfileCB->isChecked());
- m_retracer->setProfiling(false, false, false);
+ m_retracer->setProfiling(false, false, false, false);
replayTrace(false, false);
}
@@ -236,12 +330,17 @@ void MainWindow::replayProfile()
QDialog dlg;
Ui_ProfileReplayDialog dlgUi;
dlgUi.setupUi(&dlg);
+ if (m_ui.actionRetraceOnAndroid->isChecked()) {
+ dlgUi.gpuTimesCB->setChecked(false);
+ dlgUi.pixelsDrawnCB->setChecked(false);
+ }
if (dlg.exec() == QDialog::Accepted) {
m_retracer->setProfiling(
dlgUi.gpuTimesCB->isChecked(),
dlgUi.cpuTimesCB->isChecked(),
- dlgUi.pixelsDrawnCB->isChecked());
+ dlgUi.pixelsDrawnCB->isChecked(),
+ dlgUi.memoryUsageCB->isChecked());
replayTrace(false, false);
}
@@ -255,7 +354,10 @@ void MainWindow::replayStop()
void MainWindow::newTraceFile(const QString &fileName)
{
- qDebug()<< "Loading : " <<fileName;
+ if (m_ui.actionRetraceOnAndroid->isChecked())
+ m_androidFilePath = linkedAndroidTrace(fileName);
+
+ qDebug()<< "Loading:" << fileName;
m_progressBar->setValue(0);
m_trace->setFileName(fileName);
@@ -297,6 +399,15 @@ void MainWindow::replayError(const QString &message)
this, tr("Replay Failed"), message);
}
+void MainWindow::loadError(const QString &message)
+{
+ m_progressBar->hide();
+ statusBar()->showMessage(
+ tr("Load unsuccessful."), 2000);
+ QMessageBox::warning(
+ this, tr("Load Failed"), message);
+}
+
void MainWindow::startedLoadingTrace()
{
Q_ASSERT(m_trace);
@@ -322,6 +433,9 @@ void MainWindow::finishedLoadingTrace()
} else {
m_trace->finishedParsing();
}
+ m_ui.actionPushTrace->setEnabled(m_api == trace::API_EGL);
+ m_ui.actionLinkTrace->setEnabled(m_api == trace::API_EGL);
+ m_ui.actionRetraceOnAndroid->setEnabled(m_api == trace::API_EGL);
}
void MainWindow::replayTrace(bool dumpState, bool dumpThumbnails)
@@ -330,6 +444,48 @@ void MainWindow::replayTrace(bool dumpState, bool dumpThumbnails)
return;
}
+ if (m_ui.actionRetraceOnAndroid->isChecked()) {
+ if (m_androidFilePath.isEmpty()) {
+ QMessageBox::information(this, tr("Info"), tr("Current opened file is not linked with any file on the Android device."));
+ linkTrace();
+ if (m_androidFilePath.isEmpty())
+ return;
+ }
+ // make sure both trace files (local & android) are the same
+ AndroidUtils au;
+ if (!au.sameFile(m_trace->fileName(), m_androidFilePath)) {
+ QMessageBox msgBox;
+ msgBox.setText("Local file is different from the Android file.\nWhat do you want to do?");
+ msgBox.setDetailedText(tr("Chossing:\n"
+ " - \"Update Android\" will push the local file to the device (replacing it).\n"
+ " - \"Update local\" will pull the device file to local (replacing it)."));
+ QAbstractButton *updateAndroid =
+ msgBox.addButton(tr("Update Android"), QMessageBox::ActionRole);
+ QAbstractButton *updateLocal =
+ msgBox.addButton(tr("Update local"), QMessageBox::ActionRole);
+ msgBox.addButton(QMessageBox::Cancel);
+ msgBox.exec();
+ if (msgBox.clickedButton() == updateAndroid) {
+ statusBar()->showMessage(tr("Please wait, pushing the file to device might take long time ..."));
+ if (!au.updateFile(m_trace->fileName(), m_androidFilePath, AndroidUtils::PushLocalToDevice)) {
+ QMessageBox::warning(this, tr("Error"),
+ tr("Pushing '%1' to Android device failed.\n"
+ "Make usre you have enough space on device.").arg(m_trace->fileName()));
+ }
+ } else if (msgBox.clickedButton() == updateLocal) {
+ statusBar()->showMessage(tr("Please wait, pulling the file from device might take long time ..."));
+ if (!au.updateFile(m_trace->fileName(), m_androidFilePath, AndroidUtils::PullFromDeviceToLocal)) {
+ QMessageBox::warning(this, tr("Error"),
+ tr("Pulling '%1' for Android device failed.").arg(m_androidFilePath));
+ }
+ } else {
+ return;
+ }
+ statusBar()->showMessage(QString());
+ }
+ static_cast<AndroidRetracer *>(m_retracer)->setAndroidFileName(m_androidFilePath);
+ }
+
m_retracer->setFileName(m_trace->fileName());
m_retracer->setAPI(m_api);
m_retracer->setCaptureState(dumpState);
@@ -353,6 +509,11 @@ void MainWindow::replayTrace(bool dumpState, bool dumpThumbnails)
}
m_retracer->setCaptureAtCallNumber(index);
}
+ if (m_trace->isMissingThumbnails()) {
+ m_retracer->resetThumbnailsToCapture();
+ m_trace->iterateMissingThumbnails(this, this->thumbnailCallback);
+ m_trace->resetMissingThumbnails();
+ }
m_retracer->start();
m_ui.actionStop->setEnabled(true);
@@ -484,8 +645,9 @@ variantListToItems(const QVector<QVariant> &lst,
const QVector<QVariant> &defaultLst,
QList<QTreeWidgetItem *> &items)
{
+ int width = QString::number(lst.count()).length();
for (int i = 0; i < lst.count(); ++i) {
- QString key = QString::number(i);
+ QString key = QString::number(i).rightJustified(width, ' ');
QVariant var = lst[i];
QVariant defaultVar;
@@ -500,23 +662,42 @@ variantListToItems(const QVector<QVariant> &lst,
}
}
-static bool
-isVariantDeep(const QVariant &var)
+// Get the depth (dimensionality) of the variant:
+//
+// It will return:
+// 0: scalar
+// 1: vector (up to 4 elems)
+// 2: matrix (up to 4x4 elements)
+// 3: array
+// 4: map, etc.
+static unsigned
+getVariantDepth(const QVariant &var)
{
if (var.type() == QVariant::List) {
QVector<QVariant> lst = var.toList().toVector();
+ unsigned maxDepth = 0;
for (int i = 0; i < lst.count(); ++i) {
- if (isVariantDeep(lst[i])) {
- return true;
+ unsigned elemDepth = getVariantDepth(lst[i]);
+ if (elemDepth > maxDepth) {
+ if (elemDepth >= 4) {
+ return elemDepth;
+ }
+ maxDepth = elemDepth;
+ }
+ }
+ if (lst.count() > 1) {
+ if (lst.count() > 4) {
+ return 3;
}
+ maxDepth += 1;
}
- return false;
+ return maxDepth;
} else if (var.type() == QVariant::Map) {
- return true;
+ return 4;
} else if (var.type() == QVariant::Hash) {
- return true;
+ return 4;
} else {
- return false;
+ return 0;
}
}
@@ -530,7 +711,7 @@ variantToItem(const QString &key, const QVariant &var,
QString val;
- bool deep = isVariantDeep(var);
+ bool deep = getVariantDepth(var) >= 3;
if (!deep) {
variantToString(var, val);
}
@@ -579,12 +760,42 @@ static void addSurfaceItem(const ApiSurface &surface,
.arg(width)
.arg(height);
+ QString toolTip;
+ toolTip += QString::fromLatin1("label = %1\n").arg(label);
+ toolTip += QString::fromLatin1("format = %1\n").arg(surface.formatName());
+ toolTip += QString::fromLatin1("width = %1\n").arg(width);
+ toolTip += QString::fromLatin1("height = %1\n").arg(height);
+ item->setToolTip(0, toolTip);
+ item->setToolTip(1, toolTip);
+
//item->setText(1, descr);
QLabel *l = new QLabel(descr, tree);
l->setWordWrap(true);
tree->setItemWidget(item, 1, l);
- item->setData(0, Qt::UserRole, surface.base64Data());
+ item->setData(0, Qt::UserRole, surface.data());
+}
+
+void MainWindow::addSurface(const ApiTexture &image, QTreeWidgetItem *parent) {
+ addSurfaceItem(image, image.label(), parent, m_ui.surfacesTreeWidget);
+}
+
+void MainWindow::addSurface(const ApiFramebuffer &fbo, QTreeWidgetItem *parent) {
+ addSurfaceItem(fbo, fbo.type(), parent, m_ui.surfacesTreeWidget);
+}
+
+template <typename Surface>
+void MainWindow::addSurfaces(const QList<Surface> &surfaces, const char *label) {
+ if (!surfaces.isEmpty()) {
+ QTreeWidgetItem *imageItem = new QTreeWidgetItem(m_ui.surfacesTreeWidget);
+ imageItem->setText(0, tr(label));
+ if (surfaces.count() <= 6) {
+ imageItem->setExpanded(true);
+ }
+ for (int i = 0; i < surfaces.count(); ++i) {
+ addSurface(surfaces[i], imageItem);
+ }
+ }
}
void MainWindow::fillStateForFrame()
@@ -624,6 +835,11 @@ void MainWindow::fillStateForFrame()
variantMapToItems(state.uniforms(), QVariantMap(), uniformsItems);
m_ui.uniformsTreeWidget->insertTopLevelItems(0, uniformsItems);
+ m_ui.buffersTreeWidget->clear();
+ QList<QTreeWidgetItem *> buffersItems;
+ variantMapToItems(state.buffers(), QVariantMap(), buffersItems);
+ m_ui.buffersTreeWidget->insertTopLevelItems(0, buffersItems);
+
const QList<ApiTexture> &textures =
state.textures();
const QList<ApiFramebuffer> &fbos =
@@ -634,38 +850,8 @@ void MainWindow::fillStateForFrame()
m_ui.surfacesTab->setDisabled(false);
} else {
m_ui.surfacesTreeWidget->setIconSize(QSize(THUMBNAIL_SIZE, THUMBNAIL_SIZE));
- if (!textures.isEmpty()) {
- QTreeWidgetItem *textureItem =
- new QTreeWidgetItem(m_ui.surfacesTreeWidget);
- textureItem->setText(0, tr("Textures"));
- if (textures.count() <= 6) {
- textureItem->setExpanded(true);
- }
-
- for (int i = 0; i < textures.count(); ++i) {
- const ApiTexture &texture =
- textures[i];
- addSurfaceItem(texture, texture.label(),
- textureItem,
- m_ui.surfacesTreeWidget);
- }
- }
- if (!fbos.isEmpty()) {
- QTreeWidgetItem *fboItem =
- new QTreeWidgetItem(m_ui.surfacesTreeWidget);
- fboItem->setText(0, tr("Framebuffers"));
- if (fbos.count() <= 6) {
- fboItem->setExpanded(true);
- }
-
- for (int i = 0; i < fbos.count(); ++i) {
- const ApiFramebuffer &fbo =
- fbos[i];
- addSurfaceItem(fbo, fbo.type(),
- fboItem,
- m_ui.surfacesTreeWidget);
- }
- }
+ addSurfaces(textures, "Textures");
+ addSurfaces(fbos, "Framebuffers");
m_ui.surfacesTab->setEnabled(true);
}
m_ui.stateDock->show();
@@ -679,6 +865,27 @@ void MainWindow::showSettings()
dialog.exec();
}
+void MainWindow::leakTrace()
+{
+ LeakTraceThread *t=new LeakTraceThread(m_trace->fileName());
+
+ connect (t,SIGNAL(finished()),this,SLOT(leakTraceFinished()));
+
+ connect (t,SIGNAL(leakTraceErrors(const QList<ApiTraceError> &)),
+ this,SLOT(slotRetraceErrors(const QList<ApiTraceError>&)));
+
+ t->start();
+}
+
+void MainWindow::leakTraceFinished(){
+
+ LeakTraceThread *t = qobject_cast<LeakTraceThread*>(sender());
+
+ m_ui.errorsDock->setVisible(t->hasError());
+
+ delete t;
+}
+
void MainWindow::openHelp(const QUrl &url)
{
QDesktopServices::openUrl(url);
@@ -734,8 +941,8 @@ void MainWindow::showSelectedSurface()
viewer->setAttribute(Qt::WA_DeleteOnClose, true);
- QByteArray base64Data = var.value<QByteArray>();
- viewer->setBase64Data(base64Data);
+ QByteArray data = var.value<QByteArray>();
+ viewer->setData(data);
viewer->show();
viewer->raise();
@@ -817,6 +1024,8 @@ void MainWindow::initObjects()
void MainWindow::initConnections()
{
+ connect(m_trace, SIGNAL(problemLoadingTrace(const QString&)),
+ this, SLOT(loadError(const QString&)));
connect(m_trace, SIGNAL(startedLoadingTrace()),
this, SLOT(startedLoadingTrace()));
connect(m_trace, SIGNAL(loaded(int)),
@@ -838,21 +1047,13 @@ void MainWindow::initConnections()
connect(m_trace, SIGNAL(foundCallIndex(ApiTraceCall*)),
this, SLOT(slotJumpToResult(ApiTraceCall*)));
- connect(m_retracer, SIGNAL(finished(const QString&)),
- this, SLOT(replayFinished(const QString&)));
- connect(m_retracer, SIGNAL(error(const QString&)),
- this, SLOT(replayError(const QString&)));
- connect(m_retracer, SIGNAL(foundState(ApiTraceState*)),
- this, SLOT(replayStateFound(ApiTraceState*)));
- connect(m_retracer, SIGNAL(foundProfile(trace::Profile*)),
- this, SLOT(replayProfileFound(trace::Profile*)));
- connect(m_retracer, SIGNAL(foundThumbnails(const QList<QImage>&)),
- this, SLOT(replayThumbnailsFound(const QList<QImage>&)));
- connect(m_retracer, SIGNAL(retraceErrors(const QList<ApiTraceError>&)),
- this, SLOT(slotRetraceErrors(const QList<ApiTraceError>&)));
+ initRetraceConnections();
+
connect(m_ui.vertexInterpretButton, SIGNAL(clicked()),
m_vdataInterpreter, SLOT(interpretData()));
+ connect(m_ui.bufferExportButton, SIGNAL(clicked()),
+ this, SLOT(exportBufferData()));
connect(m_ui.vertexTypeCB, SIGNAL(currentIndexChanged(const QString&)),
m_vdataInterpreter, SLOT(setTypeFromString(const QString&)));
connect(m_ui.vertexStrideSB, SIGNAL(valueChanged(int)),
@@ -867,6 +1068,16 @@ void MainWindow::initConnections()
this, SLOT(createTrace()));
connect(m_ui.actionOpen, SIGNAL(triggered()),
this, SLOT(openTrace()));
+ connect(m_ui.actionSave, SIGNAL(triggered()),
+ this, SLOT(saveTrace()));
+ connect(m_ui.actionPullTrace, SIGNAL(triggered()),
+ this, SLOT(pullTrace()));
+ connect(m_ui.actionPushTrace, SIGNAL(triggered()),
+ this, SLOT(pushTrace()));
+ connect(m_ui.actionLinkTrace, SIGNAL(triggered()),
+ this, SLOT(linkTrace()));
+ connect(m_ui.actionRetraceOnAndroid, SIGNAL(toggled(bool)),
+ this, SLOT(retraceOnAndroid(bool)));
connect(m_ui.actionQuit, SIGNAL(triggered()),
this, SLOT(close()));
@@ -893,6 +1104,8 @@ void MainWindow::initConnections()
this, SLOT(showThumbnails()));
connect(m_ui.actionOptions, SIGNAL(triggered()),
this, SLOT(showSettings()));
+ connect(m_ui.actionLeakTrace,SIGNAL(triggered()),
+ this, SLOT(leakTrace()));
connect(m_ui.callView->selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),
this, SLOT(callItemSelected(const QModelIndex &)));
@@ -948,9 +1161,31 @@ void MainWindow::initConnections()
this, SLOT(slotJumpTo(int)));
}
+void MainWindow::initRetraceConnections()
+{
+ connect(m_retracer, SIGNAL(finished(const QString&)),
+ this, SLOT(replayFinished(const QString&)));
+ connect(m_retracer, SIGNAL(error(const QString&)),
+ this, SLOT(replayError(const QString&)));
+ connect(m_retracer, SIGNAL(foundState(ApiTraceState*)),
+ this, SLOT(replayStateFound(ApiTraceState*)));
+ connect(m_retracer, SIGNAL(foundProfile(trace::Profile*)),
+ this, SLOT(replayProfileFound(trace::Profile*)));
+ connect(m_retracer, SIGNAL(foundThumbnails(const ImageHash&)),
+ this, SLOT(replayThumbnailsFound(const ImageHash&)));
+ connect(m_retracer, SIGNAL(retraceErrors(const QList<ApiTraceError>&)),
+ this, SLOT(slotRetraceErrors(const QList<ApiTraceError>&)));
+}
+
void MainWindow::updateActionsState(bool traceLoaded, bool stopped)
{
+ m_ui.actionPushTrace->setEnabled(false);
+ m_ui.actionLinkTrace->setEnabled(false);
+ m_ui.actionRetraceOnAndroid->setEnabled(false);
if (traceLoaded) {
+ /* File */
+ m_ui.actionSave ->setEnabled(true);
+
/* Edit */
m_ui.actionFind ->setEnabled(true);
m_ui.actionGo ->setEnabled(true);
@@ -973,6 +1208,9 @@ void MainWindow::updateActionsState(bool traceLoaded, bool stopped)
m_ui.actionTrim ->setEnabled(true);
}
else {
+ /* File */
+ m_ui.actionSave ->setEnabled(false);
+
/* Edit */
m_ui.actionFind ->setEnabled(false);
m_ui.actionGo ->setEnabled(false);
@@ -1017,10 +1255,10 @@ void MainWindow::replayStateFound(ApiTraceState *state)
m_nonDefaultsLookupEvent = 0;
}
-void MainWindow::replayThumbnailsFound(const QList<QImage> &thumbnails)
+void MainWindow::replayThumbnailsFound(const ImageHash &thumbnails)
{
m_ui.callView->setUniformRowHeights(false);
- m_trace->bindThumbnailsToFrames(thumbnails);
+ m_trace->bindThumbnails(thumbnails);
}
void MainWindow::slotGoTo()
@@ -1075,8 +1313,11 @@ void MainWindow::slotSearchNext(const QString &str,
ApiTraceCall *call = currentCall();
ApiTraceFrame *frame = currentFrame();
- Q_ASSERT(call || frame);
if (!frame) {
+ // Trace is still loading.
+ if (!call) {
+ return;
+ }
frame = call->parentFrame();
}
Q_ASSERT(frame);
@@ -1090,8 +1331,11 @@ void MainWindow::slotSearchPrev(const QString &str,
ApiTraceCall *call = currentCall();
ApiTraceFrame *frame = currentFrame();
- Q_ASSERT(call || frame);
if (!frame) {
+ // Trace is still loading.
+ if (!call) {
+ return;
+ }
frame = call->parentFrame();
}
Q_ASSERT(frame);
@@ -1270,22 +1514,31 @@ void MainWindow::saveSelectedSurface()
}
QVariant var = item->data(0, Qt::UserRole);
+ if (!var.isValid()) {
+ return;
+ }
+
QImage img = var.value<QImage>();
+ if (img.isNull()) {
+ image::Image *traceImage = ApiSurface::imageFromData(var.value<QByteArray>());
+ img = ApiSurface::qimageFromRawImage(traceImage);
+ delete traceImage;
+ }
+ if (img.isNull()) {
+ statusBar()->showMessage( "Failed to save image", 5000);
+ return;
+ }
QString imageIndex;
- if (selectedCall()) {
+ ApiTraceCall *call = selectedCall();
+ if (call) {
imageIndex = tr("_call_%1")
- .arg(selectedCall()->index());
- } else if (selectedFrame()) {
- ApiTraceCall *firstCall =
- static_cast<ApiTraceCall *>(selectedFrame()->eventAtRow(0));
- if (firstCall) {
- imageIndex = tr("_frame_%1")
- .arg(firstCall->index());
- } else {
- qDebug()<<"unknown frame number";
+ .arg(call->index());
+ } else {
+ ApiTraceFrame *frame = selectedFrame();
+ if (frame) {
imageIndex = tr("_frame_%1")
- .arg(firstCall->index());
+ .arg(frame->number);
}
}
@@ -1311,8 +1564,50 @@ void MainWindow::saveSelectedSurface()
.arg(parentIndex)
.arg(childIndex);
//qDebug()<<"save "<<fileName;
- img.save(fileName, "PNG");
- statusBar()->showMessage( tr("Saved '%1'").arg(fileName), 5000);
+ if (img.save(fileName, "PNG")) {
+ statusBar()->showMessage( tr("Saved '%1'").arg(fileName), 5000);
+ } else {
+ statusBar()->showMessage( tr("Failed to save '%1'").arg(fileName), 5000);
+ }
+}
+
+void MainWindow::exportBufferData()
+{
+ QByteArray data = m_vdataInterpreter->data();
+ if (data.isEmpty())
+ return;
+
+ QString bufferIndex;
+ ApiTraceCall *call = selectedCall();
+ if (call) {
+ bufferIndex = tr("_call_%1").arg(call->index());
+ } else {
+ ApiTraceFrame *frame = selectedFrame();
+ if (frame) {
+ bufferIndex = tr("_frame_%1")
+ .arg(frame->number);
+ }
+ }
+
+ QString filename =
+ tr("%1%2_buffer.raw")
+ .arg(m_trace->fileName())
+ .arg(bufferIndex);
+
+ QFile file(filename);
+ if (!file.open(QIODevice::WriteOnly)) {
+ statusBar()->showMessage("Failed to save buffer data", 5000);
+ return;
+ }
+
+ if (file.write(data) == -1) {
+ statusBar()->showMessage("Failed to save buffer data", 5000);
+ return;
+ }
+
+ file.close();
+
+ statusBar()->showMessage( tr("Saved buffer to '%1'").arg(filename), 5000);
}
void MainWindow::loadProgess(int percent)
@@ -1411,7 +1706,25 @@ ApiTraceCall * MainWindow::currentCall() const
}
return call;
+}
+
+void MainWindow::linkLocalAndroidTrace(const QString &localFile, const QString &deviceFile)
+{
+ QSettings s;
+ s.beginGroup(_("android"));
+ QVariantMap map = s.value(_("links")).toMap();
+ map[localFile] = deviceFile;
+ s.setValue(_("links"), map);
+ s.endGroup();
+}
+
+QString MainWindow::linkedAndroidTrace(const QString &localFile)
+{
+ QSettings s;
+ s.beginGroup(_("android"));
+ QVariantMap map = s.value(_("links")).toMap();
+ return map[localFile].toString();
}
void MainWindow::slotFoundFrameStart(ApiTraceFrame *frame)
@@ -1472,4 +1785,11 @@ void MainWindow::slotJumpToResult(ApiTraceCall *call)
}
}
+void MainWindow::thumbnailCallback(void *object, int thumbnailIdx)
+{
+ //qDebug() << QLatin1String("debug: transfer from trace to retracer thumbnail index: ") << thumbnailIdx;
+ MainWindow *mySelf = (MainWindow *) object;
+ mySelf->m_retracer->addThumbnailToCapture(thumbnailIdx);
+}
+
#include "mainwindow.moc"
diff --git a/gui/mainwindow.h b/gui/mainwindow.h
index 4d1358ce..8740ab76 100644
--- a/gui/mainwindow.h
+++ b/gui/mainwindow.h
@@ -1,5 +1,4 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
+#pragma once
#include "ui_mainwindow.h"
@@ -52,14 +51,20 @@ private slots:
void callItemActivated(const QModelIndex &index);
void createTrace();
void openTrace();
+ void saveTrace();
+ void pullTrace();
+ void pushTrace();
+ void linkTrace();
+ void retraceOnAndroid(bool android);
void replayStart();
void replayProfile();
void replayStop();
void replayFinished(const QString &message);
void replayStateFound(ApiTraceState *state);
void replayProfileFound(trace::Profile *state);
- void replayThumbnailsFound(const QList<QImage> &thumbnails);
+ void replayThumbnailsFound(const ImageHash &thumbnails);
void replayError(const QString &msg);
+ void loadError(const QString &msg);
void startedLoadingTrace();
void loadProgess(int percent);
void finishedLoadingTrace();
@@ -67,10 +72,13 @@ private slots:
void showThumbnails();
void trim();
void showSettings();
+ void leakTrace();
+ void leakTraceFinished();
void openHelp(const QUrl &url);
void showSurfacesMenu(const QPoint &pos);
void showSelectedSurface();
void saveSelectedSurface();
+ void exportBufferData();
void slotGoTo();
void slotJumpTo(int callNum);
void createdTrace(const QString &path);
@@ -96,13 +104,15 @@ private slots:
void slotFoundFrameStart(ApiTraceFrame *frame);
void slotFoundFrameEnd(ApiTraceFrame *frame);
void slotJumpToResult(ApiTraceCall *call);
+ void replayTrace(bool dumpState, bool dumpThumbnails);
private:
void initObjects();
void initConnections();
+ void initRetraceConnections();
+
void updateActionsState(bool traceLoaded, bool stopped = true);
void newTraceFile(const QString &fileName);
- void replayTrace(bool dumpState, bool dumpThumbnails);
void trimEvent();
void fillStateForFrame();
@@ -115,6 +125,15 @@ private:
ApiTraceFrame *currentFrame() const;
ApiTraceCall *currentCall() const;
+ static void thumbnailCallback(void *object, int thumbnailIdx);
+
+ void linkLocalAndroidTrace(const QString &localFile, const QString &deviceFile);
+ QString linkedAndroidTrace(const QString &localFile);
+ void addSurface(const ApiTexture &image, QTreeWidgetItem *parent);
+ void addSurface(const ApiFramebuffer &image, QTreeWidgetItem *parent);
+ template <typename Surface>
+ void addSurfaces(const QList<Surface> &images, const char *label);
+
protected:
virtual void closeEvent(QCloseEvent * event);
@@ -153,7 +172,5 @@ private:
ApiTraceEvent *m_nonDefaultsLookupEvent;
ProfileDialog* m_profileDialog;
+ QString m_androidFilePath;
};
-
-
-#endif
diff --git a/gui/pixelwidget.h b/gui/pixelwidget.h
index 837dde40..6d92a84e 100644
--- a/gui/pixelwidget.h
+++ b/gui/pixelwidget.h
@@ -44,8 +44,7 @@
**
****************************************************************************/
-#ifndef PIXELWIDGET_H
-#define PIXELWIDGET_H
+#pragma once
#include <qwidget.h>
#include <qpixmap.h>
@@ -111,5 +110,3 @@ private:
QSize m_initialSize;
QColor m_currentColor;
};
-
-#endif // PIXELWIDGET_H
diff --git a/gui/profiledialog.cpp b/gui/profiledialog.cpp
index a9892cf0..9d80d3f3 100644
--- a/gui/profiledialog.cpp
+++ b/gui/profiledialog.cpp
@@ -223,7 +223,7 @@ void ProfileDialog::setProfile(trace::Profile* profile)
m_table->setModel(model);
m_table->update(QModelIndex());
m_table->sortByColumn(2, Qt::DescendingOrder);
- m_table->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
+ m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
m_table->resizeColumnsToContents();
/* Reset selection */
diff --git a/gui/profiledialog.h b/gui/profiledialog.h
index 862d068b..b6c3f163 100644
--- a/gui/profiledialog.h
+++ b/gui/profiledialog.h
@@ -1,5 +1,4 @@
-#ifndef PROFILEDIALOG_H
-#define PROFILEDIALOG_H
+#pragma once
#include "ui_profiledialog.h"
#include <QDialog>
@@ -27,5 +26,3 @@ signals:
private:
trace::Profile *m_profile;
};
-
-#endif
diff --git a/gui/profileheatmap.h b/gui/profileheatmap.h
index e50ea263..548917bd 100644
--- a/gui/profileheatmap.h
+++ b/gui/profileheatmap.h
@@ -1,5 +1,4 @@
-#ifndef PROFILEHEATMAP_H
-#define PROFILEHEATMAP_H
+#pragma once
#include "graphing/heatmapview.h"
#include "profiling.h"
@@ -417,12 +416,12 @@ public:
text = QString::fromStdString(call.name);
text += QString("\nCall: %1").arg(call.no);
- text += QString("\nCPU Start: %1").arg(Profiling::getTimeString(call.cpuStart));
- text += QString("\nCPU Duration: %1").arg(Profiling::getTimeString(call.cpuDuration));
+ text += QString("\nCPU Start: %1").arg(Profiling::getTimeString(call.cpuStart, 1e3));
+ text += QString("\nCPU Duration: %1").arg(Profiling::getTimeString(call.cpuDuration, 1e3));
if (call.pixels >= 0) {
- text += QString("\nGPU Start: %1").arg(Profiling::getTimeString(call.gpuStart));
- text += QString("\nGPU Duration: %1").arg(Profiling::getTimeString(call.gpuDuration));
+ text += QString("\nGPU Start: %1").arg(Profiling::getTimeString(call.gpuStart, 1e3));
+ text += QString("\nGPU Duration: %1").arg(Profiling::getTimeString(call.gpuDuration, 1e3));
text += QString("\nPixels Drawn: %1").arg(QLocale::system().toString((qlonglong)call.pixels));
}
@@ -466,5 +465,3 @@ protected:
std::vector<int> m_rowPrograms;
SelectionState* m_selectionState;
};
-
-#endif
diff --git a/gui/profiletablemodel.h b/gui/profiletablemodel.h
index da175503..e2288b42 100644
--- a/gui/profiletablemodel.h
+++ b/gui/profiletablemodel.h
@@ -1,5 +1,4 @@
-#ifndef PROFILETABLEMODEL_H
-#define PROFILETABLEMODEL_H
+#pragma once
#include <QAbstractTableModel>
#include "trace_profiler.hpp"
@@ -67,4 +66,3 @@ private:
Qt::SortOrder m_sortOrder;
};
-#endif // PROFILEMODEL_H
diff --git a/gui/profiling.h b/gui/profiling.h
index a5b12660..6d4ef806 100644
--- a/gui/profiling.h
+++ b/gui/profiling.h
@@ -1,5 +1,4 @@
-#ifndef PROFILING_H
-#define PROFILING_H
+#pragma once
#include <QString>
#include <QLocale>
@@ -124,5 +123,3 @@ public:
}
}
};
-
-#endif
diff --git a/gui/qapitrace.qrc b/gui/qapitrace.qrc
index fe002f1b..89df6a86 100644
--- a/gui/qapitrace.qrc
+++ b/gui/qapitrace.qrc
@@ -1,23 +1,25 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>resources/application-exit.png</file>
- <file>resources/dialog-close.png</file>
- <file>resources/dialog-information.png</file>
- <file>resources/document-edit.png</file>
- <file>resources/document-new.png</file>
- <file>resources/document-open.png</file>
- <file>resources/edit-find.png</file>
- <file>resources/edit-undo.png</file>
- <file>resources/emblem-locked.png</file>
- <file>resources/go-bottom.png</file>
- <file>resources/go-down-search.png</file>
- <file>resources/go-jump.png</file>
- <file>resources/go-top.png</file>
- <file>resources/go-up-search.png</file>
- <file>resources/media-playback-start.png</file>
- <file>resources/media-playback-stop.png</file>
- <file>resources/media-record.png</file>
- <file>resources/script-error.png</file>
- <file>resources/glreference.tsv</file>
-</qresource>
+<RCC>
+ <qresource prefix="/">
+ <file>resources/application-exit.png</file>
+ <file>resources/dialog-close.png</file>
+ <file>resources/dialog-information.png</file>
+ <file>resources/document-edit.png</file>
+ <file>resources/document-new.png</file>
+ <file>resources/document-open.png</file>
+ <file>resources/edit-find.png</file>
+ <file>resources/edit-undo.png</file>
+ <file>resources/emblem-locked.png</file>
+ <file>resources/go-bottom.png</file>
+ <file>resources/go-down-search.png</file>
+ <file>resources/go-jump.png</file>
+ <file>resources/go-top.png</file>
+ <file>resources/go-up-search.png</file>
+ <file>resources/media-playback-start.png</file>
+ <file>resources/media-playback-stop.png</file>
+ <file>resources/media-record.png</file>
+ <file>resources/script-error.png</file>
+ <file>resources/glreference.tsv</file>
+ <file>resources/android.png</file>
+ <file>resources/android-setup.png</file>
+ </qresource>
</RCC>
diff --git a/gui/qubjson.cpp b/gui/qubjson.cpp
new file mode 100644
index 00000000..2d4138dc
--- /dev/null
+++ b/gui/qubjson.cpp
@@ -0,0 +1,298 @@
+/**************************************************************************
+ *
+ * Copyright 2015 VMware, Inc
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ **************************************************************************/
+
+
+#include "qubjson.h"
+
+#include <QDebug>
+#include <QVariant>
+#include <QDataStream>
+
+#include "ubjson.hpp"
+
+
+using namespace ubjson;
+
+
+static Marker
+readMarker(QDataStream &stream)
+{
+ if (stream.atEnd()) {
+ return MARKER_EOF;
+ }
+ quint8 byte;
+ stream >> byte;
+ return static_cast<Marker>(byte);
+}
+
+
+static int8_t
+readInt8(QDataStream &stream)
+{
+ qint8 i;
+ stream >> i;
+ return i;
+}
+
+static uint8_t
+readUInt8(QDataStream &stream)
+{
+ quint8 u;
+ stream >> u;
+ return u;
+}
+
+static int16_t
+readInt16(QDataStream &stream)
+{
+ qint16 i;
+ stream >> i;
+ return i;
+}
+
+static int32_t
+readInt32(QDataStream &stream)
+{
+ qint32 i;
+ stream >> i;
+ return i;
+}
+
+static int64_t
+readInt64(QDataStream &stream)
+{
+ qint64 i;
+ stream >> i;
+ return i;
+}
+
+static float
+readFloat32(QDataStream &stream)
+{
+ float f;
+ stream.setFloatingPointPrecision(QDataStream::SinglePrecision);
+ stream >> f;
+ return f;
+}
+
+static double
+readFloat64(QDataStream &stream)
+{
+ double f;
+ stream.setFloatingPointPrecision(QDataStream::DoublePrecision);
+ stream >> f;
+ return f;
+}
+
+
+static int
+readSize(QDataStream &stream, Marker type)
+{
+ switch (type) {
+ case MARKER_INT8: {
+ int8_t size = readInt8(stream);
+ Q_ASSERT(size >= 0);
+ return size;
+ }
+ case MARKER_UINT8:
+ return readUInt8(stream);
+ case MARKER_INT16: {
+ int16_t size = readInt16(stream);
+ Q_ASSERT(size >= 0);
+ return size;
+ }
+ case MARKER_INT32: {
+ int32_t size = readInt32(stream);
+ Q_ASSERT(size >= 0);
+ return size;
+ }
+ case MARKER_INT64: {
+ int64_t size = readInt64(stream);
+ Q_ASSERT(size >= 0);
+ Q_ASSERT_X(size <= INT_MAX, "qubjson::readSize", "size too large (https://github.com/apitrace/apitrace/issues/343)");
+ return size;
+ }
+ default:
+ Q_UNIMPLEMENTED();
+ case MARKER_EOF:
+ return 0;
+ }
+}
+
+
+static QString
+readChar(QDataStream &stream)
+{
+ qint8 c;
+ stream >> c;
+ Q_ASSERT(c >= 0);
+ return QChar(c);
+}
+
+
+static int
+readSize(QDataStream &stream)
+{
+ Marker type = readMarker(stream);
+ return readSize(stream, type);
+}
+
+
+static QString
+readString(QDataStream &stream, int size)
+{
+ char *buf = new char [size];
+ stream.readRawData(buf, size);
+ QString str = QString::fromUtf8(buf, size);
+ delete [] buf;
+ return str;
+}
+
+
+static QString
+readString(QDataStream &stream)
+{
+ int size = readSize(stream);
+ return readString(stream, size);
+}
+
+
+static QVariant
+readVariant(QDataStream &stream, Marker type);
+
+
+static QVariant
+readArray(QDataStream &stream)
+{
+ Marker marker = readMarker(stream);
+ if (marker == MARKER_TYPE) {
+ Marker type = readMarker(stream);
+ Q_ASSERT(type == MARKER_UINT8);
+ Q_UNUSED(type);
+ marker = readMarker(stream);
+ Q_ASSERT(marker == MARKER_COUNT);
+ int count = readSize(stream);
+ QByteArray array(count, Qt::Uninitialized);
+ int read = stream.readRawData(array.data(), count);
+ Q_ASSERT(read == count);
+ Q_UNUSED(read);
+ return array;
+ } else if (marker == MARKER_COUNT) {
+ int count = readSize(stream);
+ QVariantList array;
+ for (int i = 0; i < count; ++i) {
+ marker = readMarker(stream);
+ QVariant value = readVariant(stream, marker);
+ array.append(value);
+ }
+ return array;
+ } else {
+ QVariantList array;
+ while (marker != MARKER_ARRAY_END &&
+ marker != MARKER_EOF) {
+ QVariant value = readVariant(stream, marker);
+ array.append(value);
+ marker = readMarker(stream);
+ }
+ return array;
+ }
+}
+
+
+static QVariantMap
+readObject(QDataStream &stream)
+{
+ QVariantMap object;
+ Marker marker = readMarker(stream);
+ while (marker != MARKER_OBJECT_END &&
+ marker != MARKER_EOF) {
+ int nameSize = readSize(stream, marker);
+ QString name = readString(stream, nameSize);
+ marker = readMarker(stream);
+ QVariant value = readVariant(stream, marker);
+ object[name] = value;
+ marker = readMarker(stream);
+ }
+ return object;
+}
+
+
+static QVariant
+readVariant(QDataStream &stream, Marker type)
+{
+ switch (type) {
+ case MARKER_NULL:
+ return QVariant();
+ case MARKER_NOOP:
+ return QVariant();
+ case MARKER_TRUE:
+ return true;
+ case MARKER_FALSE:
+ return false;
+ case MARKER_INT8:
+ return readInt8(stream);
+ case MARKER_UINT8:
+ return readUInt8(stream);
+ case MARKER_INT16:
+ return readInt16(stream);
+ case MARKER_INT32:
+ return readInt32(stream);
+ case MARKER_INT64:
+ return (qlonglong)readInt64(stream);
+ case MARKER_FLOAT32:
+ return readFloat32(stream);
+ case MARKER_FLOAT64:
+ return readFloat64(stream);
+ case MARKER_HIGH_PRECISION:
+ Q_UNIMPLEMENTED();
+ return QVariant();
+ case MARKER_CHAR:
+ return readChar(stream);
+ case MARKER_STRING:
+ return readString(stream);
+ case MARKER_ARRAY_BEGIN:
+ return readArray(stream);
+ case MARKER_OBJECT_BEGIN:
+ return readObject(stream);
+ case MARKER_ARRAY_END:
+ case MARKER_OBJECT_END:
+ case MARKER_TYPE:
+ case MARKER_COUNT:
+ default:
+ Q_ASSERT(0);
+ case MARKER_EOF:
+ return QVariant();
+ }
+}
+
+
+QVariant decodeUBJSONObject(QIODevice *io)
+{
+ QDataStream stream(io);
+ stream.setByteOrder(QDataStream::BigEndian);
+ Marker marker = readMarker(stream);
+ return readVariant(stream, marker);
+}
+
diff --git a/gui/qubjson.h b/gui/qubjson.h
new file mode 100644
index 00000000..7ca043d4
--- /dev/null
+++ b/gui/qubjson.h
@@ -0,0 +1,34 @@
+/**************************************************************************
+ *
+ * Copyright 2015 VMware, Inc
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ **************************************************************************/
+
+
+#pragma once
+
+
+#include <QVariantMap>
+
+class QIODevice;
+
+QVariant decodeUBJSONObject(QIODevice *io);
diff --git a/gui/qubjson_test.cpp b/gui/qubjson_test.cpp
new file mode 100644
index 00000000..1d075ea7
--- /dev/null
+++ b/gui/qubjson_test.cpp
@@ -0,0 +1,161 @@
+/**************************************************************************
+ *
+ * Copyright 2015 VMware, Inc
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ **************************************************************************/
+
+
+#include "qubjson.h"
+
+#include <QDebug>
+#include <QBuffer>
+
+#include "gtest/gtest.h"
+
+
+static inline std::ostream &
+operator << (std::ostream &os, const QVariant &var)
+{
+ QString buf;
+ QDebug debug(&buf);
+ debug << var;
+ os << buf.trimmed().toLocal8Bit().constData();
+ return os;
+}
+
+
+static ::testing::AssertionResult
+check(const char *buf_expr, const char *exp_expr, QByteArray & bytearray, const QVariant & expected)
+{
+ QBuffer buffer(&bytearray);
+ buffer.open(QIODevice::ReadOnly);
+
+ QVariant actual = decodeUBJSONObject(&buffer);
+
+ if (!buffer.atEnd()) {
+ return ::testing::AssertionFailure() << "Trailing bytes";
+ }
+
+ if (actual != expected) {
+ return ::testing::AssertionFailure() << "Expected " << expected << " but got " << actual;
+ }
+
+ return ::testing::AssertionSuccess();
+}
+
+
+#define BYTEARRAY(...) { __VA_ARGS__ }
+
+#define CHECK( x , y ) \
+ { \
+ static const unsigned char X[] = x; \
+ QByteArray bytearray((const char *)X, sizeof X); \
+ EXPECT_PRED_FORMAT2(check, bytearray, y); \
+ }
+
+
+TEST(qubjson, null) {
+ CHECK(BYTEARRAY('Z'), QVariant());
+}
+
+
+TEST(qubjson, boolean) {
+ CHECK(BYTEARRAY('T'), true);
+ CHECK(BYTEARRAY('F'), false);
+}
+
+
+TEST(qubjson, integral) {
+ CHECK(BYTEARRAY('i', 0x00), +0x00);
+ CHECK(BYTEARRAY('i', 0x7f), +0x7f);
+ CHECK(BYTEARRAY('i', 0x80), -0x80);
+ CHECK(BYTEARRAY('U', 0x00), +0x00);
+ CHECK(BYTEARRAY('U', 0x80), +0x80);
+ CHECK(BYTEARRAY('U', 0xff), +0xff);
+ CHECK(BYTEARRAY('I', 0x01, 0x23), +0x0123);
+ CHECK(BYTEARRAY('I', 0x80, 0x00), -0x8000);
+ CHECK(BYTEARRAY('l', 0x01, 0x23, 0x45, 0x67), +0x01234567);
+ CHECK(BYTEARRAY('l', 0x80, 0x00, 0x00, 0x00), -0x7fffffff - 1); // -0x80000000 causes signed warnings
+ CHECK(BYTEARRAY('L', 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF), qlonglong(+0x0123456789ABCDEFLL));
+ CHECK(BYTEARRAY('L', 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), qlonglong(-0x8000000000000000LL));
+}
+
+
+TEST(qubjson, float) {
+ CHECK(BYTEARRAY('d', 0x3f, 0x80, 0x00, 0x00), 1.0f);
+ CHECK(BYTEARRAY('d', 0x00, 0x00, 0x00, 0x01), 1.40129846e-45f);
+ CHECK(BYTEARRAY('d', 0xff, 0x7f, 0xff, 0xff), -3.4028234e38f);
+
+ CHECK(BYTEARRAY('D', 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), 1.0);
+ CHECK(BYTEARRAY('D', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01), 4.9406564584124654e-324);
+ CHECK(BYTEARRAY('D', 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff), -1.7976931348623157e308);
+}
+
+
+TEST(qubjson, string) {
+ CHECK(BYTEARRAY('C', 'A'), "A");
+
+ CHECK(BYTEARRAY('S', 'U', 0), "");
+ CHECK(BYTEARRAY('S', 'U', 5, 'A', 'B', 'C', 'D', 'E'), "ABCDE");
+}
+
+
+TEST(qubjson, array) {
+ QVariantList list;
+ CHECK(BYTEARRAY('[', ']'), list);
+ list.append(1);
+ CHECK(BYTEARRAY('[', 'i', 1, ']'), list);
+ CHECK(BYTEARRAY('[', '#', 'i', 1, 'i', 1), list);
+ list.append(2);
+ CHECK(BYTEARRAY('[', 'U', 1, 'i', 2, ']'), list);
+ CHECK(BYTEARRAY('[', '#', 'U', 2, 'i', 1, 'i', 2), list);
+}
+
+
+TEST(qubjson, object) {
+ QVariantMap map;
+ CHECK(BYTEARRAY('{', '}'), map);
+ map["A"] = 1;
+ CHECK(BYTEARRAY('{', 'U', 1, 'A', 'i', 1, '}'), map);
+ map["B"] = 2;
+ CHECK(BYTEARRAY('{', 'U', 1, 'A', 'i', 1, 'U', 1, 'B', 'i', 2, '}'), map);
+}
+
+
+TEST(qubjson, binary_data) {
+ CHECK(BYTEARRAY('[', '$', 'U', '#', 'U', 0), QByteArray());
+ CHECK(BYTEARRAY('[', '$', 'U', '#', 'U', 1, 'A'), QByteArray("A"));
+ CHECK(BYTEARRAY('[', '$', 'U', '#', 'U', 2, 'A', 'B'), QByteArray("AB"));
+ CHECK(BYTEARRAY('[', '$', 'U', '#', 'U', 3, 'A', 'B', 'C'), QByteArray("ABC"));
+}
+
+
+int
+main(int argc, char **argv)
+{
+#if defined(_MSC_VER) && !defined(NDEBUG)
+ return 0;
+#else
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+#endif
+}
diff --git a/gui/resources/android-setup.png b/gui/resources/android-setup.png
new file mode 100644
index 00000000..c2ae8235
--- /dev/null
+++ b/gui/resources/android-setup.png
Binary files differ
diff --git a/gui/resources/android.png b/gui/resources/android.png
new file mode 100644
index 00000000..359047df
--- /dev/null
+++ b/gui/resources/android.png
Binary files differ
diff --git a/gui/resources/glreference-man.sh b/gui/resources/glreference-man.sh
index 20bdaa6a..abf9a134 100755
--- a/gui/resources/glreference-man.sh
+++ b/gui/resources/glreference-man.sh
@@ -1,8 +1,8 @@
-#!/bin/sh
+#!/bin/bash
# Script to extract reference URLS for functions documented in OpenGL man pages
-wget -N -r -np http://www.opengl.org/sdk/docs/{man,man2,man3,man4}/
+wget -N -r -np https://www.opengl.org/sdk/docs/{man,man2,man3,man4}/
-find www.opengl.org -type f -name '*.xml' \
-| xargs grep -o '<b class="fsfunc">[^<]*</b>' \
-| sed -e 's/<[^>]*>//g' -e 's@^\(.*\):\(.*\)$@\2\thttp://\1@'
+find www.opengl.org -type f -name '*.xml' -o -name '*.xhtml' \
+| xargs grep -o '<\(b\|strong\) class="fsfunc">[^<]*</\1>' \
+| sed -e 's/<[^>]*>//g' -e 's@^\(.*\):\(.*\)$@\2\thttps://\1@'
diff --git a/gui/resources/glreference-registry.sh b/gui/resources/glreference-registry.sh
index 76b5dbe4..1c0cbe4f 100755
--- a/gui/resources/glreference-registry.sh
+++ b/gui/resources/glreference-registry.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# Script to extract reference URLs for functions documented in OpenGL ARB specs
extract_urls () {
@@ -13,8 +13,8 @@ extract_functions () {
| sed -e '/^[A-Z]/s/^/gl/'
}
-extract_urls http://www.opengl.org/registry/ \
-| grep '^http://www\.opengl\.org/registry/specs/\w\+/.*\.txt$' \
+extract_urls https://www.opengl.org/registry/ \
+| grep '^https://www\.opengl\.org/registry/specs/\w\+/.*\.txt$' \
| sort -u \
| while read URL
do
diff --git a/gui/resources/glreference.tsv b/gui/resources/glreference.tsv
index 76cba730..8f69f4d6 100644
--- a/gui/resources/glreference.tsv
+++ b/gui/resources/glreference.tsv
@@ -1,3270 +1,3270 @@
-glAccum http://www.opengl.org/sdk/docs/man/xhtml/glAccum.xml
-glAccumxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glActiveProgramEXT http://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
-glActiveShaderProgram http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glActiveShaderProgram http://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
-glActiveStencilFaceEXT http://www.opengl.org/registry/specs/EXT/stencil_two_side.txt
-glActiveTexture http://www.opengl.org/sdk/docs/man/xhtml/glActiveTexture.xml
-glActiveTexture http://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
-glActiveTexture http://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
-glActiveVaryingNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glAlphaFunc http://www.opengl.org/sdk/docs/man/xhtml/glAlphaFunc.xml
-glAlphaFuncxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glApplyTextureEXT http://www.opengl.org/registry/specs/EXT/light_texture.txt
-glAreProgramsResidentNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glAreTexturesResident http://www.opengl.org/sdk/docs/man/xhtml/glAreTexturesResident.xml
-glAreTexturesResidentEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glArrayElement http://www.opengl.org/sdk/docs/man/xhtml/glArrayElement.xml
-glArrayElementEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glArrayObjectATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glAsyncMarkerSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glAttachObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glAttachShader http://www.opengl.org/sdk/docs/man/xhtml/glAttachShader.xml
-glAttachShader http://www.opengl.org/sdk/docs/man3/xhtml/glAttachShader.xml
-glAttachShader http://www.opengl.org/sdk/docs/man4/xhtml/glAttachShader.xml
-glBegin http://www.opengl.org/sdk/docs/man/xhtml/glBegin.xml
-glBeginConditionalRender http://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
-glBeginConditionalRender http://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
-glBeginConditionalRenderNV http://www.opengl.org/registry/specs/NV/conditional_render.txt
-glBeginOcclusionQueryNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glBeginPerfMonitorAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glBeginQuery http://www.opengl.org/sdk/docs/man/xhtml/glBeginQuery.xml
-glBeginQuery http://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
-glBeginQuery http://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
-glBeginQueryARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glBeginQueryIndexed http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
-glBeginQueryIndexed http://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
-glBeginSceneEXT http://www.opengl.org/registry/specs/EXT/scene_marker.txt
-glBeginTransformFeedback http://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
-glBeginTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
-glBeginTransformFeedbackEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glBeginTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glBeginVideoCaptureNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glBindArraySetEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.alt.txt
-glBindArraySetEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
-glBindAttribLocation http://www.opengl.org/sdk/docs/man/xhtml/glBindAttribLocation.xml
-glBindAttribLocation http://www.opengl.org/sdk/docs/man3/xhtml/glBindAttribLocation.xml
-glBindAttribLocation http://www.opengl.org/sdk/docs/man4/xhtml/glBindAttribLocation.xml
-glBindAttribLocationARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glBindBuffer http://www.opengl.org/sdk/docs/man/xhtml/glBindBuffer.xml
-glBindBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glBindBuffer.xml
-glBindBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glBindBuffer.xml
-glBindBufferARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glBindBufferBase http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glBindBufferBase http://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
-glBindBufferBase http://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
-glBindBufferBaseEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glBindBufferBaseNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glBindBufferBaseNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glBindBufferOffsetEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glBindBufferOffsetNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glBindBufferOffsetNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glBindBufferRange http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glBindBufferRange http://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
-glBindBufferRange http://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
-glBindBufferRangeEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glBindBufferRangeNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glBindBufferRangeNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glBindFragDataLocation http://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
-glBindFragDataLocation http://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
-glBindFragDataLocationEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glBindFragDataLocationIndexed http://www.opengl.org/registry/specs/ARB/blend_func_extended.txt
-glBindFragDataLocationIndexed http://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml
-glBindFragDataLocationIndexed http://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
-glBindFramebuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glBindFramebuffer http://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
-glBindFramebuffer http://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
-glBindFramebufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glBindImageTexture http://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt
-glBindImageTextureEXT http://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt
-glBindMultiTextureEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glBindProgramARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glBindProgramARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glBindProgramNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glBindProgramPipeline http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glBindProgramPipeline http://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
-glBindRenderbuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glBindRenderbuffer http://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
-glBindRenderbuffer http://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
-glBindRenderbufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glBindSampler http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glBindSampler http://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml
-glBindSampler http://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
-glBindSwapBarrierSGIX http://www.opengl.org/registry/specs/SGIX/swap_barrier.txt
-glBindTexture http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml
-glBindTexture http://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
-glBindTexture http://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
-glBindTextureEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glBindTransformFeedback http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glBindTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
-glBindTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glBindVertexArray http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
-glBindVertexArray http://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
-glBindVertexArray http://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
-glBindVertexArrayAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
-glBindVideoCaptureStreamBufferNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glBindVideoCaptureStreamTextureNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glBinormalPointerEXT http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt
-glBitmap http://www.opengl.org/sdk/docs/man/xhtml/glBitmap.xml
-glBitmapxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glBlendColor http://www.opengl.org/sdk/docs/man/xhtml/glBlendColor.xml
-glBlendColor http://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
-glBlendColor http://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
-glBlendColorEXT http://www.opengl.org/registry/specs/EXT/blend_color.txt
-glBlendColorxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glBlendEquation http://www.opengl.org/sdk/docs/man/xhtml/glBlendEquation.xml
-glBlendEquation http://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
-glBlendEquation http://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
-glBlendEquationEXT http://www.opengl.org/registry/specs/EXT/blend_minmax.txt
-glBlendEquationIndexedAMD http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
-glBlendEquationSeparate http://www.opengl.org/sdk/docs/man/xhtml/glBlendEquationSeparate.xml
-glBlendEquationSeparate http://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
-glBlendEquationSeparate http://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
-glBlendEquationSeparateEXT http://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt
-glBlendEquationSeparateIndexedAMD http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
-glBlendEquationSeparatei http://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
-glBlendEquationSeparateiARB http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
-glBlendEquationi http://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
-glBlendEquationiARB http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
-glBlendFunc http://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml
-glBlendFunc http://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
-glBlendFunc http://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
-glBlendFuncIndexedAMD http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
-glBlendFuncSeparate http://www.opengl.org/sdk/docs/man/xhtml/glBlendFuncSeparate.xml
-glBlendFuncSeparate http://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
-glBlendFuncSeparate http://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
-glBlendFuncSeparateEXT http://www.opengl.org/registry/specs/EXT/blend_func_separate.txt
-glBlendFuncSeparateIndexedAMD http://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
-glBlendFuncSeparatei http://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
-glBlendFuncSeparateiARB http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
-glBlendFunci http://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
-glBlendFunciARB http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
-glBlitFramebuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glBlitFramebuffer http://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
-glBlitFramebuffer http://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
-glBlitFramebufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt
-glBufferAddressRangeNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glBufferData http://www.opengl.org/sdk/docs/man/xhtml/glBufferData.xml
-glBufferData http://www.opengl.org/sdk/docs/man3/xhtml/glBufferData.xml
-glBufferData http://www.opengl.org/sdk/docs/man4/xhtml/glBufferData.xml
-glBufferDataARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glBufferParameteriAPPLE http://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt
-glBufferSubData http://www.opengl.org/sdk/docs/man/xhtml/glBufferSubData.xml
-glBufferSubData http://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
-glBufferSubData http://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
-glBufferSubDataARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glCallList http://www.opengl.org/sdk/docs/man/xhtml/glCallList.xml
-glCallLists http://www.opengl.org/sdk/docs/man/xhtml/glCallLists.xml
-glCheckFramebufferStatus http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glCheckFramebufferStatus http://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
-glCheckFramebufferStatus http://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
-glCheckFramebufferStatusEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glCheckNamedFramebufferStatusEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glClampColor http://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
-glClampColor http://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
-glClampColorARB http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt
-glClear http://www.opengl.org/sdk/docs/man/xhtml/glClear.xml
-glClear http://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
-glClear http://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
-glClearAccum http://www.opengl.org/sdk/docs/man/xhtml/glClearAccum.xml
-glClearAccumxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glClearBufferfi http://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
-glClearBufferfi http://www.opengl.org/sdk/docs/man4/xhtml/glClearBuffer.xml
-glClearBufferfv http://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
-glClearBufferfv http://www.opengl.org/sdk/docs/man4/xhtml/glClearBuffer.xml
-glClearBufferiv http://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
-glClearBufferiv http://www.opengl.org/sdk/docs/man4/xhtml/glClearBuffer.xml
-glClearBufferuiv http://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
-glClearBufferuiv http://www.opengl.org/sdk/docs/man4/xhtml/glClearBuffer.xml
-glClearColor http://www.opengl.org/sdk/docs/man/xhtml/glClearColor.xml
-glClearColor http://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
-glClearColor http://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
-glClearColorxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glClearDepth http://www.opengl.org/sdk/docs/man/xhtml/glClearDepth.xml
-glClearDepth http://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
-glClearDepth http://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
-glClearDepthdNV http://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
-glClearDepthf http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
-glClearDepthf http://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
-glClearDepthfOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glClearDepthxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glClearIndex http://www.opengl.org/sdk/docs/man/xhtml/glClearIndex.xml
-glClearStencil http://www.opengl.org/sdk/docs/man/xhtml/glClearStencil.xml
-glClearStencil http://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
-glClearStencil http://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
-glClientActiveTexture http://www.opengl.org/sdk/docs/man/xhtml/glClientActiveTexture.xml
-glClientActiveVertexStream http://www.opengl.org/registry/specs/ATI/vertex_streams.txt
-glClientAttribDefaultEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glClientWaitSync http://www.opengl.org/registry/specs/ARB/sync.txt
-glClientWaitSync http://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
-glClientWaitSync http://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
-glClipPlane http://www.opengl.org/sdk/docs/man/xhtml/glClipPlane.xml
-glClipPlanefOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glClipPlanexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glColor3b http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3bv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3d http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3dv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3f http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3fVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor3fVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor3fv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glColor3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glColor3i http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3iv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3s http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3sv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3ub http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3ubv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3ui http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3uiv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3us http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor3usv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4b http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4bv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4d http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4dv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4f http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4fNormal3fVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4fNormal3fVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4fv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glColor4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glColor4i http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4iv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4s http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4sv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4ub http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4ubVertex2fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4ubVertex2fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4ubVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4ubVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glColor4ubv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4ui http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4uiv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4us http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColor4usv http://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
-glColorFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glColorMask http://www.opengl.org/sdk/docs/man/xhtml/glColorMask.xml
-glColorMask http://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
-glColorMask http://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
-glColorMaskIndexedEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glColorMaski http://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
-glColorMaterial http://www.opengl.org/sdk/docs/man/xhtml/glColorMaterial.xml
-glColorP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glColorP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glColorP4ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glColorP4uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glColorPointer http://www.opengl.org/sdk/docs/man/xhtml/glColorPointer.xml
-glColorPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glColorPointervINTEL http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
-glColorSubTable http://www.opengl.org/sdk/docs/man/xhtml/glColorSubTable.xml
-glColorSubTableEXT http://www.opengl.org/registry/specs/EXT/color_subtable.txt
-glColorSubTableEXT http://www.opengl.org/registry/specs/EXT/paletted_texture.txt
-glColorTable http://www.opengl.org/sdk/docs/man/xhtml/glColorTable.xml
-glColorTableEXT http://www.opengl.org/registry/specs/EXT/paletted_texture.txt
-glColorTableParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glColorTableParameter.xml
-glColorTableParameterfvSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glColorTableParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glColorTableParameter.xml
-glColorTableParameterivSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glColorTableSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glCombinerInputNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerOutputNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerParameterfNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerParameteriNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerParameterivNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glCombinerStageParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners2.txt
-glCompileShader http://www.opengl.org/sdk/docs/man/xhtml/glCompileShader.xml
-glCompileShader http://www.opengl.org/sdk/docs/man3/xhtml/glCompileShader.xml
-glCompileShader http://www.opengl.org/sdk/docs/man4/xhtml/glCompileShader.xml
-glCompileShaderARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glCompileShaderIncludeARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glCompressedMultiTexImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedMultiTexImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedMultiTexImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedMultiTexSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedMultiTexSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedMultiTexSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTexImage1D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage1D.xml
-glCompressedTexImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
-glCompressedTexImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
-glCompressedTexImage1DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTexImage2D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage2D.xml
-glCompressedTexImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
-glCompressedTexImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
-glCompressedTexImage2DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTexImage3D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage3D.xml
-glCompressedTexImage3D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
-glCompressedTexImage3D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
-glCompressedTexImage3DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTexSubImage1D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage1D.xml
-glCompressedTexSubImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
-glCompressedTexSubImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
-glCompressedTexSubImage1DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTexSubImage2D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage2D.xml
-glCompressedTexSubImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
-glCompressedTexSubImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
-glCompressedTexSubImage2DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTexSubImage3D http://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage3D.xml
-glCompressedTexSubImage3D http://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
-glCompressedTexSubImage3D http://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
-glCompressedTexSubImage3DARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glCompressedTextureImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTextureImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTextureImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTextureSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTextureSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCompressedTextureSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glConvolutionFilter1D http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionFilter1D.xml
-glConvolutionFilter1DEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glConvolutionFilter2D http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionFilter2D.xml
-glConvolutionFilter2DEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glConvolutionParameterf http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
-glConvolutionParameterfEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glConvolutionParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
-glConvolutionParameterfvEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glConvolutionParameteri http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
-glConvolutionParameteriEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glConvolutionParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
-glConvolutionParameterivEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glCopyBufferSubData http://www.opengl.org/registry/specs/ARB/copy_buffer.txt
-glCopyBufferSubData http://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
-glCopyBufferSubData http://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
-glCopyColorSubTable http://www.opengl.org/sdk/docs/man/xhtml/glCopyColorSubTable.xml
-glCopyColorSubTableEXT http://www.opengl.org/registry/specs/EXT/color_subtable.txt
-glCopyColorTable http://www.opengl.org/sdk/docs/man/xhtml/glCopyColorTable.xml
-glCopyColorTableSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glCopyConvolutionFilter1D http://www.opengl.org/sdk/docs/man/xhtml/glCopyConvolutionFilter1D.xml
-glCopyConvolutionFilter1DEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glCopyConvolutionFilter2D http://www.opengl.org/sdk/docs/man/xhtml/glCopyConvolutionFilter2D.xml
-glCopyConvolutionFilter2DEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glCopyImageSubDataNV http://www.opengl.org/registry/specs/NV/copy_image.txt
-glCopyMultiTexImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyMultiTexImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyMultiTexSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyMultiTexSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyMultiTexSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glCopyPixels http://www.opengl.org/sdk/docs/man/xhtml/glCopyPixels.xml
-glCopyTexImage1D http://www.opengl.org/sdk/docs/man/xhtml/glCopyTexImage1D.xml
-glCopyTexImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
-glCopyTexImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
-glCopyTexImage1DEXT http://www.opengl.org/registry/specs/EXT/copy_texture.txt
-glCopyTexImage2D http://www.opengl.org/sdk/docs/man/xhtml/glCopyTexImage2D.xml
-glCopyTexImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
-glCopyTexImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
-glCopyTexImage2DEXT http://www.opengl.org/registry/specs/EXT/copy_texture.txt
-glCopyTexSubImage1D http://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage1D.xml
-glCopyTexSubImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
-glCopyTexSubImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
-glCopyTexSubImage1DEXT http://www.opengl.org/registry/specs/EXT/copy_texture.txt
-glCopyTexSubImage2D http://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage2D.xml
-glCopyTexSubImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
-glCopyTexSubImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
-glCopyTexSubImage2DEXT http://www.opengl.org/registry/specs/EXT/copy_texture.txt
-glCopyTexSubImage3D http://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage3D.xml
-glCopyTexSubImage3D http://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
-glCopyTexSubImage3D http://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
-glCopyTexSubImage3DEXT http://www.opengl.org/registry/specs/EXT/copy_texture.txt
-glCopyTextureImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyTextureImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyTextureSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyTextureSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCopyTextureSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glCoverFillPathInstancedNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glCoverFillPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glCoverStrokePathInstancedNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glCoverStrokePathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glCreateProgram http://www.opengl.org/sdk/docs/man/xhtml/glCreateProgram.xml
-glCreateProgram http://www.opengl.org/sdk/docs/man3/xhtml/glCreateProgram.xml
-glCreateProgram http://www.opengl.org/sdk/docs/man4/xhtml/glCreateProgram.xml
-glCreateProgramObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glCreateShader http://www.opengl.org/sdk/docs/man/xhtml/glCreateShader.xml
-glCreateShader http://www.opengl.org/sdk/docs/man3/xhtml/glCreateShader.xml
-glCreateShader http://www.opengl.org/sdk/docs/man4/xhtml/glCreateShader.xml
-glCreateShaderObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glCreateShaderProgramEXT http://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
-glCreateShaderProgramv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glCreateShaderProgramv http://www.opengl.org/sdk/docs/man4/xhtml/glCreateShaderProgram.xml
-glCreateSyncFromCLeventARB http://www.opengl.org/registry/specs/ARB/cl_event.txt
-glCullFace http://www.opengl.org/sdk/docs/man/xhtml/glCullFace.xml
-glCullFace http://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
-glCullFace http://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
-glCurrentPaletteMatrixARB http://www.opengl.org/registry/specs/ARB/matrix_palette.txt
-glDECLARE_HANDLE http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-glDECLARE_HANDLE http://www.opengl.org/registry/specs/NV/present_video.txt
-glDebugMessageCallbackAMD http://www.opengl.org/registry/specs/AMD/debug_output.txt
-glDebugMessageCallbackARB http://www.opengl.org/registry/specs/ARB/debug_output.txt
-glDebugMessageControlARB http://www.opengl.org/registry/specs/ARB/debug_output.txt
-glDebugMessageEnableAMD http://www.opengl.org/registry/specs/AMD/debug_output.txt
-glDebugMessageInsertAMD http://www.opengl.org/registry/specs/AMD/debug_output.txt
-glDebugMessageInsertARB http://www.opengl.org/registry/specs/ARB/debug_output.txt
-glDeleteArraySetsEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.alt.txt
-glDeleteArraySetsEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
-glDeleteAsyncMarkersSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glDeleteBuffers http://www.opengl.org/sdk/docs/man/xhtml/glDeleteBuffers.xml
-glDeleteBuffers http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteBuffers.xml
-glDeleteBuffers http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteBuffers.xml
-glDeleteBuffersARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glDeleteFencesAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glDeleteFencesNV http://www.opengl.org/registry/specs/NV/fence.txt
-glDeleteFramebuffers http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glDeleteFramebuffers http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteFramebuffers.xml
-glDeleteFramebuffers http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteFramebuffers.xml
-glDeleteFramebuffersEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glDeleteLists http://www.opengl.org/sdk/docs/man/xhtml/glDeleteLists.xml
-glDeleteNamedStringARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glDeleteNamesAMD http://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
-glDeleteObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glDeleteOcclusionQueriesNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glDeletePathsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glDeletePerfMonitorsAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glDeleteProgram http://www.opengl.org/sdk/docs/man/xhtml/glDeleteProgram.xml
-glDeleteProgram http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteProgram.xml
-glDeleteProgram http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgram.xml
-glDeleteProgramPipelines http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glDeleteProgramPipelines http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
-glDeleteProgramsARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glDeleteProgramsARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glDeleteProgramsNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glDeleteQueries http://www.opengl.org/sdk/docs/man/xhtml/glDeleteQueries.xml
-glDeleteQueries http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
-glDeleteQueries http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
-glDeleteQueriesARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glDeleteRenderbuffers http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glDeleteRenderbuffers http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteRenderbuffers.xml
-glDeleteRenderbuffers http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteRenderbuffers.xml
-glDeleteRenderbuffersEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glDeleteSamplers http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glDeleteSamplers http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSamplers.xml
-glDeleteSamplers http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
-glDeleteShader http://www.opengl.org/sdk/docs/man/xhtml/glDeleteShader.xml
-glDeleteShader http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteShader.xml
-glDeleteShader http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteShader.xml
-glDeleteSync http://www.opengl.org/registry/specs/ARB/sync.txt
-glDeleteSync http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
-glDeleteSync http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
-glDeleteTextures http://www.opengl.org/sdk/docs/man/xhtml/glDeleteTextures.xml
-glDeleteTextures http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteTextures.xml
-glDeleteTextures http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTextures.xml
-glDeleteTexturesEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glDeleteTransformFeedbacks http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glDeleteTransformFeedbacks http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
-glDeleteTransformFeedbacksNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glDeleteVertexArrays http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
-glDeleteVertexArrays http://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
-glDeleteVertexArrays http://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
-glDeleteVertexArraysAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
-glDepthBoundsEXT http://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt
-glDepthBoundsdNV http://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
-glDepthFunc http://www.opengl.org/sdk/docs/man/xhtml/glDepthFunc.xml
-glDepthFunc http://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
-glDepthFunc http://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
-glDepthMask http://www.opengl.org/sdk/docs/man/xhtml/glDepthMask.xml
-glDepthMask http://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
-glDepthMask http://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
-glDepthRange http://www.opengl.org/sdk/docs/man/xhtml/glDepthRange.xml
-glDepthRange http://www.opengl.org/sdk/docs/man3/xhtml/glDepthRange.xml
-glDepthRange http://www.opengl.org/sdk/docs/man4/xhtml/glDepthRange.xml
-glDepthRangeArrayv http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glDepthRangeArrayv http://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArray.xml
-glDepthRangeIndexed http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glDepthRangeIndexed http://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
-glDepthRangedNV http://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
-glDepthRangef http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
-glDepthRangef http://www.opengl.org/sdk/docs/man4/xhtml/glDepthRange.xml
-glDepthRangefOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glDepthRangexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glDetachObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glDetachShader http://www.opengl.org/sdk/docs/man/xhtml/glDetachShader.xml
-glDetachShader http://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
-glDetachShader http://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
-glDetailTexFuncSGIS http://www.opengl.org/registry/specs/SGIS/detail_texture.txt
-glDisable http://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml
-glDisable http://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
-glDisable http://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
-glDisableClientState http://www.opengl.org/sdk/docs/man/xhtml/glEnableClientState.xml
-glDisableClientStateIndexedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glDisableClientStateiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glDisableIndexedEXT http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glDisableIndexedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glDisableIndexedEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glDisableVertexArrayAttribEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glDisableVertexArrayEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glDisableVertexAttribAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glDisableVertexAttribArray http://www.opengl.org/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml
-glDisableVertexAttribArray http://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
-glDisableVertexAttribArray http://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
-glDisableVertexAttribArrayARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glDisableVertexAttribArrayARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glDisablei http://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
-glDisablei http://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
-glDrawArrays http://www.opengl.org/sdk/docs/man/xhtml/glDrawArrays.xml
-glDrawArrays http://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
-glDrawArrays http://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
-glDrawArraysEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glDrawArraysIndirect http://www.opengl.org/registry/specs/ARB/draw_indirect.txt
-glDrawArraysIndirect http://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
-glDrawArraysInstanced http://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
-glDrawArraysInstanced http://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
-glDrawArraysInstancedARB http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
-glDrawArraysInstancedBaseInstance http://www.opengl.org/registry/specs/ARB/base_instance.txt
-glDrawArraysInstancedEXT http://www.opengl.org/registry/specs/EXT/draw_instanced.txt
-glDrawBuffer http://www.opengl.org/sdk/docs/man/xhtml/glDrawBuffer.xml
-glDrawBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
-glDrawBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
-glDrawBuffers http://www.opengl.org/sdk/docs/man/xhtml/glDrawBuffers.xml
-glDrawBuffers http://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
-glDrawBuffers http://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
-glDrawBuffersARB http://www.opengl.org/registry/specs/ARB/draw_buffers.txt
-glDrawBuffersATI http://www.opengl.org/registry/specs/ATI/draw_buffers.txt
-glDrawElementArrayAPPLE http://www.opengl.org/registry/specs/APPLE/element_array.txt
-glDrawElementArrayATI http://www.opengl.org/registry/specs/ATI/element_array.txt
-glDrawElements http://www.opengl.org/sdk/docs/man/xhtml/glDrawElements.xml
-glDrawElements http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
-glDrawElements http://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
-glDrawElementsBaseVertex http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
-glDrawElementsBaseVertex http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
-glDrawElementsBaseVertex http://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
-glDrawElementsIndirect http://www.opengl.org/registry/specs/ARB/draw_indirect.txt
-glDrawElementsIndirect http://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
-glDrawElementsInstanced http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
-glDrawElementsInstanced http://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
-glDrawElementsInstancedARB http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
-glDrawElementsInstancedBaseInstance http://www.opengl.org/registry/specs/ARB/base_instance.txt
-glDrawElementsInstancedBaseVertex http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
-glDrawElementsInstancedBaseVertex http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
-glDrawElementsInstancedBaseVertex http://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
-glDrawElementsInstancedBaseVertexBaseInstance http://www.opengl.org/registry/specs/ARB/base_instance.txt
-glDrawElementsInstancedEXT http://www.opengl.org/registry/specs/EXT/draw_instanced.txt
-glDrawMeshArraysSUN http://www.opengl.org/registry/specs/SUN/mesh_array.txt
-glDrawPixels http://www.opengl.org/sdk/docs/man/xhtml/glDrawPixels.xml
-glDrawRangeElementArrayAPPLE http://www.opengl.org/registry/specs/APPLE/element_array.txt
-glDrawRangeElementArrayATI http://www.opengl.org/registry/specs/ATI/element_array.txt
-glDrawRangeElements http://www.opengl.org/sdk/docs/man/xhtml/glDrawRangeElements.xml
-glDrawRangeElements http://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
-glDrawRangeElements http://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
-glDrawRangeElementsBaseVertex http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
-glDrawRangeElementsBaseVertex http://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
-glDrawRangeElementsBaseVertex http://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
-glDrawTransformFeedback http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glDrawTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
-glDrawTransformFeedbackInstanced http://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt
-glDrawTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glDrawTransformFeedbackStream http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
-glDrawTransformFeedbackStream http://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
-glDrawTransformFeedbackStreamInstanced http://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt
-glEdgeFlag http://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlag.xml
-glEdgeFlagFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glEdgeFlagPointer http://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlagPointer.xml
-glEdgeFlagPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glEdgeFlagv http://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlag.xml
-glElementPointerAPPLE http://www.opengl.org/registry/specs/APPLE/element_array.txt
-glElementPointerATI http://www.opengl.org/registry/specs/ATI/element_array.txt
-glEnable http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glEnable http://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml
-glEnable http://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
-glEnable http://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
-glEnableClientState http://www.opengl.org/sdk/docs/man/xhtml/glEnableClientState.xml
-glEnableClientStateIndexedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glEnableClientStateiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glEnableIndexedEXT http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glEnableIndexedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glEnableIndexedEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glEnableVertexArrayAttribEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glEnableVertexArrayEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glEnableVertexAttribAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glEnableVertexAttribArray http://www.opengl.org/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml
-glEnableVertexAttribArray http://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
-glEnableVertexAttribArray http://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
-glEnableVertexAttribArrayARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glEnableVertexAttribArrayARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glEnablei http://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
-glEnablei http://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
-glEnd http://www.opengl.org/sdk/docs/man/xhtml/glBegin.xml
-glEndConditionalRender http://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
-glEndConditionalRender http://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
-glEndConditionalRenderNV http://www.opengl.org/registry/specs/NV/conditional_render.txt
-glEndList http://www.opengl.org/sdk/docs/man/xhtml/glNewList.xml
-glEndOcclusionQueryNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glEndPerfMonitorAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glEndQuery http://www.opengl.org/sdk/docs/man/xhtml/glBeginQuery.xml
-glEndQuery http://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
-glEndQuery http://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
-glEndQueryARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glEndQueryIndexed http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
-glEndQueryIndexed http://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
-glEndSceneEXT http://www.opengl.org/registry/specs/EXT/scene_marker.txt
-glEndTransformFeedback http://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
-glEndTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
-glEndTransformFeedbackEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glEndTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glEndVideoCaptureNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glEvalCoord1d http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord1dv http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord1f http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord1fv http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord2d http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord2dv http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord2f http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalCoord2fv http://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
-glEvalMapsNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glEvalMesh1 http://www.opengl.org/sdk/docs/man/xhtml/glEvalMesh.xml
-glEvalMesh2 http://www.opengl.org/sdk/docs/man/xhtml/glEvalMesh.xml
-glEvalPoint1 http://www.opengl.org/sdk/docs/man/xhtml/glEvalPoint.xml
-glEvalPoint2 http://www.opengl.org/sdk/docs/man/xhtml/glEvalPoint.xml
-glExecuteProgramNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glFeedbackBuffer http://www.opengl.org/sdk/docs/man/xhtml/glFeedbackBuffer.xml
-glFeedbackBufferxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glFenceSync http://www.opengl.org/registry/specs/ARB/sync.txt
-glFenceSync http://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
-glFenceSync http://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
-glFinalCombinerInputNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glFinish http://www.opengl.org/sdk/docs/man/xhtml/glFinish.xml
-glFinish http://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
-glFinish http://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
-glFinishAsyncSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glFinishFenceAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glFinishFenceNV http://www.opengl.org/registry/specs/NV/fence.txt
-glFinishObjectAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glFinishTextureSUNX http://www.opengl.org/registry/specs/SUNX/constant_data.txt
-glFlush http://www.opengl.org/sdk/docs/man/xhtml/glFlush.xml
-glFlush http://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
-glFlush http://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
-glFlushMappedBufferRange http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt
-glFlushMappedBufferRange http://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
-glFlushMappedBufferRange http://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
-glFlushMappedBufferRangeAPPLE http://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt
-glFlushMappedNamedBufferRangeEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glFlushPixelDataRangeNV http://www.opengl.org/registry/specs/NV/pixel_data_range.txt
-glFlushRasterSGIX http://www.opengl.org/registry/specs/SGIX/flush_raster.txt
-glFlushStaticDataIBM http://www.opengl.org/registry/specs/IBM/static_data.txt
-glFlushVertexArrayRangeAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
-glFlushVertexArrayRangeNV http://www.opengl.org/registry/specs/NV/vertex_array_range.txt
-glFogCoordFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glFogCoordPointer http://www.opengl.org/sdk/docs/man/xhtml/glFogCoordPointer.xml
-glFogCoordPointerEXT http://www.opengl.org/registry/specs/EXT/fog_coord.txt
-glFogCoordd http://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
-glFogCoorddv http://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
-glFogCoordf http://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
-glFogCoordfv http://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
-glFogCoordhNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glFogCoordhvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glFogFuncSGIS http://www.opengl.org/registry/specs/SGIS/fog_func.txt
-glFogf http://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
-glFogfv http://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
-glFogi http://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
-glFogiv http://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
-glFragmentColorMaterialEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentColorMaterialSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightModelfEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightModelfSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightModelfvEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightModelfvSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightModeliEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightModeliSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightModelivEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightModelivSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightfEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightfSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightfvEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightfvSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightiEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightiSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentLightivEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentLightivSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentMaterialfEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentMaterialfSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentMaterialfvEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentMaterialfvSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentMaterialiEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentMaterialiSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFragmentMaterialivEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glFragmentMaterialivSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glFrameTerminatorGREMEDY http://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt
-glFrameZoomSGIX http://www.opengl.org/registry/specs/SGIX/framezoom.txt
-glFramebufferDrawBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glFramebufferDrawBuffersEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glFramebufferReadBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glFramebufferRenderbuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glFramebufferRenderbuffer http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
-glFramebufferRenderbuffer http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
-glFramebufferRenderbufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glFramebufferTexture http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
-glFramebufferTexture http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
-glFramebufferTexture1D http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glFramebufferTexture1D http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
-glFramebufferTexture1D http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
-glFramebufferTexture1DEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glFramebufferTexture2D http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glFramebufferTexture2D http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
-glFramebufferTexture2D http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
-glFramebufferTexture2DEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glFramebufferTexture3D http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glFramebufferTexture3D http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
-glFramebufferTexture3D http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
-glFramebufferTexture3DEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glFramebufferTextureARB http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
-glFramebufferTextureEXT http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
-glFramebufferTextureEXT http://www.opengl.org/registry/specs/NV/geometry_program4.txt
-glFramebufferTextureFaceARB http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
-glFramebufferTextureFaceEXT http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
-glFramebufferTextureFaceEXT http://www.opengl.org/registry/specs/NV/geometry_program4.txt
-glFramebufferTextureLayer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glFramebufferTextureLayer http://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
-glFramebufferTextureLayer http://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
-glFramebufferTextureLayerARB http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
-glFramebufferTextureLayerEXT http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
-glFramebufferTextureLayerEXT http://www.opengl.org/registry/specs/EXT/texture_array.txt
-glFramebufferTextureLayerEXT http://www.opengl.org/registry/specs/NV/geometry_program4.txt
-glFreeObjectBufferATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glFrontFace http://www.opengl.org/sdk/docs/man/xhtml/glFrontFace.xml
-glFrontFace http://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
-glFrontFace http://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
-glFrustum http://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml
-glFrustumfOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glFrustumxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGenArraySetsEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
-glGenAsyncMarkersSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glGenBuffers http://www.opengl.org/sdk/docs/man/xhtml/glGenBuffers.xml
-glGenBuffers http://www.opengl.org/sdk/docs/man3/xhtml/glGenBuffers.xml
-glGenBuffers http://www.opengl.org/sdk/docs/man4/xhtml/glGenBuffers.xml
-glGenBuffersARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glGenFencesAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glGenFencesNV http://www.opengl.org/registry/specs/NV/fence.txt
-glGenFramebuffers http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glGenFramebuffers http://www.opengl.org/sdk/docs/man3/xhtml/glGenFramebuffers.xml
-glGenFramebuffers http://www.opengl.org/sdk/docs/man4/xhtml/glGenFramebuffers.xml
-glGenFramebuffersEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glGenLists http://www.opengl.org/sdk/docs/man/xhtml/glGenLists.xml
-glGenNamesAMD http://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
-glGenOcclusionQueriesNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glGenPathsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGenPerfMonitorsAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGenProgramPipelines http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glGenProgramPipelines http://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
-glGenProgramsARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGenProgramsARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGenProgramsNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGenQueries http://www.opengl.org/sdk/docs/man/xhtml/glGenQueries.xml
-glGenQueries http://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
-glGenQueries http://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
-glGenQueriesARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glGenRenderbuffers http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glGenRenderbuffers http://www.opengl.org/sdk/docs/man3/xhtml/glGenRenderbuffers.xml
-glGenRenderbuffers http://www.opengl.org/sdk/docs/man4/xhtml/glGenRenderbuffers.xml
-glGenRenderbuffersEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glGenSamplers http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glGenSamplers http://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml
-glGenSamplers http://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
-glGenTextures http://www.opengl.org/sdk/docs/man/xhtml/glGenTextures.xml
-glGenTextures http://www.opengl.org/sdk/docs/man3/xhtml/glGenTextures.xml
-glGenTextures http://www.opengl.org/sdk/docs/man4/xhtml/glGenTextures.xml
-glGenTexturesEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glGenTransformFeedbacks http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glGenTransformFeedbacks http://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
-glGenTransformFeedbacksNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glGenVertexArrays http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
-glGenVertexArrays http://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
-glGenVertexArrays http://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
-glGenVertexArraysAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
-glGenerateMipmap http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glGenerateMipmap http://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
-glGenerateMipmap http://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
-glGenerateMipmapEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glGenerateMultiTexMipmapEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGenerateTextureMipmapEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetActiveAttrib http://www.opengl.org/sdk/docs/man/xhtml/glGetActiveAttrib.xml
-glGetActiveAttrib http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
-glGetActiveAttrib http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
-glGetActiveAttribARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetActiveSubroutineName http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetActiveSubroutineName http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
-glGetActiveSubroutineUniformName http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetActiveSubroutineUniformName http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
-glGetActiveSubroutineUniformiv http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetActiveSubroutineUniformiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniform.xml
-glGetActiveUniform http://www.opengl.org/sdk/docs/man/xhtml/glGetActiveUniform.xml
-glGetActiveUniform http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
-glGetActiveUniform http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
-glGetActiveUniformARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetActiveUniformBlockName http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetActiveUniformBlockName http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
-glGetActiveUniformBlockName http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
-glGetActiveUniformBlockiv http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetActiveUniformBlockiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlock.xml
-glGetActiveUniformBlockiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlock.xml
-glGetActiveUniformName http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetActiveUniformName http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
-glGetActiveUniformName http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
-glGetActiveUniformsiv http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetActiveUniformsiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
-glGetActiveUniformsiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
-glGetActiveVaryingNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glGetArrayObjectfvATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetArrayObjectivATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetAttachedObjectsARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetAttachedShaders http://www.opengl.org/sdk/docs/man/xhtml/glGetAttachedShaders.xml
-glGetAttachedShaders http://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
-glGetAttachedShaders http://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
-glGetAttribLocation http://www.opengl.org/sdk/docs/man/xhtml/glGetAttribLocation.xml
-glGetAttribLocation http://www.opengl.org/sdk/docs/man3/xhtml/glGetAttribLocation.xml
-glGetAttribLocation http://www.opengl.org/sdk/docs/man4/xhtml/glGetAttribLocation.xml
-glGetAttribLocationARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetBooleanIndexedvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetBooleanIndexedvEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glGetBooleanIndexedvEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glGetBooleanIndexedvEXT http://www.opengl.org/registry/specs/NV/explicit_multisample.txt
-glGetBooleanIndexedvEXT http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glGetBooleani_v http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetBooleani_v http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetBooleanv http://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
-glGetBooleanv http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetBooleanv http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetBufferParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetBufferParameteriv.xml
-glGetBufferParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml
-glGetBufferParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameter.xml
-glGetBufferParameterivARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glGetBufferParameterui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glGetBufferPointerv http://www.opengl.org/sdk/docs/man/xhtml/glGetBufferPointerv.xml
-glGetBufferPointerv http://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferPointerv.xml
-glGetBufferPointerv http://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferPointerv.xml
-glGetBufferPointervARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glGetBufferSubData http://www.opengl.org/sdk/docs/man/xhtml/glGetBufferSubData.xml
-glGetBufferSubData http://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
-glGetBufferSubData http://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
-glGetBufferSubDataARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glGetClipPlane http://www.opengl.org/sdk/docs/man/xhtml/glGetClipPlane.xml
-glGetClipPlanefOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glGetClipPlanexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetColorTable http://www.opengl.org/sdk/docs/man/xhtml/glGetColorTable.xml
-glGetColorTableEXT http://www.opengl.org/registry/specs/EXT/paletted_texture.txt
-glGetColorTableParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetColorTableParameter.xml
-glGetColorTableParameterfvEXT http://www.opengl.org/registry/specs/EXT/paletted_texture.txt
-glGetColorTableParameterfvSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glGetColorTableParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetColorTableParameter.xml
-glGetColorTableParameterivEXT http://www.opengl.org/registry/specs/EXT/paletted_texture.txt
-glGetColorTableParameterivSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glGetColorTableSGI http://www.opengl.org/registry/specs/SGI/color_table.txt
-glGetCombinerInputParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetCombinerInputParameterivNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetCombinerOutputParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetCombinerOutputParameterivNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetCombinerStageParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners2.txt
-glGetCompressedMultiTexImageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetCompressedTexImage http://www.opengl.org/sdk/docs/man/xhtml/glGetCompressedTexImage.xml
-glGetCompressedTexImage http://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
-glGetCompressedTexImage http://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
-glGetCompressedTexImageARB http://www.opengl.org/registry/specs/ARB/texture_compression.txt
-glGetCompressedTextureImageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetConvolutionFilter http://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionFilter.xml
-glGetConvolutionFilterEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glGetConvolutionParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionParameter.xml
-glGetConvolutionParameterfvEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glGetConvolutionParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionParameter.xml
-glGetConvolutionParameterivEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glGetConvolutionParameterxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetDebugMessageLogAMD http://www.opengl.org/registry/specs/AMD/debug_output.txt
-glGetDebugMessageLogARB http://www.opengl.org/registry/specs/ARB/debug_output.txt
-glGetDetailTexFuncSGIS http://www.opengl.org/registry/specs/SGIS/detail_texture.txt
-glGetDoubleIndexedvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetDoublei_v http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glGetDoublei_vEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetDoublev http://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
-glGetDoublev http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetDoublev http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetError http://www.opengl.org/sdk/docs/man/xhtml/glGetError.xml
-glGetError http://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
-glGetError http://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
-glGetFenceivNV http://www.opengl.org/registry/specs/NV/fence.txt
-glGetFinalCombinerInputParameterfvNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetFinalCombinerInputParameterivNV http://www.opengl.org/registry/specs/NV/register_combiners.txt
-glGetFixedvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetFloatIndexedvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetFloati_v http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glGetFloati_vEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetFloatv http://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
-glGetFloatv http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetFloatv http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetFogFuncSGIS http://www.opengl.org/registry/specs/SGIS/fog_func.txt
-glGetFragDataIndex http://www.opengl.org/registry/specs/ARB/blend_func_extended.txt
-glGetFragDataIndex http://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataIndex.xml
-glGetFragDataIndex http://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
-glGetFragDataLocation http://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
-glGetFragDataLocation http://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
-glGetFragDataLocationEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glGetFragmentLightfvEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glGetFragmentLightfvSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glGetFragmentLightivEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glGetFragmentLightivSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glGetFragmentMaterialfvEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glGetFragmentMaterialfvSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glGetFragmentMaterialivEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glGetFragmentMaterialivSGIX http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
-glGetFramebufferAttachmentParameter http://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameter.xml
-glGetFramebufferAttachmentParameter http://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameter.xml
-glGetFramebufferAttachmentParameteriv http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glGetFramebufferAttachmentParameterivEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glGetFramebufferParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetGraphicsResetStatusARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetHandleARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetHistogram http://www.opengl.org/sdk/docs/man/xhtml/glGetHistogram.xml
-glGetHistogramEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetHistogramParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetHistogramParameter.xml
-glGetHistogramParameterfvEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetHistogramParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetHistogramParameter.xml
-glGetHistogramParameterivEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetHistogramParameterxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetImageTransformParameterfvHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glGetImageTransformParameterivHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glGetInfoLogARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetInstrumentsSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glGetInteger64i_v http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetInteger64i_v http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetInteger64v http://www.opengl.org/registry/specs/ARB/sync.txt
-glGetInteger64v http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetInteger64v http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetIntegerIndexedivEXT http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/NV/explicit_multisample.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glGetIntegerIndexedvEXT http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glGetIntegeri_v http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetIntegeri_v http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetIntegeri_v http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetIntegerui64i_vNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glGetIntegerui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glGetIntegerv http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glGetIntegerv http://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
-glGetIntegerv http://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
-glGetIntegerv http://www.opengl.org/sdk/docs/man4/xhtml/glGet.xml
-glGetInternalformativ http://www.opengl.org/registry/specs/ARB/internalformat_query.txt
-glGetLightfv http://www.opengl.org/sdk/docs/man/xhtml/glGetLight.xml
-glGetLightiv http://www.opengl.org/sdk/docs/man/xhtml/glGetLight.xml
-glGetLightxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetListParameterfvSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glGetListParameterivSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glGetMapAttribParameterfvNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glGetMapAttribParameterivNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glGetMapControlPointsNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glGetMapParameterfvNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glGetMapParameterivNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glGetMapdv http://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
-glGetMapfv http://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
-glGetMapiv http://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
-glGetMapxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetMaterialfv http://www.opengl.org/sdk/docs/man/xhtml/glGetMaterial.xml
-glGetMaterialiv http://www.opengl.org/sdk/docs/man/xhtml/glGetMaterial.xml
-glGetMaterialxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetMinmax http://www.opengl.org/sdk/docs/man/xhtml/glGetMinmax.xml
-glGetMinmaxEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetMinmaxParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetMinmaxParameter.xml
-glGetMinmaxParameterfvEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetMinmaxParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetMinmaxParameter.xml
-glGetMinmaxParameterivEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glGetMultiTexEnvfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexEnvivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexGendvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexGenfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexGenivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexImageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexLevelParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexLevelParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexParameterIivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexParameterIuivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultiTexParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetMultisamplefv http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
-glGetMultisamplefv http://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisample.xml
-glGetMultisamplefv http://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisample.xml
-glGetMultisamplefvNV http://www.opengl.org/registry/specs/NV/explicit_multisample.txt
-glGetNamedBufferParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedBufferParameterui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glGetNamedBufferPointervEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedBufferSubDataEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedFramebufferAttachmentParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramLocalParameterIivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramLocalParameterIuivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramLocalParameterdvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramLocalParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramStringEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedProgramivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedRenderbufferParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetNamedStringARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glGetNamedStringivARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glGetObjectBufferfvATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetObjectBufferivATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetObjectParameterfvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetObjectParameterivAPPLE http://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
-glGetObjectParameterivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetOcclusionQueryivNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glGetOcclusionQueryuivNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glGetPathColorGenfvNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathColorGenivNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathCommandsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathCoordsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathDashArrayNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathLengthNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathMetricRangeNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathMetricsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathParameterfvNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathParameterivNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathSpacingNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathTexGenfvNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPathTexGenivNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glGetPerfMonitorCounterDataAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPerfMonitorCounterInfoAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPerfMonitorCounterStringAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPerfMonitorCountersAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPerfMonitorGroupStringAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPerfMonitorGroupsAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glGetPixelMapfv http://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
-glGetPixelMapuiv http://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
-glGetPixelMapusv http://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
-glGetPixelTransformParameterfvEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glGetPixelTransformParameterivEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glGetPointerIndexedvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetPointeri_vEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetPointerv http://www.opengl.org/registry/specs/ARB/debug_output.txt
-glGetPointerv http://www.opengl.org/sdk/docs/man/xhtml/glGetPointerv.xml
-glGetPointervEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glGetPointervEXT http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glGetPolygonStipple http://www.opengl.org/sdk/docs/man/xhtml/glGetPolygonStipple.xml
-glGetProgramBinary http://www.opengl.org/registry/specs/ARB/get_program_binary.txt
-glGetProgramBinary http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
-glGetProgramEnvParameterIivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glGetProgramEnvParameterIuivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glGetProgramEnvParameterdvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramEnvParameterdvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramEnvParameterfvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramEnvParameterfvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramInfoLog http://www.opengl.org/sdk/docs/man/xhtml/glGetProgramInfoLog.xml
-glGetProgramInfoLog http://www.opengl.org/sdk/docs/man3/xhtml/glGetProgramInfoLog.xml
-glGetProgramInfoLog http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramInfoLog.xml
-glGetProgramLocalParameterIivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glGetProgramLocalParameterIuivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glGetProgramLocalParameterdvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramLocalParameterdvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramLocalParameterdvARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glGetProgramLocalParameterfvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramLocalParameterfvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramLocalParameterfvARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glGetProgramNamedParameterdvNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glGetProgramNamedParameterfvNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glGetProgramParameterdvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetProgramParameterfvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetProgramPipelineInfoLog http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glGetProgramPipelineInfoLog http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
-glGetProgramPipelineiv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glGetProgramPipelineiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipeline.xml
-glGetProgramStageiv http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetProgramStageiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStage.xml
-glGetProgramStringARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramStringARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramStringNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetProgramiv http://www.opengl.org/sdk/docs/man/xhtml/glGetProgram.xml
-glGetProgramiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetProgram.xml
-glGetProgramiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetProgram.xml
-glGetProgramivARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glGetProgramivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetProgramivNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetQueryIndexediv http://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
-glGetQueryIndexediv http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexed.xml
-glGetQueryObjecti64v http://www.opengl.org/registry/specs/ARB/timer_query.txt
-glGetQueryObjecti64v http://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
-glGetQueryObjecti64v http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObject.xml
-glGetQueryObjecti64vEXT http://www.opengl.org/registry/specs/EXT/timer_query.txt
-glGetQueryObjectiv http://www.opengl.org/sdk/docs/man/xhtml/glGetQueryObject.xml
-glGetQueryObjectiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
-glGetQueryObjectiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObject.xml
-glGetQueryObjectivARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glGetQueryObjectui64v http://www.opengl.org/registry/specs/ARB/timer_query.txt
-glGetQueryObjectui64v http://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
-glGetQueryObjectui64v http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObject.xml
-glGetQueryObjectui64vEXT http://www.opengl.org/registry/specs/EXT/timer_query.txt
-glGetQueryObjectuiv http://www.opengl.org/sdk/docs/man/xhtml/glGetQueryObject.xml
-glGetQueryObjectuiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
-glGetQueryObjectuiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObject.xml
-glGetQueryObjectuivARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glGetQueryiv http://www.opengl.org/sdk/docs/man/xhtml/glGetQueryiv.xml
-glGetQueryiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
-glGetQueryiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
-glGetQueryivARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glGetRenderbufferParameteriv http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glGetRenderbufferParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameter.xml
-glGetRenderbufferParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameter.xml
-glGetRenderbufferParameterivEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glGetSamplerParameterIiv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glGetSamplerParameterIuiv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glGetSamplerParameterfv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glGetSamplerParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml
-glGetSamplerParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameter.xml
-glGetSamplerParameteriv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glGetSamplerParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml
-glGetSamplerParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameter.xml
-glGetSeparableFilter http://www.opengl.org/sdk/docs/man/xhtml/glGetSeparableFilter.xml
-glGetSeparableFilterEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glGetShaderInfoLog http://www.opengl.org/sdk/docs/man/xhtml/glGetShaderInfoLog.xml
-glGetShaderInfoLog http://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderInfoLog.xml
-glGetShaderInfoLog http://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderInfoLog.xml
-glGetShaderPrecisionFormat http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
-glGetShaderPrecisionFormat http://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
-glGetShaderSource http://www.opengl.org/sdk/docs/man/xhtml/glGetShaderSource.xml
-glGetShaderSource http://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
-glGetShaderSource http://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
-glGetShaderSourceARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetShaderiv http://www.opengl.org/sdk/docs/man/xhtml/glGetShader.xml
-glGetShaderiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetShader.xml
-glGetShaderiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetShader.xml
-glGetSharpenTexFuncSGIS http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt
-glGetString http://www.opengl.org/sdk/docs/man/xhtml/glGetString.xml
-glGetString http://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml
-glGetString http://www.opengl.org/sdk/docs/man4/xhtml/glGetString.xml
-glGetStringi http://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml
-glGetStringi http://www.opengl.org/sdk/docs/man4/xhtml/glGetString.xml
-glGetSubroutineIndex http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetSubroutineIndex http://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
-glGetSubroutineUniformLocation http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetSubroutineUniformLocation http://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
-glGetSynciv http://www.opengl.org/registry/specs/ARB/sync.txt
-glGetSynciv http://www.opengl.org/sdk/docs/man3/xhtml/glGetSync.xml
-glGetSynciv http://www.opengl.org/sdk/docs/man4/xhtml/glGetSync.xml
-glGetTexEnvfv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexEnv.xml
-glGetTexEnviv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexEnv.xml
-glGetTexEnvxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetTexFilterFuncSGIS http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt
-glGetTexGendv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
-glGetTexGenfv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
-glGetTexGeniv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
-glGetTexGenxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetTexImage http://www.opengl.org/sdk/docs/man/xhtml/glGetTexImage.xml
-glGetTexImage http://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
-glGetTexImage http://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
-glGetTexLevelParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameter.xml
-glGetTexLevelParameterxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetTexParameterPointervAPPLE http://www.opengl.org/registry/specs/APPLE/texture_range.txt
-glGetTexParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexParameter.xml
-glGetTexParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml
-glGetTexParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameter.xml
-glGetTexParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glGetTexParameter.xml
-glGetTexParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml
-glGetTexParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameter.xml
-glGetTexParameterxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glGetTextureImageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureLevelParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureLevelParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureParameterIivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureParameterIuivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTextureParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetTrackMatrixivNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetTransformFeedbackVarying http://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
-glGetTransformFeedbackVarying http://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
-glGetTransformFeedbackVaryingEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glGetTransformFeedbackVaryingNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glGetUniformBlockIndex http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetUniformBlockIndex http://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
-glGetUniformBlockIndex http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
-glGetUniformBufferSizeEXT http://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
-glGetUniformIndices http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glGetUniformIndices http://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformIndices.xml
-glGetUniformIndices http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformIndices.xml
-glGetUniformLocation http://www.opengl.org/sdk/docs/man/xhtml/glGetUniformLocation.xml
-glGetUniformLocation http://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml
-glGetUniformLocation http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformLocation.xml
-glGetUniformLocationARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetUniformOffsetEXT http://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
-glGetUniformSubroutineuiv http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glGetUniformSubroutineuiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutine.xml
-glGetUniformdv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glGetUniformfv http://www.opengl.org/sdk/docs/man/xhtml/glGetUniform.xml
-glGetUniformfv http://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml
-glGetUniformfv http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniform.xml
-glGetUniformfvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetUniformi64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glGetUniformiv http://www.opengl.org/sdk/docs/man/xhtml/glGetUniform.xml
-glGetUniformiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml
-glGetUniformiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetUniform.xml
-glGetUniformivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glGetUniformui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glGetUniformui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glGetUniformuivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glGetVariantArrayObjectfvATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetVariantArrayObjectivATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glGetVaryingLocationNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glGetVertexArrayIntegeri_vEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetVertexArrayIntegervEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetVertexArrayPointeri_vEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetVertexArrayPointervEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glGetVertexAttribArrayObjectfvATI http://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
-glGetVertexAttribArrayObjectivATI http://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
-glGetVertexAttribIiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribIiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribIivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glGetVertexAttribIivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glGetVertexAttribIuiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribIuiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribIuivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glGetVertexAttribIuivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glGetVertexAttribLdv http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glGetVertexAttribLdv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribLdvEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glGetVertexAttribLi64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glGetVertexAttribLui64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glGetVertexAttribPointerv http://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttribPointerv.xml
-glGetVertexAttribPointerv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribPointerv.xml
-glGetVertexAttribPointerv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribPointerv.xml
-glGetVertexAttribPointervARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetVertexAttribPointervARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetVertexAttribPointervNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetVertexAttribdv http://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribdv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribdv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribdvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetVertexAttribdvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetVertexAttribdvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetVertexAttribfv http://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribfv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribfv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribfvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetVertexAttribfvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetVertexAttribfvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetVertexAttribiv http://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribiv http://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribiv http://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttrib.xml
-glGetVertexAttribivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glGetVertexAttribivARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glGetVertexAttribivNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glGetVideoCaptureivNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glGetVideoi64vNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glGetVideoivNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glGetVideoui64vNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glGetVideouivNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glGetnColorTableARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnCompressedTexImageARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnConvolutionFilterARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnHistogramARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnMapdvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnMapfvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnMapivARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnMinmaxARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnPixelMapfvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnPixelMapuivARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnPixelMapusvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnPolygonStippleARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnSeparableFilterARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnTexImageARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnUniformdvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnUniformfvARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnUniformivARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGetnUniformuivARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glGlobalAlphaFactorbSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactordSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactorfSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactoriSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactorsSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactorubSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactoruiSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glGlobalAlphaFactorusSUN http://www.opengl.org/registry/specs/SUN/global_alpha.txt
-glHint http://www.opengl.org/sdk/docs/man/xhtml/glHint.xml
-glHint http://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
-glHint http://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
-glHistogram http://www.opengl.org/sdk/docs/man/xhtml/glHistogram.xml
-glHistogramEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glImageTransformParameterfHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glImageTransformParameterfvHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glImageTransformParameteriHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glImageTransformParameterivHP http://www.opengl.org/registry/specs/HP/image_transform.txt
-glImportSyncEXT http://www.opengl.org/registry/specs/EXT/x11_sync_object.txt
-glIndexFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glIndexMask http://www.opengl.org/sdk/docs/man/xhtml/glIndexMask.xml
-glIndexPointer http://www.opengl.org/sdk/docs/man/xhtml/glIndexPointer.xml
-glIndexPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glIndexd http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexdv http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexf http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexfv http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexi http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexiv http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexs http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexsv http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexub http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glIndexubv http://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
-glInitNames http://www.opengl.org/sdk/docs/man/xhtml/glInitNames.xml
-glInstrumentsBufferSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glInterleavedArrays http://www.opengl.org/sdk/docs/man/xhtml/glInterleavedArrays.xml
-glInterpolatePathsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glIsArraySetEXT http://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
-glIsAsyncMarkerSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glIsBuffer http://www.opengl.org/sdk/docs/man/xhtml/glIsBuffer.xml
-glIsBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
-glIsBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
-glIsBufferARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glIsBufferResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glIsEnabled http://www.opengl.org/sdk/docs/man/xhtml/glIsEnabled.xml
-glIsEnabled http://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
-glIsEnabled http://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
-glIsEnabledIndexedEXT http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glIsEnabledIndexedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glIsEnabledIndexedEXT http://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
-glIsFenceAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glIsFenceNV http://www.opengl.org/registry/specs/NV/fence.txt
-glIsFramebuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glIsFramebuffer http://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
-glIsFramebuffer http://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
-glIsFramebufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glIsList http://www.opengl.org/sdk/docs/man/xhtml/glIsList.xml
-glIsNameAMD http://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
-glIsNamedBufferResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glIsNamedStringARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glIsObjectBufferATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glIsOcclusionQueryNV http://www.opengl.org/registry/specs/NV/occlusion_query.txt
-glIsPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glIsPointInFillPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glIsPointInStrokePathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glIsProgram http://www.opengl.org/sdk/docs/man/xhtml/glIsProgram.xml
-glIsProgram http://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
-glIsProgram http://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
-glIsProgramARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glIsProgramARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glIsProgramNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glIsProgramPipeline http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glIsProgramPipeline http://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
-glIsQuery http://www.opengl.org/sdk/docs/man/xhtml/glIsQuery.xml
-glIsQuery http://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
-glIsQuery http://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
-glIsQueryARB http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
-glIsRenderbuffer http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glIsRenderbuffer http://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
-glIsRenderbuffer http://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
-glIsRenderbufferEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glIsSampler http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glIsSampler http://www.opengl.org/sdk/docs/man3/xhtml/glIsSampler.xml
-glIsSampler http://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
-glIsShader http://www.opengl.org/sdk/docs/man/xhtml/glIsShader.xml
-glIsShader http://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
-glIsShader http://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
-glIsSync http://www.opengl.org/registry/specs/ARB/sync.txt
-glIsSync http://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
-glIsSync http://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
-glIsTexture http://www.opengl.org/sdk/docs/man/xhtml/glIsTexture.xml
-glIsTexture http://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
-glIsTexture http://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
-glIsTextureEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glIsTransformFeedback http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glIsTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
-glIsTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glIsVertexArray http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
-glIsVertexArray http://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
-glIsVertexArray http://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
-glIsVertexArrayAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
-glIsVertexAttribEnabledAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glJoinSwapGroupSGIX http://www.opengl.org/registry/specs/SGIX/swap_group.txt
-glLightEnviEXT http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
-glLightModelf http://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
-glLightModelfv http://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
-glLightModeli http://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
-glLightModeliv http://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
-glLightf http://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
-glLightfv http://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
-glLighti http://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
-glLightiv http://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
-glLineStipple http://www.opengl.org/sdk/docs/man/xhtml/glLineStipple.xml
-glLineWidth http://www.opengl.org/sdk/docs/man/xhtml/glLineWidth.xml
-glLineWidth http://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
-glLineWidth http://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
-glLineWidthxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glLinkProgram http://www.opengl.org/sdk/docs/man/xhtml/glLinkProgram.xml
-glLinkProgram http://www.opengl.org/sdk/docs/man3/xhtml/glLinkProgram.xml
-glLinkProgram http://www.opengl.org/sdk/docs/man4/xhtml/glLinkProgram.xml
-glLinkProgramARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glListBase http://www.opengl.org/sdk/docs/man/xhtml/glListBase.xml
-glListParameterfSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glListParameterfvSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glListParameteriSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glListParameterivSGIX http://www.opengl.org/registry/specs/SGIX/list_priority.txt
-glLoadIdentity http://www.opengl.org/sdk/docs/man/xhtml/glLoadIdentity.xml
-glLoadMatrixd http://www.opengl.org/sdk/docs/man/xhtml/glLoadMatrix.xml
-glLoadMatrixf http://www.opengl.org/sdk/docs/man/xhtml/glLoadMatrix.xml
-glLoadMatrixxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glLoadName http://www.opengl.org/sdk/docs/man/xhtml/glLoadName.xml
-glLoadProgramNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glLoadTransposeMatrixd http://www.opengl.org/sdk/docs/man/xhtml/glLoadTransposeMatrix.xml
-glLoadTransposeMatrixf http://www.opengl.org/sdk/docs/man/xhtml/glLoadTransposeMatrix.xml
-glLoadTransposeMatrixxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glLogicOp http://www.opengl.org/sdk/docs/man/xhtml/glLogicOp.xml
-glLogicOp http://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
-glLogicOp http://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
-glMakeBufferNonResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glMakeBufferResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glMakeNamedBufferNonResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glMakeNamedBufferResidentNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glMap1d http://www.opengl.org/sdk/docs/man/xhtml/glMap1.xml
-glMap1f http://www.opengl.org/sdk/docs/man/xhtml/glMap1.xml
-glMap1xOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMap2d http://www.opengl.org/sdk/docs/man/xhtml/glMap2.xml
-glMap2f http://www.opengl.org/sdk/docs/man/xhtml/glMap2.xml
-glMap2xOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMapBuffer http://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml
-glMapBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml
-glMapBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glMapBuffer.xml
-glMapBufferRange http://www.opengl.org/sdk/docs/man3/xhtml/glMapBufferRange.xml
-glMapBufferRange http://www.opengl.org/sdk/docs/man4/xhtml/glMapBufferRange.xml
-glMapControlPointsNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glMapGrid1d http://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
-glMapGrid1f http://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
-glMapGrid1xOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMapGrid2d http://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
-glMapGrid2f http://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
-glMapGrid2xOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMapNamedBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMapParameterfvNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glMapParameterivNV http://www.opengl.org/registry/specs/NV/evaluators.txt
-glMapVertexAttrib1dAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glMapVertexAttrib1fAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glMapVertexAttrib2dAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glMapVertexAttrib2fAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
-glMaterialf http://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
-glMaterialfv http://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
-glMateriali http://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
-glMaterialiv http://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
-glMatrixFrustumEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixIndexPointerARB http://www.opengl.org/registry/specs/ARB/matrix_palette.txt
-glMatrixLoadIdentityEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixLoadTransposedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixLoadTransposefEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixLoaddEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixLoadfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixMode http://www.opengl.org/sdk/docs/man/xhtml/glMatrixMode.xml
-glMatrixMultTransposedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixMultTransposefEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixMultdEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixMultfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixOrthoEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixPopEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixPushEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixRotatedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixRotatefEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixScaledEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixScalefEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixTranslatedEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMatrixTranslatefEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMemoryBarrier http://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt
-glMemoryBarrierEXT http://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt
-glMinSampleShading http://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
-glMinSampleShadingARB http://www.opengl.org/registry/specs/ARB/sample_shading.txt
-glMinmax http://www.opengl.org/sdk/docs/man/xhtml/glMinmax.xml
-glMinmaxEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glMultMatrixd http://www.opengl.org/sdk/docs/man/xhtml/glMultMatrix.xml
-glMultMatrixf http://www.opengl.org/sdk/docs/man/xhtml/glMultMatrix.xml
-glMultMatrixxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMultTransposeMatrixd http://www.opengl.org/sdk/docs/man/xhtml/glMultTransposeMatrix.xml
-glMultTransposeMatrixf http://www.opengl.org/sdk/docs/man/xhtml/glMultTransposeMatrix.xml
-glMultTransposeMatrixxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glMultiDrawArrays http://www.opengl.org/sdk/docs/man/xhtml/glMultiDrawArrays.xml
-glMultiDrawArrays http://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
-glMultiDrawArrays http://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
-glMultiDrawArraysEXT http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt
-glMultiDrawArraysIndirectAMD http://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt
-glMultiDrawElementArrayAPPLE http://www.opengl.org/registry/specs/APPLE/element_array.txt
-glMultiDrawElements http://www.opengl.org/sdk/docs/man/xhtml/glMultiDrawElements.xml
-glMultiDrawElements http://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElements.xml
-glMultiDrawElements http://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawElements.xml
-glMultiDrawElementsBaseVertex http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
-glMultiDrawElementsBaseVertex http://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElementsBaseVertex.xml
-glMultiDrawElementsBaseVertex http://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawElementsBaseVertex.xml
-glMultiDrawElementsEXT http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt
-glMultiDrawElementsIndirectAMD http://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt
-glMultiDrawRangeElementArrayAPPLE http://www.opengl.org/registry/specs/APPLE/element_array.txt
-glMultiModeDrawArraysIBM http://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
-glMultiModeDrawElementsIBM http://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
-glMultiTexBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexCoord1d http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1dv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1f http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1fv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord1hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord1i http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1iv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1s http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord1sv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2d http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2dv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2f http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2fv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord2hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord2i http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2iv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2s http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord2sv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3d http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3dv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3f http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3fv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord3i http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3iv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3s http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord3sv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4d http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4dv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4f http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4fv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glMultiTexCoord4i http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4iv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4s http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoord4sv http://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
-glMultiTexCoordP1ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP1uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP2ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP2uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP4ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordP4uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glMultiTexCoordPointerEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexEnvfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexEnvfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexEnviEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexEnvivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGendEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGendvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGenfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGenfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGeniEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexGenivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameterIivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameterIuivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameterfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameteriEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexRenderbufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glMultiTexSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedBufferDataEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedBufferSubDataEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedCopyBufferSubDataEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferRenderbufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTexture1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTexture2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTexture3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTextureEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTextureFaceEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedFramebufferTextureLayerEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameter4dEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameter4dvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameter4fEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameter4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameterI4iEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameterI4ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameterI4uiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameterI4uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParameters4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParametersI4ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramLocalParametersI4uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedProgramStringEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedRenderbufferStorageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedRenderbufferStorageMultisampleCoverageEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedRenderbufferStorageMultisampleEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glNamedStringARB http://www.opengl.org/registry/specs/ARB/shading_language_include.txt
-glNewList http://www.opengl.org/sdk/docs/man/xhtml/glNewList.xml
-glNewObjectBufferATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glNormal3b http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3bv http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3d http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3dv http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3f http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3fVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glNormal3fVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glNormal3fv http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glNormal3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glNormal3i http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3iv http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3s http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormal3sv http://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
-glNormalFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glNormalP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glNormalP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glNormalPointer http://www.opengl.org/sdk/docs/man/xhtml/glNormalPointer.xml
-glNormalPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glNormalPointervINTEL http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
-glObjectPurgeableAPPLE http://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
-glObjectUnpurgeableAPPLE http://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
-glOrtho http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml
-glOrthofOES http://www.opengl.org/registry/specs/OES/OES_single_precision.txt
-glOrthoxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPassThrough http://www.opengl.org/sdk/docs/man/xhtml/glPassThrough.xml
-glPassThroughxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPatchParameterfv http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt
-glPatchParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameter.xml
-glPatchParameteri http://www.opengl.org/registry/specs/ARB/tessellation_shader.txt
-glPatchParameteri http://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameter.xml
-glPathColorGenNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathCommandsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathCoordsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathCoverDepthFuncNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathDashArrayNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathFogGenNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathGlyphRangeNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathGlyphsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathParameterfNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathParameterfvNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathParameteriNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathParameterivNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathStencilDepthOffsetNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathStencilFuncNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathStringNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathSubCommandsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathSubCoordsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPathTexGenNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPauseTransformFeedback http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glPauseTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
-glPauseTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glPixelDataRangeNV http://www.opengl.org/registry/specs/NV/pixel_data_range.txt
-glPixelMapfv http://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
-glPixelMapuiv http://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
-glPixelMapusv http://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
-glPixelStoref http://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml
-glPixelStoref http://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml
-glPixelStoref http://www.opengl.org/sdk/docs/man4/xhtml/glPixelStore.xml
-glPixelStorei http://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml
-glPixelStorei http://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml
-glPixelStorei http://www.opengl.org/sdk/docs/man4/xhtml/glPixelStore.xml
-glPixelTexGenSGIX http://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt
-glPixelTransferf http://www.opengl.org/sdk/docs/man/xhtml/glPixelTransfer.xml
-glPixelTransferi http://www.opengl.org/sdk/docs/man/xhtml/glPixelTransfer.xml
-glPixelTransferxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPixelTransformParameterfEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glPixelTransformParameterfvEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glPixelTransformParameteriEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glPixelTransformParameterivEXT http://www.opengl.org/registry/specs/EXT/pixel_transform.txt
-glPixelZoom http://www.opengl.org/sdk/docs/man/xhtml/glPixelZoom.xml
-glPixelZoomxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPointAlongPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glPointParameterf http://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
-glPointParameterf http://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
-glPointParameterf http://www.opengl.org/sdk/docs/man4/xhtml/glPointParameter.xml
-glPointParameterfARB http://www.opengl.org/registry/specs/ARB/point_parameters.txt
-glPointParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
-glPointParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
-glPointParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glPointParameter.xml
-glPointParameterfvARB http://www.opengl.org/registry/specs/ARB/point_parameters.txt
-glPointParameteri http://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
-glPointParameteri http://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
-glPointParameteri http://www.opengl.org/sdk/docs/man4/xhtml/glPointParameter.xml
-glPointParameteriNV http://www.opengl.org/registry/specs/NV/point_sprite.txt
-glPointParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
-glPointParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
-glPointParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glPointParameter.xml
-glPointParameterivNV http://www.opengl.org/registry/specs/NV/point_sprite.txt
-glPointParameterxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPointSize http://www.opengl.org/sdk/docs/man/xhtml/glPointSize.xml
-glPointSize http://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
-glPointSize http://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
-glPointSizexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPollAsyncSGIX http://www.opengl.org/registry/specs/SGIX/async.txt
-glPollInstrumentsSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glPolygonMode http://www.opengl.org/sdk/docs/man/xhtml/glPolygonMode.xml
-glPolygonMode http://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
-glPolygonMode http://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
-glPolygonOffset http://www.opengl.org/sdk/docs/man/xhtml/glPolygonOffset.xml
-glPolygonOffset http://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
-glPolygonOffset http://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
-glPolygonOffsetEXT http://www.opengl.org/registry/specs/EXT/polygon_offset.txt
-glPolygonOffsetxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glPolygonStipple http://www.opengl.org/sdk/docs/man/xhtml/glPolygonStipple.xml
-glPopAttrib http://www.opengl.org/sdk/docs/man/xhtml/glPushAttrib.xml
-glPopClientAttrib http://www.opengl.org/sdk/docs/man/xhtml/glPushClientAttrib.xml
-glPopMatrix http://www.opengl.org/sdk/docs/man/xhtml/glPushMatrix.xml
-glPopName http://www.opengl.org/sdk/docs/man/xhtml/glPushName.xml
-glPresentFrameDualFillNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glPresentFrameKeyedNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glPrimitiveRestartIndex http://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
-glPrimitiveRestartIndex http://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
-glPrimitiveRestartIndexNV http://www.opengl.org/registry/specs/NV/primitive_restart.txt
-glPrimitiveRestartNV http://www.opengl.org/registry/specs/NV/primitive_restart.txt
-glPrioritizeTextures http://www.opengl.org/sdk/docs/man/xhtml/glPrioritizeTextures.xml
-glPrioritizeTexturesEXT http://www.opengl.org/registry/specs/EXT/texture_object.txt
-glPrioritizeTexturesxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glProgramBinary http://www.opengl.org/registry/specs/ARB/get_program_binary.txt
-glProgramBinary http://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
-glProgramBufferParametersIivNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glProgramBufferParametersIuivNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glProgramBufferParametersfvNV http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
-glProgramEnvParameter4dARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramEnvParameter4dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramEnvParameter4dvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramEnvParameter4dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramEnvParameter4fARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramEnvParameter4fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramEnvParameter4fvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramEnvParameter4fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramEnvParameterI4iNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramEnvParameterI4ivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramEnvParameterI4uiNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramEnvParameterI4uivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramEnvParametersI4ivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramEnvParametersI4uivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParameter4dARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramLocalParameter4dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramLocalParameter4dARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramLocalParameter4dvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramLocalParameter4dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramLocalParameter4dvARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramLocalParameter4fARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramLocalParameter4fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramLocalParameter4fARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramLocalParameter4fvARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramLocalParameter4fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramLocalParameter4fvARB http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramLocalParameterI4iNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParameterI4ivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParameterI4uiNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParameterI4uivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParametersI4ivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramLocalParametersI4uivNV http://www.opengl.org/registry/specs/NV/gpu_program4.txt
-glProgramNamedParameter4dNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramNamedParameter4dvNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramNamedParameter4fNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramNamedParameter4fvNV http://www.opengl.org/registry/specs/NV/fragment_program.txt
-glProgramParameter4dNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramParameter4dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramParameter4fNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramParameter4fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramParameteri http://www.opengl.org/registry/specs/ARB/get_program_binary.txt
-glProgramParameteri http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramParameteri http://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameter.xml
-glProgramParameteriARB http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
-glProgramParameteriEXT http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
-glProgramParameters4dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramParameters4fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glProgramStringARB http://www.opengl.org/registry/specs/ARB/fragment_program.txt
-glProgramStringARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glProgramUniform1d http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1dEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform1dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform1f http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1f http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1fEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform1fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform1i http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1i http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform1i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform1iEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform1iv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1iv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform1ui http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1ui http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform1ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform1uiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform1uiv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform1uiv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform1uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2d http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2dEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform2dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform2f http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2f http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2fEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2i http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2i http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform2i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform2iEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2iv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2iv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2ui http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2ui http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform2ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform2uiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform2uiv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform2uiv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform2uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3d http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3dEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform3dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform3f http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3f http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3fEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3i http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3i http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform3i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform3iEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3iv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3iv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3ui http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3ui http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform3ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform3uiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform3uiv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform3uiv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform3uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4d http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4dEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform4dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniform4f http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4f http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4fEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4i http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4i http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform4i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform4iEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4iv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4iv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4ivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4ui http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4ui http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform4ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glProgramUniform4uiEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniform4uiv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniform4uiv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniform4uivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix2dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix2fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix2fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix2x3dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2x3dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix2x3fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2x3fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix2x3fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix2x4dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2x4dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix2x4fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix2x4fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix2x4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix3dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix3fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix3fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix3x2dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3x2dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix3x2fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3x2fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix3x2fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix3x4dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3x4dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix3x4fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix3x4fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix3x4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix4dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix4fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix4fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix4x2dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4x2dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix4x2fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4x2fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix4x2fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformMatrix4x3dv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4x3dvEXT http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glProgramUniformMatrix4x3fv http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glProgramUniformMatrix4x3fv http://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform.xml
-glProgramUniformMatrix4x3fvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glProgramUniformui64NV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glProgramUniformui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glProgramVertexLimitNV http://www.opengl.org/registry/specs/NV/geometry_program4.txt
-glProvokingVertex http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt
-glProvokingVertex http://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
-glProvokingVertex http://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
-glProvokingVertexEXT http://www.opengl.org/registry/specs/EXT/provoking_vertex.txt
-glPushAttrib http://www.opengl.org/sdk/docs/man/xhtml/glPushAttrib.xml
-glPushClientAttrib http://www.opengl.org/sdk/docs/man/xhtml/glPushClientAttrib.xml
-glPushClientAttribDefaultEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glPushMatrix http://www.opengl.org/sdk/docs/man/xhtml/glPushMatrix.xml
-glPushName http://www.opengl.org/sdk/docs/man/xhtml/glPushName.xml
-glQueryCounter http://www.opengl.org/registry/specs/ARB/timer_query.txt
-glQueryCounter http://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml
-glQueryCounter http://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
-glQueryMatrixxOES http://www.opengl.org/registry/specs/OES/OES_query_matrix.txt
-glQueryMaxSwapBarriersSGIX http://www.opengl.org/registry/specs/SGIX/swap_barrier.txt
-glRasterPos2d http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2dv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2f http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2fv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2i http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2iv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2s http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos2sv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3d http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3dv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3f http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3fv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3i http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3iv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3s http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos3sv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4d http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4dv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4f http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4fv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4i http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4iv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4s http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glRasterPos4sv http://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
-glReadBuffer http://www.opengl.org/sdk/docs/man/xhtml/glReadBuffer.xml
-glReadBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
-glReadBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
-glReadInstrumentsSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glReadPixels http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml
-glReadPixels http://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
-glReadPixels http://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
-glReadnPixelsARB http://www.opengl.org/registry/specs/ARB/robustness.txt
-glRectd http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectdv http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectf http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectfv http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRecti http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectiv http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRects http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectsv http://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
-glRectxOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glRectxvOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glReferencePlaneSGIX http://www.opengl.org/registry/specs/SGIX/reference_plane.txt
-glReleaseShaderCompiler http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
-glReleaseShaderCompiler http://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
-glRenderMode http://www.opengl.org/sdk/docs/man/xhtml/glRenderMode.xml
-glRenderbufferStorage http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glRenderbufferStorage http://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
-glRenderbufferStorage http://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
-glRenderbufferStorageEXT http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
-glRenderbufferStorageMultisample http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
-glRenderbufferStorageMultisample http://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
-glRenderbufferStorageMultisample http://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
-glRenderbufferStorageMultisampleCoverageNV http://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt
-glRenderbufferStorageMultisampleEXT http://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt
-glReplacementCodePointerSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeubSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeubvSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeuiSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeuivSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeusSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glReplacementCodeusvSUN http://www.opengl.org/registry/specs/SUN/triangle_list.txt
-glRequestResidentProgramsNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glResetHistogram http://www.opengl.org/sdk/docs/man/xhtml/glResetHistogram.xml
-glResetHistogramEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glResetMinmax http://www.opengl.org/sdk/docs/man/xhtml/glResetMinmax.xml
-glResetMinmaxEXT http://www.opengl.org/registry/specs/EXT/histogram.txt
-glResizeBuffersMESA http://www.opengl.org/registry/specs/MESA/resize_buffers.txt
-glResumeTransformFeedback http://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
-glResumeTransformFeedback http://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
-glResumeTransformFeedbackNV http://www.opengl.org/registry/specs/NV/transform_feedback2.txt
-glRotated http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml
-glRotatef http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml
-glRotatexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glSampleCoverage http://www.opengl.org/sdk/docs/man/xhtml/glSampleCoverage.xml
-glSampleCoverage http://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
-glSampleCoverage http://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
-glSampleCoverageARB http://www.opengl.org/registry/specs/ARB/multisample.txt
-glSampleCoverageOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glSampleMaskEXT http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt
-glSampleMaskIndexedNV http://www.opengl.org/registry/specs/NV/explicit_multisample.txt
-glSampleMaskSGIS http://www.opengl.org/registry/specs/SGIS/multisample.txt
-glSampleMaski http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
-glSampleMaski http://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
-glSampleMaski http://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
-glSamplePatternEXT http://www.opengl.org/registry/specs/EXT/wgl_multisample.txt
-glSamplePatternSGIS http://www.opengl.org/registry/specs/SGIS/multisample.txt
-glSamplerParameterIiv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameterIuiv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameterf http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameterf http://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
-glSamplerParameterf http://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameter.xml
-glSamplerParameterfv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
-glSamplerParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameter.xml
-glSamplerParameteri http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameteri http://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
-glSamplerParameteri http://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameter.xml
-glSamplerParameteriv http://www.opengl.org/registry/specs/ARB/sampler_objects.txt
-glSamplerParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
-glSamplerParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameter.xml
-glScaled http://www.opengl.org/sdk/docs/man/xhtml/glScale.xml
-glScalef http://www.opengl.org/sdk/docs/man/xhtml/glScale.xml
-glScalexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glScissor http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml
-glScissor http://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
-glScissor http://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
-glScissorArrayv http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glScissorArrayv http://www.opengl.org/sdk/docs/man4/xhtml/glScissorArray.xml
-glScissorIndexed http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glScissorIndexed http://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
-glScissorIndexedv http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glScissorIndexedv http://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
-glSecondaryColor3b http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3bv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3d http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3dv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3f http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3fv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glSecondaryColor3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glSecondaryColor3i http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3iv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3s http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3sv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3ub http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3ubv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3ui http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3uiv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3us http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColor3usv http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
-glSecondaryColorFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glSecondaryColorP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glSecondaryColorP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glSecondaryColorPointer http://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColorPointer.xml
-glSecondaryColorPointerEXT http://www.opengl.org/registry/specs/EXT/secondary_color.txt
-glSelectBuffer http://www.opengl.org/sdk/docs/man/xhtml/glSelectBuffer.xml
-glSelectPerfMonitorCountersAMD http://www.opengl.org/registry/specs/AMD/performance_monitor.txt
-glSeparableFilter2D http://www.opengl.org/sdk/docs/man/xhtml/glSeparableFilter2D.xml
-glSeparableFilter2DEXT http://www.opengl.org/registry/specs/EXT/convolution.txt
-glSetFenceAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glSetFenceNV http://www.opengl.org/registry/specs/NV/fence.txt
-glSetMultisamplefvAMD http://www.opengl.org/registry/specs/AMD/sample_positions.txt
-glShadeModel http://www.opengl.org/sdk/docs/man/xhtml/glShadeModel.xml
-glShaderBinary http://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
-glShaderBinary http://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
-glShaderSource http://www.opengl.org/sdk/docs/man/xhtml/glShaderSource.xml
-glShaderSource http://www.opengl.org/sdk/docs/man3/xhtml/glShaderSource.xml
-glShaderSource http://www.opengl.org/sdk/docs/man4/xhtml/glShaderSource.xml
-glShaderSourceARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glSharpenTexFuncSGIS http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt
-glSpriteParameterfSGIX http://www.opengl.org/registry/specs/SGIX/sprite.txt
-glSpriteParameterfvSGIX http://www.opengl.org/registry/specs/SGIX/sprite.txt
-glSpriteParameteriSGIX http://www.opengl.org/registry/specs/SGIX/sprite.txt
-glSpriteParameterivSGIX http://www.opengl.org/registry/specs/SGIX/sprite.txt
-glStartInstrumentsSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glStencilClearTagEXT http://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt
-glStencilFillPathInstancedNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glStencilFillPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glStencilFunc http://www.opengl.org/sdk/docs/man/xhtml/glStencilFunc.xml
-glStencilFunc http://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
-glStencilFunc http://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
-glStencilFuncSeparate http://www.opengl.org/sdk/docs/man/xhtml/glStencilFuncSeparate.xml
-glStencilFuncSeparate http://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
-glStencilFuncSeparate http://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
-glStencilMask http://www.opengl.org/sdk/docs/man/xhtml/glStencilMask.xml
-glStencilMask http://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
-glStencilMask http://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
-glStencilMaskSeparate http://www.opengl.org/sdk/docs/man/xhtml/glStencilMaskSeparate.xml
-glStencilMaskSeparate http://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
-glStencilMaskSeparate http://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
-glStencilOp http://www.opengl.org/sdk/docs/man/xhtml/glStencilOp.xml
-glStencilOp http://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
-glStencilOp http://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
-glStencilOpSeparate http://www.opengl.org/sdk/docs/man/xhtml/glStencilOpSeparate.xml
-glStencilOpSeparate http://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
-glStencilOpSeparate http://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
-glStencilStrokePathInstancedNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glStencilStrokePathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glStopInstrumentsSGIX http://www.opengl.org/registry/specs/SGIX/instruments.txt
-glStringMarkerGREMEDY http://www.opengl.org/registry/specs/GREMEDY/string_marker.txt
-glTagSampleBufferSGIX http://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt
-glTangentPointerEXT http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt
-glTbufferMask3DFX http://www.opengl.org/registry/specs/3DFX/tbuffer.txt
-glTessellationFactorAMD http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
-glTessellationModeAMD http://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
-glTestFenceAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glTestFenceNV http://www.opengl.org/registry/specs/NV/fence.txt
-glTestObjectAPPLE http://www.opengl.org/registry/specs/APPLE/fence.txt
-glTexBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
-glTexBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
-glTexBufferARB http://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt
-glTexBufferEXT http://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt
-glTexCoord1d http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1dv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1f http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1fv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord1hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord1i http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1iv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1s http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord1sv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2d http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2dv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2f http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2fColor4ubVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord2fColor4ubVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord2fVertex3fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord2fVertex3fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord2fv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord2hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord2i http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2iv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2s http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord2sv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3d http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3dv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3f http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3fv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord3i http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3iv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3s http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord3sv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4d http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4dv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4f http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4fVertex4fSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord4fVertex4fvSUN http://www.opengl.org/registry/specs/SUN/vertex.txt
-glTexCoord4fv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glTexCoord4i http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4iv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4s http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoord4sv http://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
-glTexCoordFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glTexCoordP1ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP1uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP2ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP2uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP4ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordP4uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glTexCoordPointer http://www.opengl.org/sdk/docs/man/xhtml/glTexCoordPointer.xml
-glTexCoordPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glTexCoordPointervINTEL http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
-glTexEnvf http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
-glTexEnvfv http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
-glTexEnvi http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
-glTexEnviv http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
-glTexFilterFuncSGIS http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt
-glTexGend http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexGendv http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexGenf http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexGenfv http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexGeni http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexGeniv http://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
-glTexImage1D http://www.opengl.org/sdk/docs/man/xhtml/glTexImage1D.xml
-glTexImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
-glTexImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
-glTexImage2D http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml
-glTexImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
-glTexImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
-glTexImage2DMultisample http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
-glTexImage2DMultisample http://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
-glTexImage2DMultisample http://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
-glTexImage2DMultisampleCoverageNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTexImage3D http://www.opengl.org/sdk/docs/man/xhtml/glTexImage3D.xml
-glTexImage3D http://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
-glTexImage3D http://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
-glTexImage3DEXT http://www.opengl.org/registry/specs/EXT/texture3D.txt
-glTexImage3DMultisample http://www.opengl.org/registry/specs/ARB/texture_multisample.txt
-glTexImage3DMultisample http://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
-glTexImage3DMultisample http://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
-glTexImage3DMultisampleCoverageNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTexImage4DSGIS http://www.opengl.org/registry/specs/SGIS/texture4D.txt
-glTexParameterIiv http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameterIiv http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexParameterIivEXT http://www.opengl.org/registry/specs/EXT/texture_integer.txt
-glTexParameterIuiv http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameterIuiv http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexParameterIuivEXT http://www.opengl.org/registry/specs/EXT/texture_integer.txt
-glTexParameterf http://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
-glTexParameterf http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameterf http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexParameterfv http://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
-glTexParameterfv http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameterfv http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexParameteri http://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
-glTexParameteri http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameteri http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexParameteriv http://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
-glTexParameteriv http://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
-glTexParameteriv http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml
-glTexRenderbufferNV http://www.opengl.org/registry/specs/NV/explicit_multisample.txt
-glTexStorage1D http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTexStorage2D http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTexStorage3D http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTexSubImage1D http://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage1D.xml
-glTexSubImage1D http://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
-glTexSubImage1D http://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
-glTexSubImage1DEXT http://www.opengl.org/registry/specs/EXT/subtexture.txt
-glTexSubImage2D http://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage2D.xml
-glTexSubImage2D http://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
-glTexSubImage2D http://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
-glTexSubImage2DEXT http://www.opengl.org/registry/specs/EXT/subtexture.txt
-glTexSubImage3D http://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage3D.xml
-glTexSubImage3D http://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
-glTexSubImage3D http://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
-glTexSubImage3DEXT http://www.opengl.org/registry/specs/EXT/subtexture.txt
-glTexSubImage4DSGIS http://www.opengl.org/registry/specs/SGIS/texture4D.txt
-glTextureBarrierNV http://www.opengl.org/registry/specs/NV/texture_barrier.txt
-glTextureBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureColorMaskSGIS http://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt
-glTextureFogSGIX http://www.opengl.org/registry/specs/SGIX/fog_texture.txt
-glTextureImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureImage2DMultisampleCoverageNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTextureImage2DMultisampleNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTextureImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureImage3DMultisampleCoverageNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTextureImage3DMultisampleNV http://www.opengl.org/registry/specs/NV/texture_multisample.txt
-glTextureLightEXT http://www.opengl.org/registry/specs/EXT/light_texture.txt
-glTextureMaterialEXT http://www.opengl.org/registry/specs/EXT/light_texture.txt
-glTextureNormalEXT http://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt
-glTextureParameterIivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureParameterIuivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureParameterfEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureParameterfvEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureParameteriEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureParameterivEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureRangeAPPLE http://www.opengl.org/registry/specs/APPLE/texture_range.txt
-glTextureRenderbufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureStorage1DEXT http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTextureStorage2DEXT http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTextureStorage3DEXT http://www.opengl.org/registry/specs/ARB/texture_storage.txt
-glTextureSubImage1DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureSubImage2DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTextureSubImage3DEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glTrackMatrixNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glTransformFeedbackAttribsNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glTransformFeedbackVaryings http://www.opengl.org/sdk/docs/man3/xhtml/glTransformFeedbackVaryings.xml
-glTransformFeedbackVaryings http://www.opengl.org/sdk/docs/man4/xhtml/glTransformFeedbackVaryings.xml
-glTransformFeedbackVaryingsEXT http://www.opengl.org/registry/specs/EXT/transform_feedback.txt
-glTransformFeedbackVaryingsNV http://www.opengl.org/registry/specs/NV/transform_feedback.txt
-glTransformPathNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glTranslated http://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml
-glTranslatef http://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml
-glTranslatexOES http://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
-glUniform1d http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform1dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform1f http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform1f http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1f http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1fARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform1fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform1fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform1i http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform1i http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1i http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform1i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform1iARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform1iv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform1iv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1iv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1ivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform1ui http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1ui http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform1ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform1uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform1uiv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform1uiv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform1uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform2d http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform2dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform2f http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform2f http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2f http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2fARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform2fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform2fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform2i http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform2i http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2i http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform2i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform2iARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform2iv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform2iv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2iv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2ivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform2ui http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2ui http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform2ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform2uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform2uiv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform2uiv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform2uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform3d http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform3dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform3f http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform3f http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3f http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3fARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform3fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform3fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform3i http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform3i http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3i http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform3i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform3iARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform3iv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform3iv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3iv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3ivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform3ui http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3ui http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform3ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform3uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform3uiv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform3uiv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform3uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform4d http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform4dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniform4f http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform4f http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4f http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4fARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform4fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform4fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform4i http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform4i http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4i http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4i64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform4i64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform4iARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform4iv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniform4iv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4iv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4ivARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniform4ui http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4ui http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4ui64NV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform4ui64vNV http://www.opengl.org/registry/specs/NV/gpu_shader5.txt
-glUniform4uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniform4uiv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniform4uiv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniform4uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glUniformBlockBinding http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
-glUniformBlockBinding http://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
-glUniformBlockBinding http://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
-glUniformBufferEXT http://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
-glUniformMatrix2dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix2fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix2fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix2fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix2fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniformMatrix2x3dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix2x3fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix2x3fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix2x3fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix2x4dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix2x4fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix2x4fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix2x4fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix3dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix3fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix3fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix3fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix3fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniformMatrix3x2dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix3x2fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix3x2fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix3x2fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix3x4dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix3x4fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix3x4fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix3x4fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix4dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix4fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix4fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix4fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix4fvARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUniformMatrix4x2dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix4x2fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix4x2fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix4x2fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformMatrix4x3dv http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
-glUniformMatrix4x3fv http://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
-glUniformMatrix4x3fv http://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
-glUniformMatrix4x3fv http://www.opengl.org/sdk/docs/man4/xhtml/glUniform.xml
-glUniformSubroutinesuiv http://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
-glUniformSubroutinesuiv http://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutines.xml
-glUniformui64NV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glUniformui64vNV http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
-glUnmapBuffer http://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml
-glUnmapBuffer http://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml
-glUnmapBuffer http://www.opengl.org/sdk/docs/man4/xhtml/glMapBuffer.xml
-glUnmapBufferARB http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
-glUnmapNamedBufferEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glUnmapObjectBufferATI http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
-glUpdateObjectBufferATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glUseProgram http://www.opengl.org/sdk/docs/man/xhtml/glUseProgram.xml
-glUseProgram http://www.opengl.org/sdk/docs/man3/xhtml/glUseProgram.xml
-glUseProgram http://www.opengl.org/sdk/docs/man4/xhtml/glUseProgram.xml
-glUseProgramObjectARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glUseProgramStages http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glUseProgramStages http://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
-glUseShaderProgramEXT http://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
-glValidateProgram http://www.opengl.org/sdk/docs/man/xhtml/glValidateProgram.xml
-glValidateProgram http://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
-glValidateProgram http://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
-glValidateProgramARB http://www.opengl.org/registry/specs/ARB/shader_objects.txt
-glValidateProgramPipeline http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-glValidateProgramPipeline http://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
-glVariantArrayObjectATI http://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
-glVertex2d http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2dv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2f http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2fv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex2hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex2i http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2iv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2s http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex2sv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3d http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3dv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3f http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3fv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex3i http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3iv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3s http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex3sv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4d http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4dv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4f http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4fv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertex4i http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4iv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4s http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertex4sv http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
-glVertexArrayColorOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayEdgeFlagOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayFogCoordOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayIndexOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayMultiTexCoordOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayNormalOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayParameteriAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
-glVertexArrayRangeAPPLE http://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
-glVertexArrayRangeNV http://www.opengl.org/registry/specs/NV/vertex_array_range.txt
-glVertexArraySecondaryColorOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayTexCoordOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayVertexAttribIOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayVertexAttribLOffsetEXT http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexArrayVertexAttribLOffsetEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexArrayVertexAttribOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexArrayVertexOffsetEXT http://www.opengl.org/registry/specs/EXT/direct_state_access.txt
-glVertexAttrib1d http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1d http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1dARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1dNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib1dv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1dv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1dvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib1f http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1f http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1f http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1fARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1fNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib1fv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1fv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1fv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1fvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib1hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib1hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib1s http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1s http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1s http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1sARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1sARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1sNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib1sv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib1sv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib1sv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib1svARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib1svARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib1svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2d http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2d http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2dARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2dNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2dv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2dv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2dvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2f http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2f http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2f http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2fARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2fNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2fv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2fv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2fv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2fvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib2hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib2s http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2s http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2s http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2sARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2sARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2sNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib2sv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib2sv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib2sv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib2svARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib2svARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib2svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3d http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3d http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3dARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3dNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3dv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3dv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3dvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3f http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3f http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3f http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3fARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3fNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3fv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3fv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3fv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3fvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib3s http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3s http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3s http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3sARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3sARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3sNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib3sv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib3sv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib3sv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib3svARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib3svARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib3svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4Nbv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nbv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nbv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NbvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NbvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Niv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Niv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Niv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NivARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Nsv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nsv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nsv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NsvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NsvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Nub http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nub http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nub http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NubARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NubARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Nubv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nubv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nubv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NubvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NubvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Nuiv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nuiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nuiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NuivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NuivARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4Nusv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nusv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4Nusv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4NusvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4NusvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4bv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4bv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4bv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4bvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4bvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4d http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4d http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4dARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4dARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4dNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4dv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4dv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4dvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4dvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4f http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4f http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4f http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4fARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4fARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4fNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4fv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4fv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4fv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4fvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4fvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4hNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttrib4iv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4iv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4iv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4ivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4ivARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4s http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4s http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4s http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4sARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4sARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4sNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4sv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4sv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4sv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4svARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4svARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4ubNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4ubv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4ubv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4ubv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4ubvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4ubvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4ubvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttrib4uiv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4uiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4uiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4uivARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4uivARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttrib4usv http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
-glVertexAttrib4usv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttrib4usv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttrib4usvARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttrib4usvARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttribArrayObjectATI http://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
-glVertexAttribDivisor http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml
-glVertexAttribDivisor http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
-glVertexAttribDivisorARB http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
-glVertexAttribFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glVertexAttribI1i http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI1i http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI1iEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI1iEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI1iv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI1iv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI1ivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI1ivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI1ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI1ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI1uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI1uiEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI1uiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI1uiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI1uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI1uivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI2i http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI2i http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI2iEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI2iEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI2iv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI2iv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI2ivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI2ivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI2ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI2ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI2uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI2uiEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI2uiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI2uiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI2uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI2uivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI3i http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI3i http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI3iEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI3iEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI3iv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI3iv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI3ivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI3ivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI3ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI3ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI3uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI3uiEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI3uiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI3uiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI3uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI3uivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4bv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4bv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4bvEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4bvEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4i http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4i http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4iEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4iEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4iv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4iv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4ivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4ivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4sv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4sv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4svEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4svEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4ubv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4ubv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4ubvEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4ubvEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4uiEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4uiEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4uiv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4uiv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4uivEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4uivEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribI4usv http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribI4usv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribI4usvEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribI4usvEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribIFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glVertexAttribIPointer http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml
-glVertexAttribIPointer http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribPointer.xml
-glVertexAttribIPointerEXT http://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
-glVertexAttribIPointerEXT http://www.opengl.org/registry/specs/NV/vertex_program4.txt
-glVertexAttribL1d http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL1d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL1dEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL1dv http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL1dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL1dvEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL1i64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL1i64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL1ui64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL1ui64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL2d http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL2d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL2dEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL2dv http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL2dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL2dvEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL2i64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL2i64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL2ui64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL2ui64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL3d http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL3d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL3dEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL3dv http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL3dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL3dvEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL3i64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL3i64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL3ui64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL3ui64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL4d http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL4d http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL4dEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL4dv http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribL4dv http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribL4dvEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribL4i64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL4i64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL4ui64NV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribL4ui64vNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribLFormatNV http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
-glVertexAttribLPointer http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-glVertexAttribLPointer http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribPointer.xml
-glVertexAttribLPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
-glVertexAttribP1ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP1ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribP1ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribP1uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP2ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP2ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribP2ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribP2uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP3ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribP3ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP4ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribP4ui http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
-glVertexAttribP4ui http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib.xml
-glVertexAttribP4uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexAttribPointer http://www.opengl.org/sdk/docs/man/xhtml/glVertexAttribPointer.xml
-glVertexAttribPointer http://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml
-glVertexAttribPointer http://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribPointer.xml
-glVertexAttribPointerARB http://www.opengl.org/registry/specs/ARB/vertex_program.txt
-glVertexAttribPointerARB http://www.opengl.org/registry/specs/ARB/vertex_shader.txt
-glVertexAttribPointerNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs1dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs1fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs1hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttribs1svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs2dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs2fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs2hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttribs2svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs3dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs3fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs3hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttribs3svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs4dvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs4fvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs4hvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexAttribs4svNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexAttribs4ubvNV http://www.opengl.org/registry/specs/NV/vertex_program.txt
-glVertexBlendARB http://www.opengl.org/registry/specs/ARB/vertex_blend.txt
-glVertexFormatNV http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
-glVertexP2ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexP2uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexP3ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexP3uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexP4ui http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexP4uiv http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
-glVertexPointer http://www.opengl.org/sdk/docs/man/xhtml/glVertexPointer.xml
-glVertexPointerEXT http://www.opengl.org/registry/specs/EXT/vertex_array.txt
-glVertexPointervINTEL http://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
-glVertexWeighthNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVertexWeighthvNV http://www.opengl.org/registry/specs/NV/half_float.txt
-glVideoCaptureNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glViewport http://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml
-glViewport http://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
-glViewport http://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
-glViewportArrayv http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glViewportArrayv http://www.opengl.org/sdk/docs/man4/xhtml/glViewportArray.xml
-glViewportIndexedf http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glViewportIndexedf http://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexed.xml
-glViewportIndexedfv http://www.opengl.org/registry/specs/ARB/viewport_array.txt
-glViewportIndexedfv http://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexed.xml
-glWaitSync http://www.opengl.org/registry/specs/ARB/sync.txt
-glWaitSync http://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
-glWaitSync http://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
-glWeightPathsNV http://www.opengl.org/registry/specs/NV/path_rendering.txt
-glWeightPointerARB http://www.opengl.org/registry/specs/ARB/vertex_blend.txt
-glWindowPos2d http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2dARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2dMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2dv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2dvARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2dvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2f http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2fARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2fMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2fv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2fvARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2fvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2i http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2iARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2iMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2iv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2ivARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2ivMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2s http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2sARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2sMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos2sv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos2svARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos2svMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3d http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3dARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3dMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3dv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3dvARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3dvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3f http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3fARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3fMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3fv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3fvARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3fvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3i http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3iARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3iMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3iv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3ivARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3ivMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3s http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3sARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3sMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos3sv http://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
-glWindowPos3svARB http://www.opengl.org/registry/specs/ARB/window_pos.txt
-glWindowPos3svMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4dMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4dvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4fMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4fvMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4iMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4ivMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4sMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glWindowPos4svMESA http://www.opengl.org/registry/specs/MESA/window_pos.txt
-glXAssociateDMPbufferSGIX http://www.opengl.org/registry/specs/SGIX/dmbuffer.txt
-glXBindChannelToWindowSGIX http://www.opengl.org/registry/specs/SGIX/video_resize.txt
-glXBindHyperpipeSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXBindSwapBarrierNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXBindVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glXBindVideoDeviceNV http://www.opengl.org/registry/specs/NV/present_video.txt
-glXBlitContextFramebufferAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXChannelRectSGIX http://www.opengl.org/registry/specs/SGIX/video_resize.txt
-glXChannelRectSyncSGIX http://www.opengl.org/registry/specs/SGIX/video_resize.txt
-glXChooseFBConfig http://www.opengl.org/sdk/docs/man/xhtml/glXChooseFBConfig.xml
-glXChooseVisual http://www.opengl.org/sdk/docs/man/xhtml/glXChooseVisual.xml
-glXCopyContext http://www.opengl.org/sdk/docs/man/xhtml/glXCopyContext.xml
-glXCopySubBufferMESA http://www.opengl.org/registry/specs/MESA/copy_sub_buffer.txt
-glXCreateAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXCreateAssociatedContextAttribsAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXCreateContext http://www.opengl.org/sdk/docs/man/xhtml/glXCreateContext.xml
-glXCreateContextAttribsARB http://www.opengl.org/registry/specs/ARB/glx_create_context.txt
-glXCreateContextWithConfigSGIX http://www.opengl.org/registry/specs/SGIX/fbconfig.txt
-glXCreateGLXPbufferSGIX http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
-glXCreateGLXPixmap http://www.opengl.org/sdk/docs/man/xhtml/glXCreateGLXPixmap.xml
-glXCreateGLXPixmapMESA http://www.opengl.org/registry/specs/MESA/pixmap_colormap.txt
-glXCreateGLXPixmapWithConfigSGIX http://www.opengl.org/registry/specs/SGIX/fbconfig.txt
-glXCreateGLXVideoSourceSGIX http://www.opengl.org/registry/specs/SGIX/video_source.txt
-glXCreateNewContext http://www.opengl.org/sdk/docs/man/xhtml/glXCreateNewContext.xml
-glXCreatePbuffer http://www.opengl.org/sdk/docs/man/xhtml/glXCreatePbuffer.xml
-glXCreatePixmap http://www.opengl.org/sdk/docs/man/xhtml/glXCreatePixmap.xml
-glXCreateWindow http://www.opengl.org/sdk/docs/man/xhtml/glXCreateWindow.xml
-glXCushionSGI http://www.opengl.org/registry/specs/SGI/cushion.txt
-glXDeleteAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXDestroyContext http://www.opengl.org/sdk/docs/man/xhtml/glXDestroyContext.xml
-glXDestroyGLXPbufferSGIX http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
-glXDestroyGLXPixmap http://www.opengl.org/sdk/docs/man/xhtml/glXDestroyGLXPixmap.xml
-glXDestroyGLXVideoSourceSGIX http://www.opengl.org/registry/specs/SGIX/video_source.txt
-glXDestroyHyperpipeConfigSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXDestroyPbuffer http://www.opengl.org/sdk/docs/man/xhtml/glXDestroyPbuffer.xml
-glXDestroyPixmap http://www.opengl.org/sdk/docs/man/xhtml/glXDestroyPixmap.xml
-glXDestroyWindow http://www.opengl.org/sdk/docs/man/xhtml/glXDestroyWindow.xml
-glXEnumerateVideoCaptureDevicesNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glXFreeContextEXT http://www.opengl.org/registry/specs/EXT/import_context.txt
-glXFreeContextEXT http://www.opengl.org/sdk/docs/man/xhtml/glXFreeContextEXT.xml
-glXGetAGPOffsetMESA http://www.opengl.org/registry/specs/MESA/agp_offset.txt
-glXGetClientString http://www.opengl.org/sdk/docs/man/xhtml/glXGetClientString.xml
-glXGetConfig http://www.opengl.org/sdk/docs/man/xhtml/glXGetConfig.xml
-glXGetContextGPUIDAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXGetContextIDEXT http://www.opengl.org/registry/specs/EXT/import_context.txt
-glXGetContextIDEXT http://www.opengl.org/sdk/docs/man/xhtml/glXGetContextIDEXT.xml
-glXGetCurrentAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXGetCurrentContext http://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentContext.xml
-glXGetCurrentDisplay http://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentDisplay.xml
-glXGetCurrentDrawable http://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentDrawable.xml
-glXGetCurrentReadDrawable http://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentReadDrawable.xml
-glXGetCurrentReadDrawableSGI http://www.opengl.org/registry/specs/SGI/make_current_read.txt
-glXGetFBConfigAttrib http://www.opengl.org/sdk/docs/man/xhtml/glXGetFBConfigAttrib.xml
-glXGetFBConfigAttribSGIX http://www.opengl.org/registry/specs/SGIX/fbconfig.txt
-glXGetFBConfigFromVisualSGIX http://www.opengl.org/registry/specs/SGIX/fbconfig.txt
-glXGetFBConfigs http://www.opengl.org/sdk/docs/man/xhtml/glXGetFBConfigs.xml
-glXGetGPUIDsAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXGetGPUInfoAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXGetMscRateOML http://www.opengl.org/registry/specs/OML/glx_sync_control.txt
-glXGetProcAddress http://www.opengl.org/sdk/docs/man/xhtml/glXGetProcAddress.xml
-glXGetSelectedEvent http://www.opengl.org/sdk/docs/man/xhtml/glXGetSelectedEvent.xml
-glXGetSelectedEventSGIX http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
-glXGetSyncValuesOML http://www.opengl.org/registry/specs/OML/glx_sync_control.txt
-glXGetTransparentIndexSUN http://www.opengl.org/registry/specs/SUN/get_transparent_index.txt
-glXGetVideoSyncSGI http://www.opengl.org/registry/specs/SGI/video_sync.txt
-glXGetVisualFromFBConfig http://www.opengl.org/sdk/docs/man/xhtml/glXGetVisualFromFBConfig.xml
-glXHyperpipeAttribSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXHyperpipeConfigSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXImportContextEXT http://www.opengl.org/registry/specs/EXT/import_context.txt
-glXImportContextEXT http://www.opengl.org/sdk/docs/man/xhtml/glXImportContextEXT.xml
-glXIsDirect http://www.opengl.org/sdk/docs/man/xhtml/glXIsDirect.xml
-glXJoinSwapGroupNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXLockVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glXMakeAssociatedContextCurrentAMD http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-glXMakeContextCurrent http://www.opengl.org/sdk/docs/man/xhtml/glXMakeContextCurrent.xml
-glXMakeCurrent http://www.opengl.org/sdk/docs/man/xhtml/glXMakeCurrent.xml
-glXMakeCurrentReadSGI http://www.opengl.org/registry/specs/SGI/make_current_read.txt
-glXQueryChannelDeltasSGIX http://www.opengl.org/registry/specs/SGIX/video_resize.txt
-glXQueryChannelRectSGIX http://www.opengl.org/registry/specs/SGIX/video_resize.txt
-glXQueryContext http://www.opengl.org/sdk/docs/man/xhtml/glXQueryContext.xml
-glXQueryContextInfoEXT http://www.opengl.org/registry/specs/EXT/import_context.txt
-glXQueryContextInfoEXT http://www.opengl.org/sdk/docs/man/xhtml/glXQueryContextInfoEXT.xml
-glXQueryDrawable http://www.opengl.org/sdk/docs/man/xhtml/glXQueryDrawable.xml
-glXQueryExtension http://www.opengl.org/sdk/docs/man/xhtml/glXQueryExtension.xml
-glXQueryExtensionsString http://www.opengl.org/sdk/docs/man/xhtml/glXQueryExtensionsString.xml
-glXQueryFrameCountNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXQueryGLXPbufferSGIX http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
-glXQueryHyperpipeAttribSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXQueryHyperpipeBestAttribSGIX http://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
-glXQueryMaxSwapGroupsNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXQueryServerString http://www.opengl.org/sdk/docs/man/xhtml/glXQueryServerString.xml
-glXQuerySwapGroupNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXQueryVersion http://www.opengl.org/sdk/docs/man/xhtml/glXQueryVersion.xml
-glXQueryVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glXReleaseBuffersMESA http://www.opengl.org/registry/specs/MESA/release_buffers.txt
-glXReleaseVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-glXResetFrameCountNV http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
-glXSelectEvent http://www.opengl.org/sdk/docs/man/xhtml/glXSelectEvent.xml
-glXSelectEventSGIX http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
-glXSet3DfxModeMESA http://www.opengl.org/registry/specs/MESA/set_3dfx_mode.txt
-glXSwapBuffers http://www.opengl.org/sdk/docs/man/xhtml/glXSwapBuffers.xml
-glXSwapBuffersMscOML http://www.opengl.org/registry/specs/OML/glx_sync_control.txt
-glXSwapIntervalEXT http://www.opengl.org/registry/specs/EXT/swap_control.txt
-glXSwapIntervalSGI http://www.opengl.org/registry/specs/SGI/swap_control.txt
-glXUseXFont http://www.opengl.org/sdk/docs/man/xhtml/glXUseXFont.xml
-glXWaitForMscOML http://www.opengl.org/registry/specs/OML/glx_sync_control.txt
-glXWaitForSbcOML http://www.opengl.org/registry/specs/OML/glx_sync_control.txt
-glXWaitGL http://www.opengl.org/sdk/docs/man/xhtml/glXWaitGL.xml
-glXWaitVideoSyncSGI http://www.opengl.org/registry/specs/SGI/video_sync.txt
-glXWaitX http://www.opengl.org/sdk/docs/man/xhtml/glXWaitX.xml
-gluBeginCurve http://www.opengl.org/sdk/docs/man/xhtml/gluBeginCurve.xml
-gluBeginPolygon http://www.opengl.org/sdk/docs/man/xhtml/gluBeginPolygon.xml
-gluBeginSurface http://www.opengl.org/sdk/docs/man/xhtml/gluBeginSurface.xml
-gluBeginTrim http://www.opengl.org/sdk/docs/man/xhtml/gluBeginTrim.xml
-gluBuild1DMipmapLevels http://www.opengl.org/sdk/docs/man/xhtml/gluBuild1DMipmapLevels.xml
-gluBuild1DMipmaps http://www.opengl.org/sdk/docs/man/xhtml/gluBuild1DMipmaps.xml
-gluBuild2DMipmapLevels http://www.opengl.org/sdk/docs/man/xhtml/gluBuild2DMipmapLevels.xml
-gluBuild2DMipmaps http://www.opengl.org/sdk/docs/man/xhtml/gluBuild2DMipmaps.xml
-gluBuild3DMipmapLevels http://www.opengl.org/sdk/docs/man/xhtml/gluBuild3DMipmapLevels.xml
-gluBuild3DMipmaps http://www.opengl.org/sdk/docs/man/xhtml/gluBuild3DMipmaps.xml
-gluCheckExtension http://www.opengl.org/sdk/docs/man/xhtml/gluCheckExtension.xml
-gluCylinder http://www.opengl.org/sdk/docs/man/xhtml/gluCylinder.xml
-gluDeleteNurbsRenderer http://www.opengl.org/sdk/docs/man/xhtml/gluDeleteNurbsRenderer.xml
-gluDeleteQuadric http://www.opengl.org/sdk/docs/man/xhtml/gluDeleteQuadric.xml
-gluDeleteTess http://www.opengl.org/sdk/docs/man/xhtml/gluDeleteTess.xml
-gluDisk http://www.opengl.org/sdk/docs/man/xhtml/gluDisk.xml
-gluEndCurve http://www.opengl.org/sdk/docs/man/xhtml/gluBeginCurve.xml
-gluEndPolygon http://www.opengl.org/sdk/docs/man/xhtml/gluBeginPolygon.xml
-gluEndSurface http://www.opengl.org/sdk/docs/man/xhtml/gluBeginSurface.xml
-gluEndTrim http://www.opengl.org/sdk/docs/man/xhtml/gluBeginTrim.xml
-gluErrorString http://www.opengl.org/sdk/docs/man/xhtml/gluErrorString.xml
-gluGetNurbsProperty http://www.opengl.org/sdk/docs/man/xhtml/gluGetNurbsProperty.xml
-gluGetString http://www.opengl.org/sdk/docs/man/xhtml/gluGetString.xml
-gluGetTessProperty http://www.opengl.org/sdk/docs/man/xhtml/gluGetTessProperty.xml
-gluLoadSamplingMatrices http://www.opengl.org/sdk/docs/man/xhtml/gluLoadSamplingMatrices.xml
-gluLookAt http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml
-gluNewNurbsRenderer http://www.opengl.org/sdk/docs/man/xhtml/gluNewNurbsRenderer.xml
-gluNewQuadric http://www.opengl.org/sdk/docs/man/xhtml/gluNewQuadric.xml
-gluNewTess http://www.opengl.org/sdk/docs/man/xhtml/gluNewTess.xml
-gluNextContour http://www.opengl.org/sdk/docs/man/xhtml/gluNextContour.xml
-gluNurbsCallback http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallback.xml
-gluNurbsCallbackData http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallbackData.xml
-gluNurbsCallbackDataEXT http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallbackDataEXT.xml
-gluNurbsCurve http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCurve.xml
-gluNurbsProperty http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsProperty.xml
-gluNurbsSurface http://www.opengl.org/sdk/docs/man/xhtml/gluNurbsSurface.xml
-gluOrtho2D http://www.opengl.org/sdk/docs/man/xhtml/gluOrtho2D.xml
-gluPartialDisk http://www.opengl.org/sdk/docs/man/xhtml/gluPartialDisk.xml
-gluPerspective http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml
-gluPickMatrix http://www.opengl.org/sdk/docs/man/xhtml/gluPickMatrix.xml
-gluProject http://www.opengl.org/sdk/docs/man/xhtml/gluProject.xml
-gluPwlCurve http://www.opengl.org/sdk/docs/man/xhtml/gluPwlCurve.xml
-gluQuadricCallback http://www.opengl.org/sdk/docs/man/xhtml/gluQuadricCallback.xml
-gluQuadricDrawStyle http://www.opengl.org/sdk/docs/man/xhtml/gluQuadricDrawStyle.xml
-gluQuadricNormals http://www.opengl.org/sdk/docs/man/xhtml/gluQuadricNormals.xml
-gluQuadricOrientation http://www.opengl.org/sdk/docs/man/xhtml/gluQuadricOrientation.xml
-gluQuadricTexture http://www.opengl.org/sdk/docs/man/xhtml/gluQuadricTexture.xml
-gluScaleImage http://www.opengl.org/sdk/docs/man/xhtml/gluScaleImage.xml
-gluSphere http://www.opengl.org/sdk/docs/man/xhtml/gluSphere.xml
-gluTessBeginContour http://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginContour.xml
-gluTessBeginPolygon http://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginPolygon.xml
-gluTessCallback http://www.opengl.org/sdk/docs/man/xhtml/gluTessCallback.xml
-gluTessEndContour http://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginContour.xml
-gluTessEndPolygon http://www.opengl.org/sdk/docs/man/xhtml/gluTessEndPolygon.xml
-gluTessNormal http://www.opengl.org/sdk/docs/man/xhtml/gluTessNormal.xml
-gluTessProperty http://www.opengl.org/sdk/docs/man/xhtml/gluTessProperty.xml
-gluTessVertex http://www.opengl.org/sdk/docs/man/xhtml/gluTessVertex.xml
-gluTexFilterFuncSGI http://www.opengl.org/registry/specs/SGI/filter4_parameters.txt
-gluUnProject http://www.opengl.org/sdk/docs/man/xhtml/gluUnProject.xml
-gluUnProject4 http://www.opengl.org/sdk/docs/man/xhtml/gluUnProject4.xml
-sizeof http://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
-wglAssociateImageBufferEventsI3D http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
-wglBeginFrameTrackingI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
-wglBindDisplayColorTableEXT http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
-wglBindSwapBarrierNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglBindVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-wglBindVideoDeviceNV http://www.opengl.org/registry/specs/NV/present_video.txt
-wglBlitContextFramebufferAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+glAccum https://www.opengl.org/sdk/docs/man/xhtml/glAccum.xml
+glAccumxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glActiveProgramEXT https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
+glActiveShaderProgram https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glActiveShaderProgram https://www.opengl.org/sdk/docs/man4/html/glActiveShaderProgram.xhtml
+glActiveStencilFaceEXT https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt
+glActiveTexture https://www.opengl.org/sdk/docs/man/xhtml/glActiveTexture.xml
+glActiveTexture https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+glActiveTexture https://www.opengl.org/sdk/docs/man4/html/glActiveTexture.xhtml
+glActiveVaryingNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glAlphaFunc https://www.opengl.org/sdk/docs/man/xhtml/glAlphaFunc.xml
+glAlphaFuncxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glApplyTextureEXT https://www.opengl.org/registry/specs/EXT/light_texture.txt
+glAreProgramsResidentNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glAreTexturesResident https://www.opengl.org/sdk/docs/man/xhtml/glAreTexturesResident.xml
+glAreTexturesResidentEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glArrayElement https://www.opengl.org/sdk/docs/man/xhtml/glArrayElement.xml
+glArrayElementEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glArrayObjectATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glAsyncMarkerSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glAttachObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glAttachShader https://www.opengl.org/sdk/docs/man/xhtml/glAttachShader.xml
+glAttachShader https://www.opengl.org/sdk/docs/man3/xhtml/glAttachShader.xml
+glAttachShader https://www.opengl.org/sdk/docs/man4/html/glAttachShader.xhtml
+glBegin https://www.opengl.org/sdk/docs/man/xhtml/glBegin.xml
+glBeginConditionalRender https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+glBeginConditionalRender https://www.opengl.org/sdk/docs/man4/html/glBeginConditionalRender.xhtml
+glBeginConditionalRenderNV https://www.opengl.org/registry/specs/NV/conditional_render.txt
+glBeginOcclusionQueryNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glBeginPerfMonitorAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glBeginQuery https://www.opengl.org/sdk/docs/man/xhtml/glBeginQuery.xml
+glBeginQuery https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+glBeginQuery https://www.opengl.org/sdk/docs/man4/html/glBeginQuery.xhtml
+glBeginQueryARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glBeginQueryIndexed https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
+glBeginQueryIndexed https://www.opengl.org/sdk/docs/man4/html/glBeginQueryIndexed.xhtml
+glBeginSceneEXT https://www.opengl.org/registry/specs/EXT/scene_marker.txt
+glBeginTransformFeedback https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+glBeginTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glBeginTransformFeedback.xhtml
+glBeginTransformFeedbackEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glBeginTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glBeginVideoCaptureNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glBindArraySetEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.alt.txt
+glBindArraySetEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
+glBindAttribLocation https://www.opengl.org/sdk/docs/man/xhtml/glBindAttribLocation.xml
+glBindAttribLocation https://www.opengl.org/sdk/docs/man3/xhtml/glBindAttribLocation.xml
+glBindAttribLocation https://www.opengl.org/sdk/docs/man4/html/glBindAttribLocation.xhtml
+glBindAttribLocationARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glBindBuffer https://www.opengl.org/sdk/docs/man/xhtml/glBindBuffer.xml
+glBindBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glBindBuffer.xml
+glBindBuffer https://www.opengl.org/sdk/docs/man4/html/glBindBuffer.xhtml
+glBindBufferARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glBindBufferBase https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glBindBufferBase https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+glBindBufferBase https://www.opengl.org/sdk/docs/man4/html/glBindBufferBase.xhtml
+glBindBufferBaseEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glBindBufferBaseNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glBindBufferBaseNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glBindBufferOffsetEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glBindBufferOffsetNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glBindBufferOffsetNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glBindBufferRange https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glBindBufferRange https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+glBindBufferRange https://www.opengl.org/sdk/docs/man4/html/glBindBufferRange.xhtml
+glBindBufferRangeEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glBindBufferRangeNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glBindBufferRangeNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glBindFragDataLocation https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+glBindFragDataLocation https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocation.xhtml
+glBindFragDataLocationEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glBindFragDataLocationIndexed https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt
+glBindFragDataLocationIndexed https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml
+glBindFragDataLocationIndexed https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocationIndexed.xhtml
+glBindFramebuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glBindFramebuffer https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+glBindFramebuffer https://www.opengl.org/sdk/docs/man4/html/glBindFramebuffer.xhtml
+glBindFramebufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glBindImageTexture https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt
+glBindImageTextureEXT https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt
+glBindMultiTextureEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glBindProgramARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glBindProgramARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glBindProgramNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glBindProgramPipeline https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glBindProgramPipeline https://www.opengl.org/sdk/docs/man4/html/glBindProgramPipeline.xhtml
+glBindRenderbuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glBindRenderbuffer https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+glBindRenderbuffer https://www.opengl.org/sdk/docs/man4/html/glBindRenderbuffer.xhtml
+glBindRenderbufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glBindSampler https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glBindSampler https://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml
+glBindSampler https://www.opengl.org/sdk/docs/man4/html/glBindSampler.xhtml
+glBindSwapBarrierSGIX https://www.opengl.org/registry/specs/SGIX/swap_barrier.txt
+glBindTexture https://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml
+glBindTexture https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+glBindTexture https://www.opengl.org/sdk/docs/man4/html/glBindTexture.xhtml
+glBindTextureEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glBindTransformFeedback https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glBindTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glBindTransformFeedback.xhtml
+glBindTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glBindVertexArray https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
+glBindVertexArray https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+glBindVertexArray https://www.opengl.org/sdk/docs/man4/html/glBindVertexArray.xhtml
+glBindVertexArrayAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
+glBindVideoCaptureStreamBufferNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glBindVideoCaptureStreamTextureNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glBinormalPointerEXT https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt
+glBitmap https://www.opengl.org/sdk/docs/man/xhtml/glBitmap.xml
+glBitmapxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glBlendColor https://www.opengl.org/sdk/docs/man/xhtml/glBlendColor.xml
+glBlendColor https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+glBlendColor https://www.opengl.org/sdk/docs/man4/html/glBlendColor.xhtml
+glBlendColorEXT https://www.opengl.org/registry/specs/EXT/blend_color.txt
+glBlendColorxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glBlendEquation https://www.opengl.org/sdk/docs/man/xhtml/glBlendEquation.xml
+glBlendEquation https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+glBlendEquation https://www.opengl.org/sdk/docs/man4/html/glBlendEquation.xhtml
+glBlendEquationEXT https://www.opengl.org/registry/specs/EXT/blend_minmax.txt
+glBlendEquationIndexedAMD https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
+glBlendEquationSeparate https://www.opengl.org/sdk/docs/man/xhtml/glBlendEquationSeparate.xml
+glBlendEquationSeparate https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+glBlendEquationSeparate https://www.opengl.org/sdk/docs/man4/html/glBlendEquationSeparate.xhtml
+glBlendEquationSeparateEXT https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt
+glBlendEquationSeparateIndexedAMD https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
+glBlendEquationSeparatei https://www.opengl.org/sdk/docs/man4/html/glBlendEquationSeparate.xhtml
+glBlendEquationSeparateiARB https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
+glBlendEquationi https://www.opengl.org/sdk/docs/man4/html/glBlendEquation.xhtml
+glBlendEquationiARB https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
+glBlendFunc https://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml
+glBlendFunc https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+glBlendFunc https://www.opengl.org/sdk/docs/man4/html/glBlendFunc.xhtml
+glBlendFuncIndexedAMD https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
+glBlendFuncSeparate https://www.opengl.org/sdk/docs/man/xhtml/glBlendFuncSeparate.xml
+glBlendFuncSeparate https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+glBlendFuncSeparate https://www.opengl.org/sdk/docs/man4/html/glBlendFuncSeparate.xhtml
+glBlendFuncSeparateEXT https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt
+glBlendFuncSeparateIndexedAMD https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt
+glBlendFuncSeparatei https://www.opengl.org/sdk/docs/man4/html/glBlendFuncSeparate.xhtml
+glBlendFuncSeparateiARB https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
+glBlendFunci https://www.opengl.org/sdk/docs/man4/html/glBlendFunc.xhtml
+glBlendFunciARB https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt
+glBlitFramebuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glBlitFramebuffer https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+glBlitFramebuffer https://www.opengl.org/sdk/docs/man4/html/glBlitFramebuffer.xhtml
+glBlitFramebufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt
+glBufferAddressRangeNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glBufferData https://www.opengl.org/sdk/docs/man/xhtml/glBufferData.xml
+glBufferData https://www.opengl.org/sdk/docs/man3/xhtml/glBufferData.xml
+glBufferData https://www.opengl.org/sdk/docs/man4/html/glBufferData.xhtml
+glBufferDataARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glBufferParameteriAPPLE https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt
+glBufferSubData https://www.opengl.org/sdk/docs/man/xhtml/glBufferSubData.xml
+glBufferSubData https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+glBufferSubData https://www.opengl.org/sdk/docs/man4/html/glBufferSubData.xhtml
+glBufferSubDataARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glCallList https://www.opengl.org/sdk/docs/man/xhtml/glCallList.xml
+glCallLists https://www.opengl.org/sdk/docs/man/xhtml/glCallLists.xml
+glCheckFramebufferStatus https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glCheckFramebufferStatus https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+glCheckFramebufferStatus https://www.opengl.org/sdk/docs/man4/html/glCheckFramebufferStatus.xhtml
+glCheckFramebufferStatusEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glCheckNamedFramebufferStatusEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glClampColor https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+glClampColor https://www.opengl.org/sdk/docs/man4/html/glClampColor.xhtml
+glClampColorARB https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt
+glClear https://www.opengl.org/sdk/docs/man/xhtml/glClear.xml
+glClear https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+glClear https://www.opengl.org/sdk/docs/man4/html/glClear.xhtml
+glClearAccum https://www.opengl.org/sdk/docs/man/xhtml/glClearAccum.xml
+glClearAccumxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glClearBufferfi https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
+glClearBufferfi https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml
+glClearBufferfv https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
+glClearBufferfv https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml
+glClearBufferiv https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
+glClearBufferiv https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml
+glClearBufferuiv https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml
+glClearBufferuiv https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml
+glClearColor https://www.opengl.org/sdk/docs/man/xhtml/glClearColor.xml
+glClearColor https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+glClearColor https://www.opengl.org/sdk/docs/man4/html/glClearColor.xhtml
+glClearColorxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glClearDepth https://www.opengl.org/sdk/docs/man/xhtml/glClearDepth.xml
+glClearDepth https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+glClearDepth https://www.opengl.org/sdk/docs/man4/html/glClearDepth.xhtml
+glClearDepthdNV https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
+glClearDepthf https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
+glClearDepthf https://www.opengl.org/sdk/docs/man4/html/glClearDepth.xhtml
+glClearDepthfOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glClearDepthxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glClearIndex https://www.opengl.org/sdk/docs/man/xhtml/glClearIndex.xml
+glClearStencil https://www.opengl.org/sdk/docs/man/xhtml/glClearStencil.xml
+glClearStencil https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+glClearStencil https://www.opengl.org/sdk/docs/man4/html/glClearStencil.xhtml
+glClientActiveTexture https://www.opengl.org/sdk/docs/man/xhtml/glClientActiveTexture.xml
+glClientActiveVertexStream https://www.opengl.org/registry/specs/ATI/vertex_streams.txt
+glClientAttribDefaultEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glClientWaitSync https://www.opengl.org/registry/specs/ARB/sync.txt
+glClientWaitSync https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
+glClientWaitSync https://www.opengl.org/sdk/docs/man4/html/glClientWaitSync.xhtml
+glClipPlane https://www.opengl.org/sdk/docs/man/xhtml/glClipPlane.xml
+glClipPlanefOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glClipPlanexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glColor3b https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3bv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3d https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3dv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3f https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3fVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor3fVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor3fv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glColor3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glColor3i https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3iv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3s https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3sv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3ub https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3ubv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3ui https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3uiv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3us https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor3usv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4b https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4bv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4d https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4dv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4f https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4fNormal3fVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4fNormal3fVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4fv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glColor4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glColor4i https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4iv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4s https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4sv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4ub https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4ubVertex2fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4ubVertex2fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4ubVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4ubVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glColor4ubv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4ui https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4uiv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4us https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColor4usv https://www.opengl.org/sdk/docs/man/xhtml/glColor.xml
+glColorFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glColorMask https://www.opengl.org/sdk/docs/man/xhtml/glColorMask.xml
+glColorMask https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+glColorMask https://www.opengl.org/sdk/docs/man4/html/glColorMask.xhtml
+glColorMaskIndexedEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glColorMaski https://www.opengl.org/sdk/docs/man4/html/glColorMask.xhtml
+glColorMaterial https://www.opengl.org/sdk/docs/man/xhtml/glColorMaterial.xml
+glColorP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glColorP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glColorP4ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glColorP4uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glColorPointer https://www.opengl.org/sdk/docs/man/xhtml/glColorPointer.xml
+glColorPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glColorPointervINTEL https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
+glColorSubTable https://www.opengl.org/sdk/docs/man/xhtml/glColorSubTable.xml
+glColorSubTableEXT https://www.opengl.org/registry/specs/EXT/color_subtable.txt
+glColorSubTableEXT https://www.opengl.org/registry/specs/EXT/paletted_texture.txt
+glColorTable https://www.opengl.org/sdk/docs/man/xhtml/glColorTable.xml
+glColorTableEXT https://www.opengl.org/registry/specs/EXT/paletted_texture.txt
+glColorTableParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glColorTableParameter.xml
+glColorTableParameterfvSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glColorTableParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glColorTableParameter.xml
+glColorTableParameterivSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glColorTableSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glCombinerInputNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerOutputNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerParameterfNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerParameteriNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerParameterivNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glCombinerStageParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners2.txt
+glCompileShader https://www.opengl.org/sdk/docs/man/xhtml/glCompileShader.xml
+glCompileShader https://www.opengl.org/sdk/docs/man3/xhtml/glCompileShader.xml
+glCompileShader https://www.opengl.org/sdk/docs/man4/html/glCompileShader.xhtml
+glCompileShaderARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glCompileShaderIncludeARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glCompressedMultiTexImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedMultiTexImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedMultiTexImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedMultiTexSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedMultiTexSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedMultiTexSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTexImage1D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage1D.xml
+glCompressedTexImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+glCompressedTexImage1D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage1D.xhtml
+glCompressedTexImage1DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTexImage2D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage2D.xml
+glCompressedTexImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+glCompressedTexImage2D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage2D.xhtml
+glCompressedTexImage2DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTexImage3D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexImage3D.xml
+glCompressedTexImage3D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+glCompressedTexImage3D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage3D.xhtml
+glCompressedTexImage3DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTexSubImage1D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage1D.xml
+glCompressedTexSubImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+glCompressedTexSubImage1D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage1D.xhtml
+glCompressedTexSubImage1DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTexSubImage2D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage2D.xml
+glCompressedTexSubImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+glCompressedTexSubImage2D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage2D.xhtml
+glCompressedTexSubImage2DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTexSubImage3D https://www.opengl.org/sdk/docs/man/xhtml/glCompressedTexSubImage3D.xml
+glCompressedTexSubImage3D https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+glCompressedTexSubImage3D https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage3D.xhtml
+glCompressedTexSubImage3DARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glCompressedTextureImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTextureImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTextureImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTextureSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTextureSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCompressedTextureSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glConvolutionFilter1D https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionFilter1D.xml
+glConvolutionFilter1DEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glConvolutionFilter2D https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionFilter2D.xml
+glConvolutionFilter2DEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glConvolutionParameterf https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
+glConvolutionParameterfEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glConvolutionParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
+glConvolutionParameterfvEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glConvolutionParameteri https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
+glConvolutionParameteriEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glConvolutionParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glConvolutionParameter.xml
+glConvolutionParameterivEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glCopyBufferSubData https://www.opengl.org/registry/specs/ARB/copy_buffer.txt
+glCopyBufferSubData https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+glCopyBufferSubData https://www.opengl.org/sdk/docs/man4/html/glCopyBufferSubData.xhtml
+glCopyColorSubTable https://www.opengl.org/sdk/docs/man/xhtml/glCopyColorSubTable.xml
+glCopyColorSubTableEXT https://www.opengl.org/registry/specs/EXT/color_subtable.txt
+glCopyColorTable https://www.opengl.org/sdk/docs/man/xhtml/glCopyColorTable.xml
+glCopyColorTableSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glCopyConvolutionFilter1D https://www.opengl.org/sdk/docs/man/xhtml/glCopyConvolutionFilter1D.xml
+glCopyConvolutionFilter1DEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glCopyConvolutionFilter2D https://www.opengl.org/sdk/docs/man/xhtml/glCopyConvolutionFilter2D.xml
+glCopyConvolutionFilter2DEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glCopyImageSubDataNV https://www.opengl.org/registry/specs/NV/copy_image.txt
+glCopyMultiTexImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyMultiTexImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyMultiTexSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyMultiTexSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyMultiTexSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glCopyPixels https://www.opengl.org/sdk/docs/man/xhtml/glCopyPixels.xml
+glCopyTexImage1D https://www.opengl.org/sdk/docs/man/xhtml/glCopyTexImage1D.xml
+glCopyTexImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+glCopyTexImage1D https://www.opengl.org/sdk/docs/man4/html/glCopyTexImage1D.xhtml
+glCopyTexImage1DEXT https://www.opengl.org/registry/specs/EXT/copy_texture.txt
+glCopyTexImage2D https://www.opengl.org/sdk/docs/man/xhtml/glCopyTexImage2D.xml
+glCopyTexImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+glCopyTexImage2D https://www.opengl.org/sdk/docs/man4/html/glCopyTexImage2D.xhtml
+glCopyTexImage2DEXT https://www.opengl.org/registry/specs/EXT/copy_texture.txt
+glCopyTexSubImage1D https://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage1D.xml
+glCopyTexSubImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+glCopyTexSubImage1D https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage1D.xhtml
+glCopyTexSubImage1DEXT https://www.opengl.org/registry/specs/EXT/copy_texture.txt
+glCopyTexSubImage2D https://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage2D.xml
+glCopyTexSubImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+glCopyTexSubImage2D https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage2D.xhtml
+glCopyTexSubImage2DEXT https://www.opengl.org/registry/specs/EXT/copy_texture.txt
+glCopyTexSubImage3D https://www.opengl.org/sdk/docs/man/xhtml/glCopyTexSubImage3D.xml
+glCopyTexSubImage3D https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+glCopyTexSubImage3D https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage3D.xhtml
+glCopyTexSubImage3DEXT https://www.opengl.org/registry/specs/EXT/copy_texture.txt
+glCopyTextureImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyTextureImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyTextureSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyTextureSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCopyTextureSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glCoverFillPathInstancedNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glCoverFillPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glCoverStrokePathInstancedNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glCoverStrokePathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glCreateProgram https://www.opengl.org/sdk/docs/man/xhtml/glCreateProgram.xml
+glCreateProgram https://www.opengl.org/sdk/docs/man3/xhtml/glCreateProgram.xml
+glCreateProgram https://www.opengl.org/sdk/docs/man4/html/glCreateProgram.xhtml
+glCreateProgramObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glCreateShader https://www.opengl.org/sdk/docs/man/xhtml/glCreateShader.xml
+glCreateShader https://www.opengl.org/sdk/docs/man3/xhtml/glCreateShader.xml
+glCreateShader https://www.opengl.org/sdk/docs/man4/html/glCreateShader.xhtml
+glCreateShaderObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glCreateShaderProgramEXT https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
+glCreateShaderProgramv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glCreateShaderProgramv https://www.opengl.org/sdk/docs/man4/html/glCreateShaderProgram.xhtml
+glCreateSyncFromCLeventARB https://www.opengl.org/registry/specs/ARB/cl_event.txt
+glCullFace https://www.opengl.org/sdk/docs/man/xhtml/glCullFace.xml
+glCullFace https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+glCullFace https://www.opengl.org/sdk/docs/man4/html/glCullFace.xhtml
+glCurrentPaletteMatrixARB https://www.opengl.org/registry/specs/ARB/matrix_palette.txt
+glDECLARE_HANDLE https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+glDECLARE_HANDLE https://www.opengl.org/registry/specs/NV/present_video.txt
+glDebugMessageCallbackAMD https://www.opengl.org/registry/specs/AMD/debug_output.txt
+glDebugMessageCallbackARB https://www.opengl.org/registry/specs/ARB/debug_output.txt
+glDebugMessageControlARB https://www.opengl.org/registry/specs/ARB/debug_output.txt
+glDebugMessageEnableAMD https://www.opengl.org/registry/specs/AMD/debug_output.txt
+glDebugMessageInsertAMD https://www.opengl.org/registry/specs/AMD/debug_output.txt
+glDebugMessageInsertARB https://www.opengl.org/registry/specs/ARB/debug_output.txt
+glDeleteArraySetsEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.alt.txt
+glDeleteArraySetsEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
+glDeleteAsyncMarkersSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glDeleteBuffers https://www.opengl.org/sdk/docs/man/xhtml/glDeleteBuffers.xml
+glDeleteBuffers https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteBuffers.xml
+glDeleteBuffers https://www.opengl.org/sdk/docs/man4/html/glDeleteBuffers.xhtml
+glDeleteBuffersARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glDeleteFencesAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glDeleteFencesNV https://www.opengl.org/registry/specs/NV/fence.txt
+glDeleteFramebuffers https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glDeleteFramebuffers https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteFramebuffers.xml
+glDeleteFramebuffers https://www.opengl.org/sdk/docs/man4/html/glDeleteFramebuffers.xhtml
+glDeleteFramebuffersEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glDeleteLists https://www.opengl.org/sdk/docs/man/xhtml/glDeleteLists.xml
+glDeleteNamedStringARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glDeleteNamesAMD https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
+glDeleteObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glDeleteOcclusionQueriesNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glDeletePathsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glDeletePerfMonitorsAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glDeleteProgram https://www.opengl.org/sdk/docs/man/xhtml/glDeleteProgram.xml
+glDeleteProgram https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteProgram.xml
+glDeleteProgram https://www.opengl.org/sdk/docs/man4/html/glDeleteProgram.xhtml
+glDeleteProgramPipelines https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glDeleteProgramPipelines https://www.opengl.org/sdk/docs/man4/html/glDeleteProgramPipelines.xhtml
+glDeleteProgramsARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glDeleteProgramsARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glDeleteProgramsNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glDeleteQueries https://www.opengl.org/sdk/docs/man/xhtml/glDeleteQueries.xml
+glDeleteQueries https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+glDeleteQueries https://www.opengl.org/sdk/docs/man4/html/glDeleteQueries.xhtml
+glDeleteQueriesARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glDeleteRenderbuffers https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glDeleteRenderbuffers https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteRenderbuffers.xml
+glDeleteRenderbuffers https://www.opengl.org/sdk/docs/man4/html/glDeleteRenderbuffers.xhtml
+glDeleteRenderbuffersEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glDeleteSamplers https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glDeleteSamplers https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSamplers.xml
+glDeleteSamplers https://www.opengl.org/sdk/docs/man4/html/glDeleteSamplers.xhtml
+glDeleteShader https://www.opengl.org/sdk/docs/man/xhtml/glDeleteShader.xml
+glDeleteShader https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteShader.xml
+glDeleteShader https://www.opengl.org/sdk/docs/man4/html/glDeleteShader.xhtml
+glDeleteSync https://www.opengl.org/registry/specs/ARB/sync.txt
+glDeleteSync https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
+glDeleteSync https://www.opengl.org/sdk/docs/man4/html/glDeleteSync.xhtml
+glDeleteTextures https://www.opengl.org/sdk/docs/man/xhtml/glDeleteTextures.xml
+glDeleteTextures https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteTextures.xml
+glDeleteTextures https://www.opengl.org/sdk/docs/man4/html/glDeleteTextures.xhtml
+glDeleteTexturesEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glDeleteTransformFeedbacks https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glDeleteTransformFeedbacks https://www.opengl.org/sdk/docs/man4/html/glDeleteTransformFeedbacks.xhtml
+glDeleteTransformFeedbacksNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glDeleteVertexArrays https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
+glDeleteVertexArrays https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+glDeleteVertexArrays https://www.opengl.org/sdk/docs/man4/html/glDeleteVertexArrays.xhtml
+glDeleteVertexArraysAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
+glDepthBoundsEXT https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt
+glDepthBoundsdNV https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
+glDepthFunc https://www.opengl.org/sdk/docs/man/xhtml/glDepthFunc.xml
+glDepthFunc https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+glDepthFunc https://www.opengl.org/sdk/docs/man4/html/glDepthFunc.xhtml
+glDepthMask https://www.opengl.org/sdk/docs/man/xhtml/glDepthMask.xml
+glDepthMask https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+glDepthMask https://www.opengl.org/sdk/docs/man4/html/glDepthMask.xhtml
+glDepthRange https://www.opengl.org/sdk/docs/man/xhtml/glDepthRange.xml
+glDepthRange https://www.opengl.org/sdk/docs/man3/xhtml/glDepthRange.xml
+glDepthRange https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml
+glDepthRangeArrayv https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glDepthRangeArrayv https://www.opengl.org/sdk/docs/man4/html/glDepthRangeArray.xhtml
+glDepthRangeIndexed https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glDepthRangeIndexed https://www.opengl.org/sdk/docs/man4/html/glDepthRangeIndexed.xhtml
+glDepthRangedNV https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt
+glDepthRangef https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
+glDepthRangef https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml
+glDepthRangefOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glDepthRangexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glDetachObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glDetachShader https://www.opengl.org/sdk/docs/man/xhtml/glDetachShader.xml
+glDetachShader https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+glDetachShader https://www.opengl.org/sdk/docs/man4/html/glDetachShader.xhtml
+glDetailTexFuncSGIS https://www.opengl.org/registry/specs/SGIS/detail_texture.txt
+glDisable https://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml
+glDisable https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+glDisable https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml
+glDisableClientState https://www.opengl.org/sdk/docs/man/xhtml/glEnableClientState.xml
+glDisableClientStateIndexedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glDisableClientStateiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glDisableIndexedEXT https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glDisableIndexedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glDisableIndexedEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glDisableVertexArrayAttribEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glDisableVertexArrayEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glDisableVertexAttribAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glDisableVertexAttribArray https://www.opengl.org/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml
+glDisableVertexAttribArray https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+glDisableVertexAttribArray https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml
+glDisableVertexAttribArrayARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glDisableVertexAttribArrayARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glDisablei https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+glDisablei https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml
+glDrawArrays https://www.opengl.org/sdk/docs/man/xhtml/glDrawArrays.xml
+glDrawArrays https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+glDrawArrays https://www.opengl.org/sdk/docs/man4/html/glDrawArrays.xhtml
+glDrawArraysEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glDrawArraysIndirect https://www.opengl.org/registry/specs/ARB/draw_indirect.txt
+glDrawArraysIndirect https://www.opengl.org/sdk/docs/man4/html/glDrawArraysIndirect.xhtml
+glDrawArraysInstanced https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+glDrawArraysInstanced https://www.opengl.org/sdk/docs/man4/html/glDrawArraysInstanced.xhtml
+glDrawArraysInstancedARB https://www.opengl.org/registry/specs/ARB/draw_instanced.txt
+glDrawArraysInstancedBaseInstance https://www.opengl.org/registry/specs/ARB/base_instance.txt
+glDrawArraysInstancedEXT https://www.opengl.org/registry/specs/EXT/draw_instanced.txt
+glDrawBuffer https://www.opengl.org/sdk/docs/man/xhtml/glDrawBuffer.xml
+glDrawBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+glDrawBuffer https://www.opengl.org/sdk/docs/man4/html/glDrawBuffer.xhtml
+glDrawBuffers https://www.opengl.org/sdk/docs/man/xhtml/glDrawBuffers.xml
+glDrawBuffers https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+glDrawBuffers https://www.opengl.org/sdk/docs/man4/html/glDrawBuffers.xhtml
+glDrawBuffersARB https://www.opengl.org/registry/specs/ARB/draw_buffers.txt
+glDrawBuffersATI https://www.opengl.org/registry/specs/ATI/draw_buffers.txt
+glDrawElementArrayAPPLE https://www.opengl.org/registry/specs/APPLE/element_array.txt
+glDrawElementArrayATI https://www.opengl.org/registry/specs/ATI/element_array.txt
+glDrawElements https://www.opengl.org/sdk/docs/man/xhtml/glDrawElements.xml
+glDrawElements https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+glDrawElements https://www.opengl.org/sdk/docs/man4/html/glDrawElements.xhtml
+glDrawElementsBaseVertex https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+glDrawElementsBaseVertex https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
+glDrawElementsBaseVertex https://www.opengl.org/sdk/docs/man4/html/glDrawElementsBaseVertex.xhtml
+glDrawElementsIndirect https://www.opengl.org/registry/specs/ARB/draw_indirect.txt
+glDrawElementsIndirect https://www.opengl.org/sdk/docs/man4/html/glDrawElementsIndirect.xhtml
+glDrawElementsInstanced https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+glDrawElementsInstanced https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstanced.xhtml
+glDrawElementsInstancedARB https://www.opengl.org/registry/specs/ARB/draw_instanced.txt
+glDrawElementsInstancedBaseInstance https://www.opengl.org/registry/specs/ARB/base_instance.txt
+glDrawElementsInstancedBaseVertex https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+glDrawElementsInstancedBaseVertex https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
+glDrawElementsInstancedBaseVertex https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseVertex.xhtml
+glDrawElementsInstancedBaseVertexBaseInstance https://www.opengl.org/registry/specs/ARB/base_instance.txt
+glDrawElementsInstancedEXT https://www.opengl.org/registry/specs/EXT/draw_instanced.txt
+glDrawMeshArraysSUN https://www.opengl.org/registry/specs/SUN/mesh_array.txt
+glDrawPixels https://www.opengl.org/sdk/docs/man/xhtml/glDrawPixels.xml
+glDrawRangeElementArrayAPPLE https://www.opengl.org/registry/specs/APPLE/element_array.txt
+glDrawRangeElementArrayATI https://www.opengl.org/registry/specs/ATI/element_array.txt
+glDrawRangeElements https://www.opengl.org/sdk/docs/man/xhtml/glDrawRangeElements.xml
+glDrawRangeElements https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+glDrawRangeElements https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElements.xhtml
+glDrawRangeElementsBaseVertex https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+glDrawRangeElementsBaseVertex https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
+glDrawRangeElementsBaseVertex https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElementsBaseVertex.xhtml
+glDrawTransformFeedback https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glDrawTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedback.xhtml
+glDrawTransformFeedbackInstanced https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt
+glDrawTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glDrawTransformFeedbackStream https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
+glDrawTransformFeedbackStream https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedbackStream.xhtml
+glDrawTransformFeedbackStreamInstanced https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt
+glEdgeFlag https://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlag.xml
+glEdgeFlagFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glEdgeFlagPointer https://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlagPointer.xml
+glEdgeFlagPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glEdgeFlagv https://www.opengl.org/sdk/docs/man/xhtml/glEdgeFlag.xml
+glElementPointerAPPLE https://www.opengl.org/registry/specs/APPLE/element_array.txt
+glElementPointerATI https://www.opengl.org/registry/specs/ATI/element_array.txt
+glEnable https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glEnable https://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml
+glEnable https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+glEnable https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml
+glEnableClientState https://www.opengl.org/sdk/docs/man/xhtml/glEnableClientState.xml
+glEnableClientStateIndexedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glEnableClientStateiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glEnableIndexedEXT https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glEnableIndexedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glEnableIndexedEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glEnableVertexArrayAttribEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glEnableVertexArrayEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glEnableVertexAttribAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glEnableVertexAttribArray https://www.opengl.org/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml
+glEnableVertexAttribArray https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+glEnableVertexAttribArray https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml
+glEnableVertexAttribArrayARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glEnableVertexAttribArrayARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glEnablei https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+glEnablei https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml
+glEnd https://www.opengl.org/sdk/docs/man/xhtml/glBegin.xml
+glEndConditionalRender https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+glEndConditionalRender https://www.opengl.org/sdk/docs/man4/html/glBeginConditionalRender.xhtml
+glEndConditionalRenderNV https://www.opengl.org/registry/specs/NV/conditional_render.txt
+glEndList https://www.opengl.org/sdk/docs/man/xhtml/glNewList.xml
+glEndOcclusionQueryNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glEndPerfMonitorAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glEndQuery https://www.opengl.org/sdk/docs/man/xhtml/glBeginQuery.xml
+glEndQuery https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+glEndQuery https://www.opengl.org/sdk/docs/man4/html/glBeginQuery.xhtml
+glEndQueryARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glEndQueryIndexed https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
+glEndQueryIndexed https://www.opengl.org/sdk/docs/man4/html/glBeginQueryIndexed.xhtml
+glEndSceneEXT https://www.opengl.org/registry/specs/EXT/scene_marker.txt
+glEndTransformFeedback https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+glEndTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glBeginTransformFeedback.xhtml
+glEndTransformFeedbackEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glEndTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glEndVideoCaptureNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glEvalCoord1d https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord1dv https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord1f https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord1fv https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord2d https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord2dv https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord2f https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalCoord2fv https://www.opengl.org/sdk/docs/man/xhtml/glEvalCoord.xml
+glEvalMapsNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glEvalMesh1 https://www.opengl.org/sdk/docs/man/xhtml/glEvalMesh.xml
+glEvalMesh2 https://www.opengl.org/sdk/docs/man/xhtml/glEvalMesh.xml
+glEvalPoint1 https://www.opengl.org/sdk/docs/man/xhtml/glEvalPoint.xml
+glEvalPoint2 https://www.opengl.org/sdk/docs/man/xhtml/glEvalPoint.xml
+glExecuteProgramNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glFeedbackBuffer https://www.opengl.org/sdk/docs/man/xhtml/glFeedbackBuffer.xml
+glFeedbackBufferxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glFenceSync https://www.opengl.org/registry/specs/ARB/sync.txt
+glFenceSync https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
+glFenceSync https://www.opengl.org/sdk/docs/man4/html/glFenceSync.xhtml
+glFinalCombinerInputNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glFinish https://www.opengl.org/sdk/docs/man/xhtml/glFinish.xml
+glFinish https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+glFinish https://www.opengl.org/sdk/docs/man4/html/glFinish.xhtml
+glFinishAsyncSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glFinishFenceAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glFinishFenceNV https://www.opengl.org/registry/specs/NV/fence.txt
+glFinishObjectAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glFinishTextureSUNX https://www.opengl.org/registry/specs/SUNX/constant_data.txt
+glFlush https://www.opengl.org/sdk/docs/man/xhtml/glFlush.xml
+glFlush https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+glFlush https://www.opengl.org/sdk/docs/man4/html/glFlush.xhtml
+glFlushMappedBufferRange https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt
+glFlushMappedBufferRange https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+glFlushMappedBufferRange https://www.opengl.org/sdk/docs/man4/html/glFlushMappedBufferRange.xhtml
+glFlushMappedBufferRangeAPPLE https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt
+glFlushMappedNamedBufferRangeEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glFlushPixelDataRangeNV https://www.opengl.org/registry/specs/NV/pixel_data_range.txt
+glFlushRasterSGIX https://www.opengl.org/registry/specs/SGIX/flush_raster.txt
+glFlushStaticDataIBM https://www.opengl.org/registry/specs/IBM/static_data.txt
+glFlushVertexArrayRangeAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
+glFlushVertexArrayRangeNV https://www.opengl.org/registry/specs/NV/vertex_array_range.txt
+glFogCoordFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glFogCoordPointer https://www.opengl.org/sdk/docs/man/xhtml/glFogCoordPointer.xml
+glFogCoordPointerEXT https://www.opengl.org/registry/specs/EXT/fog_coord.txt
+glFogCoordd https://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
+glFogCoorddv https://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
+glFogCoordf https://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
+glFogCoordfv https://www.opengl.org/sdk/docs/man/xhtml/glFogCoord.xml
+glFogCoordhNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glFogCoordhvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glFogFuncSGIS https://www.opengl.org/registry/specs/SGIS/fog_func.txt
+glFogf https://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
+glFogfv https://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
+glFogi https://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
+glFogiv https://www.opengl.org/sdk/docs/man/xhtml/glFog.xml
+glFragmentColorMaterialEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentColorMaterialSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightModelfEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightModelfSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightModelfvEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightModelfvSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightModeliEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightModeliSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightModelivEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightModelivSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightfEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightfSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightfvEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightfvSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightiEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightiSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentLightivEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentLightivSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentMaterialfEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentMaterialfSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentMaterialfvEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentMaterialfvSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentMaterialiEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentMaterialiSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFragmentMaterialivEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glFragmentMaterialivSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glFrameTerminatorGREMEDY https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt
+glFrameZoomSGIX https://www.opengl.org/registry/specs/SGIX/framezoom.txt
+glFramebufferDrawBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glFramebufferDrawBuffersEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glFramebufferReadBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glFramebufferRenderbuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glFramebufferRenderbuffer https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+glFramebufferRenderbuffer https://www.opengl.org/sdk/docs/man4/html/glFramebufferRenderbuffer.xhtml
+glFramebufferRenderbufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glFramebufferTexture https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+glFramebufferTexture https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml
+glFramebufferTexture1D https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glFramebufferTexture1D https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+glFramebufferTexture1D https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml
+glFramebufferTexture1DEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glFramebufferTexture2D https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glFramebufferTexture2D https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+glFramebufferTexture2D https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml
+glFramebufferTexture2DEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glFramebufferTexture3D https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glFramebufferTexture3D https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+glFramebufferTexture3D https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml
+glFramebufferTexture3DEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glFramebufferTextureARB https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+glFramebufferTextureEXT https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
+glFramebufferTextureEXT https://www.opengl.org/registry/specs/NV/geometry_program4.txt
+glFramebufferTextureFaceARB https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+glFramebufferTextureFaceEXT https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
+glFramebufferTextureFaceEXT https://www.opengl.org/registry/specs/NV/geometry_program4.txt
+glFramebufferTextureLayer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glFramebufferTextureLayer https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+glFramebufferTextureLayer https://www.opengl.org/sdk/docs/man4/html/glFramebufferTextureLayer.xhtml
+glFramebufferTextureLayerARB https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+glFramebufferTextureLayerEXT https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
+glFramebufferTextureLayerEXT https://www.opengl.org/registry/specs/EXT/texture_array.txt
+glFramebufferTextureLayerEXT https://www.opengl.org/registry/specs/NV/geometry_program4.txt
+glFreeObjectBufferATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glFrontFace https://www.opengl.org/sdk/docs/man/xhtml/glFrontFace.xml
+glFrontFace https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+glFrontFace https://www.opengl.org/sdk/docs/man4/html/glFrontFace.xhtml
+glFrustum https://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml
+glFrustumfOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glFrustumxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGenArraySetsEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
+glGenAsyncMarkersSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glGenBuffers https://www.opengl.org/sdk/docs/man/xhtml/glGenBuffers.xml
+glGenBuffers https://www.opengl.org/sdk/docs/man3/xhtml/glGenBuffers.xml
+glGenBuffers https://www.opengl.org/sdk/docs/man4/html/glGenBuffers.xhtml
+glGenBuffersARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glGenFencesAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glGenFencesNV https://www.opengl.org/registry/specs/NV/fence.txt
+glGenFramebuffers https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glGenFramebuffers https://www.opengl.org/sdk/docs/man3/xhtml/glGenFramebuffers.xml
+glGenFramebuffers https://www.opengl.org/sdk/docs/man4/html/glGenFramebuffers.xhtml
+glGenFramebuffersEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glGenLists https://www.opengl.org/sdk/docs/man/xhtml/glGenLists.xml
+glGenNamesAMD https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
+glGenOcclusionQueriesNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glGenPathsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGenPerfMonitorsAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGenProgramPipelines https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glGenProgramPipelines https://www.opengl.org/sdk/docs/man4/html/glGenProgramPipelines.xhtml
+glGenProgramsARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGenProgramsARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGenProgramsNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGenQueries https://www.opengl.org/sdk/docs/man/xhtml/glGenQueries.xml
+glGenQueries https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+glGenQueries https://www.opengl.org/sdk/docs/man4/html/glGenQueries.xhtml
+glGenQueriesARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glGenRenderbuffers https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glGenRenderbuffers https://www.opengl.org/sdk/docs/man3/xhtml/glGenRenderbuffers.xml
+glGenRenderbuffers https://www.opengl.org/sdk/docs/man4/html/glGenRenderbuffers.xhtml
+glGenRenderbuffersEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glGenSamplers https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glGenSamplers https://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml
+glGenSamplers https://www.opengl.org/sdk/docs/man4/html/glGenSamplers.xhtml
+glGenTextures https://www.opengl.org/sdk/docs/man/xhtml/glGenTextures.xml
+glGenTextures https://www.opengl.org/sdk/docs/man3/xhtml/glGenTextures.xml
+glGenTextures https://www.opengl.org/sdk/docs/man4/html/glGenTextures.xhtml
+glGenTexturesEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glGenTransformFeedbacks https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glGenTransformFeedbacks https://www.opengl.org/sdk/docs/man4/html/glGenTransformFeedbacks.xhtml
+glGenTransformFeedbacksNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glGenVertexArrays https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
+glGenVertexArrays https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+glGenVertexArrays https://www.opengl.org/sdk/docs/man4/html/glGenVertexArrays.xhtml
+glGenVertexArraysAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
+glGenerateMipmap https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glGenerateMipmap https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+glGenerateMipmap https://www.opengl.org/sdk/docs/man4/html/glGenerateMipmap.xhtml
+glGenerateMipmapEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glGenerateMultiTexMipmapEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGenerateTextureMipmapEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetActiveAttrib https://www.opengl.org/sdk/docs/man/xhtml/glGetActiveAttrib.xml
+glGetActiveAttrib https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+glGetActiveAttrib https://www.opengl.org/sdk/docs/man4/html/glGetActiveAttrib.xhtml
+glGetActiveAttribARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetActiveSubroutineName https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetActiveSubroutineName https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineName.xhtml
+glGetActiveSubroutineUniformName https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetActiveSubroutineUniformName https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniformName.xhtml
+glGetActiveSubroutineUniformiv https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetActiveSubroutineUniformiv https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniform.xhtml
+glGetActiveUniform https://www.opengl.org/sdk/docs/man/xhtml/glGetActiveUniform.xml
+glGetActiveUniform https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+glGetActiveUniform https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniform.xhtml
+glGetActiveUniformARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetActiveUniformBlockName https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetActiveUniformBlockName https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+glGetActiveUniformBlockName https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlockName.xhtml
+glGetActiveUniformBlockiv https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetActiveUniformBlockiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlock.xml
+glGetActiveUniformBlockiv https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlock.xhtml
+glGetActiveUniformName https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetActiveUniformName https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+glGetActiveUniformName https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformName.xhtml
+glGetActiveUniformsiv https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetActiveUniformsiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+glGetActiveUniformsiv https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformsiv.xhtml
+glGetActiveVaryingNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glGetArrayObjectfvATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetArrayObjectivATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetAttachedObjectsARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetAttachedShaders https://www.opengl.org/sdk/docs/man/xhtml/glGetAttachedShaders.xml
+glGetAttachedShaders https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+glGetAttachedShaders https://www.opengl.org/sdk/docs/man4/html/glGetAttachedShaders.xhtml
+glGetAttribLocation https://www.opengl.org/sdk/docs/man/xhtml/glGetAttribLocation.xml
+glGetAttribLocation https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttribLocation.xml
+glGetAttribLocation https://www.opengl.org/sdk/docs/man4/html/glGetAttribLocation.xhtml
+glGetAttribLocationARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetBooleanIndexedvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetBooleanIndexedvEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glGetBooleanIndexedvEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glGetBooleanIndexedvEXT https://www.opengl.org/registry/specs/NV/explicit_multisample.txt
+glGetBooleanIndexedvEXT https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glGetBooleani_v https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetBooleani_v https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetBooleanv https://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
+glGetBooleanv https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetBooleanv https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetBufferParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetBufferParameteriv.xml
+glGetBufferParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml
+glGetBufferParameteriv https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml
+glGetBufferParameterivARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glGetBufferParameterui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glGetBufferPointerv https://www.opengl.org/sdk/docs/man/xhtml/glGetBufferPointerv.xml
+glGetBufferPointerv https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferPointerv.xml
+glGetBufferPointerv https://www.opengl.org/sdk/docs/man4/html/glGetBufferPointerv.xhtml
+glGetBufferPointervARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glGetBufferSubData https://www.opengl.org/sdk/docs/man/xhtml/glGetBufferSubData.xml
+glGetBufferSubData https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+glGetBufferSubData https://www.opengl.org/sdk/docs/man4/html/glGetBufferSubData.xhtml
+glGetBufferSubDataARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glGetClipPlane https://www.opengl.org/sdk/docs/man/xhtml/glGetClipPlane.xml
+glGetClipPlanefOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glGetClipPlanexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetColorTable https://www.opengl.org/sdk/docs/man/xhtml/glGetColorTable.xml
+glGetColorTableEXT https://www.opengl.org/registry/specs/EXT/paletted_texture.txt
+glGetColorTableParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetColorTableParameter.xml
+glGetColorTableParameterfvEXT https://www.opengl.org/registry/specs/EXT/paletted_texture.txt
+glGetColorTableParameterfvSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glGetColorTableParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetColorTableParameter.xml
+glGetColorTableParameterivEXT https://www.opengl.org/registry/specs/EXT/paletted_texture.txt
+glGetColorTableParameterivSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glGetColorTableSGI https://www.opengl.org/registry/specs/SGI/color_table.txt
+glGetCombinerInputParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetCombinerInputParameterivNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetCombinerOutputParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetCombinerOutputParameterivNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetCombinerStageParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners2.txt
+glGetCompressedMultiTexImageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetCompressedTexImage https://www.opengl.org/sdk/docs/man/xhtml/glGetCompressedTexImage.xml
+glGetCompressedTexImage https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+glGetCompressedTexImage https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml
+glGetCompressedTexImageARB https://www.opengl.org/registry/specs/ARB/texture_compression.txt
+glGetCompressedTextureImageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetConvolutionFilter https://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionFilter.xml
+glGetConvolutionFilterEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glGetConvolutionParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionParameter.xml
+glGetConvolutionParameterfvEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glGetConvolutionParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetConvolutionParameter.xml
+glGetConvolutionParameterivEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glGetConvolutionParameterxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetDebugMessageLogAMD https://www.opengl.org/registry/specs/AMD/debug_output.txt
+glGetDebugMessageLogARB https://www.opengl.org/registry/specs/ARB/debug_output.txt
+glGetDetailTexFuncSGIS https://www.opengl.org/registry/specs/SGIS/detail_texture.txt
+glGetDoubleIndexedvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetDoublei_v https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glGetDoublei_vEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetDoublev https://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
+glGetDoublev https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetDoublev https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetError https://www.opengl.org/sdk/docs/man/xhtml/glGetError.xml
+glGetError https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+glGetError https://www.opengl.org/sdk/docs/man4/html/glGetError.xhtml
+glGetFenceivNV https://www.opengl.org/registry/specs/NV/fence.txt
+glGetFinalCombinerInputParameterfvNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetFinalCombinerInputParameterivNV https://www.opengl.org/registry/specs/NV/register_combiners.txt
+glGetFixedvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetFloatIndexedvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetFloati_v https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glGetFloati_vEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetFloatv https://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
+glGetFloatv https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetFloatv https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetFogFuncSGIS https://www.opengl.org/registry/specs/SGIS/fog_func.txt
+glGetFragDataIndex https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt
+glGetFragDataIndex https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataIndex.xml
+glGetFragDataIndex https://www.opengl.org/sdk/docs/man4/html/glGetFragDataIndex.xhtml
+glGetFragDataLocation https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+glGetFragDataLocation https://www.opengl.org/sdk/docs/man4/html/glGetFragDataLocation.xhtml
+glGetFragDataLocationEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glGetFragmentLightfvEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glGetFragmentLightfvSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glGetFragmentLightivEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glGetFragmentLightivSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glGetFragmentMaterialfvEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glGetFragmentMaterialfvSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glGetFragmentMaterialivEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glGetFragmentMaterialivSGIX https://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt
+glGetFramebufferAttachmentParameter https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameter.xml
+glGetFramebufferAttachmentParameter https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferAttachmentParameter.xhtml
+glGetFramebufferAttachmentParameteriv https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glGetFramebufferAttachmentParameterivEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glGetFramebufferParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetGraphicsResetStatusARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetHandleARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetHistogram https://www.opengl.org/sdk/docs/man/xhtml/glGetHistogram.xml
+glGetHistogramEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetHistogramParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetHistogramParameter.xml
+glGetHistogramParameterfvEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetHistogramParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetHistogramParameter.xml
+glGetHistogramParameterivEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetHistogramParameterxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetImageTransformParameterfvHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glGetImageTransformParameterivHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glGetInfoLogARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetInstrumentsSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glGetInteger64i_v https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetInteger64i_v https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetInteger64v https://www.opengl.org/registry/specs/ARB/sync.txt
+glGetInteger64v https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetInteger64v https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetIntegerIndexedivEXT https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/NV/explicit_multisample.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glGetIntegerIndexedvEXT https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glGetIntegeri_v https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetIntegeri_v https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetIntegeri_v https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetIntegerui64i_vNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glGetIntegerui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glGetIntegerv https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glGetIntegerv https://www.opengl.org/sdk/docs/man/xhtml/glGet.xml
+glGetIntegerv https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml
+glGetIntegerv https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml
+glGetInternalformativ https://www.opengl.org/registry/specs/ARB/internalformat_query.txt
+glGetLightfv https://www.opengl.org/sdk/docs/man/xhtml/glGetLight.xml
+glGetLightiv https://www.opengl.org/sdk/docs/man/xhtml/glGetLight.xml
+glGetLightxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetListParameterfvSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glGetListParameterivSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glGetMapAttribParameterfvNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glGetMapAttribParameterivNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glGetMapControlPointsNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glGetMapParameterfvNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glGetMapParameterivNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glGetMapdv https://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
+glGetMapfv https://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
+glGetMapiv https://www.opengl.org/sdk/docs/man/xhtml/glGetMap.xml
+glGetMapxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetMaterialfv https://www.opengl.org/sdk/docs/man/xhtml/glGetMaterial.xml
+glGetMaterialiv https://www.opengl.org/sdk/docs/man/xhtml/glGetMaterial.xml
+glGetMaterialxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetMinmax https://www.opengl.org/sdk/docs/man/xhtml/glGetMinmax.xml
+glGetMinmaxEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetMinmaxParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetMinmaxParameter.xml
+glGetMinmaxParameterfvEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetMinmaxParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetMinmaxParameter.xml
+glGetMinmaxParameterivEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glGetMultiTexEnvfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexEnvivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexGendvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexGenfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexGenivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexImageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexLevelParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexLevelParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexParameterIivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexParameterIuivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultiTexParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetMultisamplefv https://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+glGetMultisamplefv https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisample.xml
+glGetMultisamplefv https://www.opengl.org/sdk/docs/man4/html/glGetMultisample.xhtml
+glGetMultisamplefvNV https://www.opengl.org/registry/specs/NV/explicit_multisample.txt
+glGetNamedBufferParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedBufferParameterui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glGetNamedBufferPointervEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedBufferSubDataEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedFramebufferAttachmentParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramLocalParameterIivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramLocalParameterIuivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramLocalParameterdvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramLocalParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramStringEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedProgramivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedRenderbufferParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetNamedStringARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glGetNamedStringivARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glGetObjectBufferfvATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetObjectBufferivATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetObjectParameterfvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetObjectParameterivAPPLE https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
+glGetObjectParameterivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetOcclusionQueryivNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glGetOcclusionQueryuivNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glGetPathColorGenfvNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathColorGenivNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathCommandsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathCoordsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathDashArrayNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathLengthNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathMetricRangeNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathMetricsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathParameterfvNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathParameterivNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathSpacingNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathTexGenfvNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPathTexGenivNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glGetPerfMonitorCounterDataAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPerfMonitorCounterInfoAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPerfMonitorCounterStringAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPerfMonitorCountersAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPerfMonitorGroupStringAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPerfMonitorGroupsAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glGetPixelMapfv https://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
+glGetPixelMapuiv https://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
+glGetPixelMapusv https://www.opengl.org/sdk/docs/man/xhtml/glGetPixelMap.xml
+glGetPixelTransformParameterfvEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glGetPixelTransformParameterivEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glGetPointerIndexedvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetPointeri_vEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetPointerv https://www.opengl.org/registry/specs/ARB/debug_output.txt
+glGetPointerv https://www.opengl.org/sdk/docs/man/xhtml/glGetPointerv.xml
+glGetPointervEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glGetPointervEXT https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glGetPolygonStipple https://www.opengl.org/sdk/docs/man/xhtml/glGetPolygonStipple.xml
+glGetProgramBinary https://www.opengl.org/registry/specs/ARB/get_program_binary.txt
+glGetProgramBinary https://www.opengl.org/sdk/docs/man4/html/glGetProgramBinary.xhtml
+glGetProgramEnvParameterIivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glGetProgramEnvParameterIuivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glGetProgramEnvParameterdvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramEnvParameterdvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramEnvParameterfvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramEnvParameterfvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramInfoLog https://www.opengl.org/sdk/docs/man/xhtml/glGetProgramInfoLog.xml
+glGetProgramInfoLog https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgramInfoLog.xml
+glGetProgramInfoLog https://www.opengl.org/sdk/docs/man4/html/glGetProgramInfoLog.xhtml
+glGetProgramLocalParameterIivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glGetProgramLocalParameterIuivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glGetProgramLocalParameterdvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramLocalParameterdvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramLocalParameterdvARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glGetProgramLocalParameterfvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramLocalParameterfvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramLocalParameterfvARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glGetProgramNamedParameterdvNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glGetProgramNamedParameterfvNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glGetProgramParameterdvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetProgramParameterfvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetProgramPipelineInfoLog https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glGetProgramPipelineInfoLog https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipelineInfoLog.xhtml
+glGetProgramPipelineiv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glGetProgramPipelineiv https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipeline.xhtml
+glGetProgramStageiv https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetProgramStageiv https://www.opengl.org/sdk/docs/man4/html/glGetProgramStage.xhtml
+glGetProgramStringARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramStringARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramStringNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetProgramiv https://www.opengl.org/sdk/docs/man/xhtml/glGetProgram.xml
+glGetProgramiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgram.xml
+glGetProgramiv https://www.opengl.org/sdk/docs/man4/html/glGetProgram.xhtml
+glGetProgramivARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glGetProgramivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetProgramivNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetQueryIndexediv https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt
+glGetQueryIndexediv https://www.opengl.org/sdk/docs/man4/html/glGetQueryIndexed.xhtml
+glGetQueryObjecti64v https://www.opengl.org/registry/specs/ARB/timer_query.txt
+glGetQueryObjecti64v https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
+glGetQueryObjecti64v https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml
+glGetQueryObjecti64vEXT https://www.opengl.org/registry/specs/EXT/timer_query.txt
+glGetQueryObjectiv https://www.opengl.org/sdk/docs/man/xhtml/glGetQueryObject.xml
+glGetQueryObjectiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
+glGetQueryObjectiv https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml
+glGetQueryObjectivARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glGetQueryObjectui64v https://www.opengl.org/registry/specs/ARB/timer_query.txt
+glGetQueryObjectui64v https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
+glGetQueryObjectui64v https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml
+glGetQueryObjectui64vEXT https://www.opengl.org/registry/specs/EXT/timer_query.txt
+glGetQueryObjectuiv https://www.opengl.org/sdk/docs/man/xhtml/glGetQueryObject.xml
+glGetQueryObjectuiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml
+glGetQueryObjectuiv https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml
+glGetQueryObjectuivARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glGetQueryiv https://www.opengl.org/sdk/docs/man/xhtml/glGetQueryiv.xml
+glGetQueryiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+glGetQueryiv https://www.opengl.org/sdk/docs/man4/html/glGetQueryiv.xhtml
+glGetQueryivARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glGetRenderbufferParameteriv https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glGetRenderbufferParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameter.xml
+glGetRenderbufferParameteriv https://www.opengl.org/sdk/docs/man4/html/glGetRenderbufferParameter.xhtml
+glGetRenderbufferParameterivEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glGetSamplerParameterIiv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glGetSamplerParameterIuiv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glGetSamplerParameterfv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glGetSamplerParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml
+glGetSamplerParameterfv https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml
+glGetSamplerParameteriv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glGetSamplerParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml
+glGetSamplerParameteriv https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml
+glGetSeparableFilter https://www.opengl.org/sdk/docs/man/xhtml/glGetSeparableFilter.xml
+glGetSeparableFilterEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glGetShaderInfoLog https://www.opengl.org/sdk/docs/man/xhtml/glGetShaderInfoLog.xml
+glGetShaderInfoLog https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderInfoLog.xml
+glGetShaderInfoLog https://www.opengl.org/sdk/docs/man4/html/glGetShaderInfoLog.xhtml
+glGetShaderPrecisionFormat https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
+glGetShaderPrecisionFormat https://www.opengl.org/sdk/docs/man4/html/glGetShaderPrecisionFormat.xhtml
+glGetShaderSource https://www.opengl.org/sdk/docs/man/xhtml/glGetShaderSource.xml
+glGetShaderSource https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+glGetShaderSource https://www.opengl.org/sdk/docs/man4/html/glGetShaderSource.xhtml
+glGetShaderSourceARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetShaderiv https://www.opengl.org/sdk/docs/man/xhtml/glGetShader.xml
+glGetShaderiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetShader.xml
+glGetShaderiv https://www.opengl.org/sdk/docs/man4/html/glGetShader.xhtml
+glGetSharpenTexFuncSGIS https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt
+glGetString https://www.opengl.org/sdk/docs/man/xhtml/glGetString.xml
+glGetString https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml
+glGetString https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml
+glGetStringi https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml
+glGetStringi https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml
+glGetSubroutineIndex https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetSubroutineIndex https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineIndex.xhtml
+glGetSubroutineUniformLocation https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetSubroutineUniformLocation https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineUniformLocation.xhtml
+glGetSynciv https://www.opengl.org/registry/specs/ARB/sync.txt
+glGetSynciv https://www.opengl.org/sdk/docs/man3/xhtml/glGetSync.xml
+glGetSynciv https://www.opengl.org/sdk/docs/man4/html/glGetSync.xhtml
+glGetTexEnvfv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexEnv.xml
+glGetTexEnviv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexEnv.xml
+glGetTexEnvxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetTexFilterFuncSGIS https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt
+glGetTexGendv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
+glGetTexGenfv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
+glGetTexGeniv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexGen.xml
+glGetTexGenxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetTexImage https://www.opengl.org/sdk/docs/man/xhtml/glGetTexImage.xml
+glGetTexImage https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+glGetTexImage https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml
+glGetTexLevelParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexLevelParameter.xml
+glGetTexLevelParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml
+glGetTexLevelParameterfv https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml
+glGetTexLevelParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexLevelParameter.xml
+glGetTexLevelParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml
+glGetTexLevelParameteriv https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml
+glGetTexLevelParameterxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetTexParameterPointervAPPLE https://www.opengl.org/registry/specs/APPLE/texture_range.txt
+glGetTexParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexParameter.xml
+glGetTexParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml
+glGetTexParameterfv https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml
+glGetTexParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glGetTexParameter.xml
+glGetTexParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml
+glGetTexParameteriv https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml
+glGetTexParameterxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glGetTextureImageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureLevelParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureLevelParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureParameterIivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureParameterIuivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTextureParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetTrackMatrixivNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetTransformFeedbackVarying https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+glGetTransformFeedbackVarying https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedbackVarying.xhtml
+glGetTransformFeedbackVaryingEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glGetTransformFeedbackVaryingNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glGetUniformBlockIndex https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetUniformBlockIndex https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+glGetUniformBlockIndex https://www.opengl.org/sdk/docs/man4/html/glGetUniformBlockIndex.xhtml
+glGetUniformBufferSizeEXT https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
+glGetUniformIndices https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glGetUniformIndices https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformIndices.xml
+glGetUniformIndices https://www.opengl.org/sdk/docs/man4/html/glGetUniformIndices.xhtml
+glGetUniformLocation https://www.opengl.org/sdk/docs/man/xhtml/glGetUniformLocation.xml
+glGetUniformLocation https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml
+glGetUniformLocation https://www.opengl.org/sdk/docs/man4/html/glGetUniformLocation.xhtml
+glGetUniformLocationARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetUniformOffsetEXT https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
+glGetUniformSubroutineuiv https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glGetUniformSubroutineuiv https://www.opengl.org/sdk/docs/man4/html/glGetUniformSubroutine.xhtml
+glGetUniformdv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glGetUniformfv https://www.opengl.org/sdk/docs/man/xhtml/glGetUniform.xml
+glGetUniformfv https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml
+glGetUniformfv https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml
+glGetUniformfvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetUniformi64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glGetUniformiv https://www.opengl.org/sdk/docs/man/xhtml/glGetUniform.xml
+glGetUniformiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml
+glGetUniformiv https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml
+glGetUniformivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glGetUniformui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glGetUniformui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glGetUniformuivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glGetVariantArrayObjectfvATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetVariantArrayObjectivATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glGetVaryingLocationNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glGetVertexArrayIntegeri_vEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetVertexArrayIntegervEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetVertexArrayPointeri_vEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetVertexArrayPointervEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glGetVertexAttribArrayObjectfvATI https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
+glGetVertexAttribArrayObjectivATI https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
+glGetVertexAttribIiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribIiv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribIivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glGetVertexAttribIivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glGetVertexAttribIuiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribIuiv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribIuivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glGetVertexAttribIuivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glGetVertexAttribLdv https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glGetVertexAttribLdv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribLdvEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glGetVertexAttribLi64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glGetVertexAttribLui64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glGetVertexAttribPointerv https://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttribPointerv.xml
+glGetVertexAttribPointerv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribPointerv.xml
+glGetVertexAttribPointerv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttribPointerv.xhtml
+glGetVertexAttribPointervARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetVertexAttribPointervARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetVertexAttribPointervNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetVertexAttribdv https://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribdv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribdv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribdvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetVertexAttribdvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetVertexAttribdvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetVertexAttribfv https://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribfv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribfv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribfvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetVertexAttribfvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetVertexAttribfvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetVertexAttribiv https://www.opengl.org/sdk/docs/man/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribiv https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml
+glGetVertexAttribiv https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml
+glGetVertexAttribivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glGetVertexAttribivARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glGetVertexAttribivNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glGetVideoCaptureivNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glGetVideoi64vNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glGetVideoivNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glGetVideoui64vNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glGetVideouivNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glGetnColorTableARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnCompressedTexImageARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnConvolutionFilterARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnHistogramARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnMapdvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnMapfvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnMapivARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnMinmaxARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnPixelMapfvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnPixelMapuivARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnPixelMapusvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnPolygonStippleARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnSeparableFilterARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnTexImageARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnUniformdvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnUniformfvARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnUniformivARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGetnUniformuivARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glGlobalAlphaFactorbSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactordSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactorfSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactoriSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactorsSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactorubSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactoruiSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glGlobalAlphaFactorusSUN https://www.opengl.org/registry/specs/SUN/global_alpha.txt
+glHint https://www.opengl.org/sdk/docs/man/xhtml/glHint.xml
+glHint https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+glHint https://www.opengl.org/sdk/docs/man4/html/glHint.xhtml
+glHistogram https://www.opengl.org/sdk/docs/man/xhtml/glHistogram.xml
+glHistogramEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glImageTransformParameterfHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glImageTransformParameterfvHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glImageTransformParameteriHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glImageTransformParameterivHP https://www.opengl.org/registry/specs/HP/image_transform.txt
+glImportSyncEXT https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt
+glIndexFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glIndexMask https://www.opengl.org/sdk/docs/man/xhtml/glIndexMask.xml
+glIndexPointer https://www.opengl.org/sdk/docs/man/xhtml/glIndexPointer.xml
+glIndexPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glIndexd https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexdv https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexf https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexfv https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexi https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexiv https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexs https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexsv https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexub https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glIndexubv https://www.opengl.org/sdk/docs/man/xhtml/glIndex.xml
+glInitNames https://www.opengl.org/sdk/docs/man/xhtml/glInitNames.xml
+glInstrumentsBufferSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glInterleavedArrays https://www.opengl.org/sdk/docs/man/xhtml/glInterleavedArrays.xml
+glInterpolatePathsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glIsArraySetEXT https://www.opengl.org/registry/specs/EXT/vertex_array_set.txt
+glIsAsyncMarkerSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glIsBuffer https://www.opengl.org/sdk/docs/man/xhtml/glIsBuffer.xml
+glIsBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+glIsBuffer https://www.opengl.org/sdk/docs/man4/html/glIsBuffer.xhtml
+glIsBufferARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glIsBufferResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glIsEnabled https://www.opengl.org/sdk/docs/man/xhtml/glIsEnabled.xml
+glIsEnabled https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+glIsEnabled https://www.opengl.org/sdk/docs/man4/html/glIsEnabled.xhtml
+glIsEnabledIndexedEXT https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glIsEnabledIndexedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glIsEnabledIndexedEXT https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt
+glIsFenceAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glIsFenceNV https://www.opengl.org/registry/specs/NV/fence.txt
+glIsFramebuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glIsFramebuffer https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+glIsFramebuffer https://www.opengl.org/sdk/docs/man4/html/glIsFramebuffer.xhtml
+glIsFramebufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glIsList https://www.opengl.org/sdk/docs/man/xhtml/glIsList.xml
+glIsNameAMD https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt
+glIsNamedBufferResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glIsNamedStringARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glIsObjectBufferATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glIsOcclusionQueryNV https://www.opengl.org/registry/specs/NV/occlusion_query.txt
+glIsPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glIsPointInFillPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glIsPointInStrokePathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glIsProgram https://www.opengl.org/sdk/docs/man/xhtml/glIsProgram.xml
+glIsProgram https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+glIsProgram https://www.opengl.org/sdk/docs/man4/html/glIsProgram.xhtml
+glIsProgramARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glIsProgramARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glIsProgramNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glIsProgramPipeline https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glIsProgramPipeline https://www.opengl.org/sdk/docs/man4/html/glIsProgramPipeline.xhtml
+glIsQuery https://www.opengl.org/sdk/docs/man/xhtml/glIsQuery.xml
+glIsQuery https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+glIsQuery https://www.opengl.org/sdk/docs/man4/html/glIsQuery.xhtml
+glIsQueryARB https://www.opengl.org/registry/specs/ARB/occlusion_query.txt
+glIsRenderbuffer https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glIsRenderbuffer https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+glIsRenderbuffer https://www.opengl.org/sdk/docs/man4/html/glIsRenderbuffer.xhtml
+glIsRenderbufferEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glIsSampler https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glIsSampler https://www.opengl.org/sdk/docs/man3/xhtml/glIsSampler.xml
+glIsSampler https://www.opengl.org/sdk/docs/man4/html/glIsSampler.xhtml
+glIsShader https://www.opengl.org/sdk/docs/man/xhtml/glIsShader.xml
+glIsShader https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+glIsShader https://www.opengl.org/sdk/docs/man4/html/glIsShader.xhtml
+glIsSync https://www.opengl.org/registry/specs/ARB/sync.txt
+glIsSync https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
+glIsSync https://www.opengl.org/sdk/docs/man4/html/glIsSync.xhtml
+glIsTexture https://www.opengl.org/sdk/docs/man/xhtml/glIsTexture.xml
+glIsTexture https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+glIsTexture https://www.opengl.org/sdk/docs/man4/html/glIsTexture.xhtml
+glIsTextureEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glIsTransformFeedback https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glIsTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glIsTransformFeedback.xhtml
+glIsTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glIsVertexArray https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt
+glIsVertexArray https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+glIsVertexArray https://www.opengl.org/sdk/docs/man4/html/glIsVertexArray.xhtml
+glIsVertexArrayAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt
+glIsVertexAttribEnabledAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glJoinSwapGroupSGIX https://www.opengl.org/registry/specs/SGIX/swap_group.txt
+glLightEnviEXT https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt
+glLightModelf https://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
+glLightModelfv https://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
+glLightModeli https://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
+glLightModeliv https://www.opengl.org/sdk/docs/man/xhtml/glLightModel.xml
+glLightf https://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
+glLightfv https://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
+glLighti https://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
+glLightiv https://www.opengl.org/sdk/docs/man/xhtml/glLight.xml
+glLineStipple https://www.opengl.org/sdk/docs/man/xhtml/glLineStipple.xml
+glLineWidth https://www.opengl.org/sdk/docs/man/xhtml/glLineWidth.xml
+glLineWidth https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+glLineWidth https://www.opengl.org/sdk/docs/man4/html/glLineWidth.xhtml
+glLineWidthxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glLinkProgram https://www.opengl.org/sdk/docs/man/xhtml/glLinkProgram.xml
+glLinkProgram https://www.opengl.org/sdk/docs/man3/xhtml/glLinkProgram.xml
+glLinkProgram https://www.opengl.org/sdk/docs/man4/html/glLinkProgram.xhtml
+glLinkProgramARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glListBase https://www.opengl.org/sdk/docs/man/xhtml/glListBase.xml
+glListParameterfSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glListParameterfvSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glListParameteriSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glListParameterivSGIX https://www.opengl.org/registry/specs/SGIX/list_priority.txt
+glLoadIdentity https://www.opengl.org/sdk/docs/man/xhtml/glLoadIdentity.xml
+glLoadMatrixd https://www.opengl.org/sdk/docs/man/xhtml/glLoadMatrix.xml
+glLoadMatrixf https://www.opengl.org/sdk/docs/man/xhtml/glLoadMatrix.xml
+glLoadMatrixxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glLoadName https://www.opengl.org/sdk/docs/man/xhtml/glLoadName.xml
+glLoadProgramNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glLoadTransposeMatrixd https://www.opengl.org/sdk/docs/man/xhtml/glLoadTransposeMatrix.xml
+glLoadTransposeMatrixf https://www.opengl.org/sdk/docs/man/xhtml/glLoadTransposeMatrix.xml
+glLoadTransposeMatrixxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glLogicOp https://www.opengl.org/sdk/docs/man/xhtml/glLogicOp.xml
+glLogicOp https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+glLogicOp https://www.opengl.org/sdk/docs/man4/html/glLogicOp.xhtml
+glMakeBufferNonResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glMakeBufferResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glMakeNamedBufferNonResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glMakeNamedBufferResidentNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glMap1d https://www.opengl.org/sdk/docs/man/xhtml/glMap1.xml
+glMap1f https://www.opengl.org/sdk/docs/man/xhtml/glMap1.xml
+glMap1xOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMap2d https://www.opengl.org/sdk/docs/man/xhtml/glMap2.xml
+glMap2f https://www.opengl.org/sdk/docs/man/xhtml/glMap2.xml
+glMap2xOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMapBuffer https://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml
+glMapBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml
+glMapBuffer https://www.opengl.org/sdk/docs/man4/html/glMapBuffer.xhtml
+glMapBufferRange https://www.opengl.org/sdk/docs/man3/xhtml/glMapBufferRange.xml
+glMapBufferRange https://www.opengl.org/sdk/docs/man4/html/glMapBufferRange.xhtml
+glMapControlPointsNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glMapGrid1d https://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
+glMapGrid1f https://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
+glMapGrid1xOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMapGrid2d https://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
+glMapGrid2f https://www.opengl.org/sdk/docs/man/xhtml/glMapGrid.xml
+glMapGrid2xOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMapNamedBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMapParameterfvNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glMapParameterivNV https://www.opengl.org/registry/specs/NV/evaluators.txt
+glMapVertexAttrib1dAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glMapVertexAttrib1fAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glMapVertexAttrib2dAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glMapVertexAttrib2fAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt
+glMaterialf https://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
+glMaterialfv https://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
+glMateriali https://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
+glMaterialiv https://www.opengl.org/sdk/docs/man/xhtml/glMaterial.xml
+glMatrixFrustumEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixIndexPointerARB https://www.opengl.org/registry/specs/ARB/matrix_palette.txt
+glMatrixLoadIdentityEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixLoadTransposedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixLoadTransposefEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixLoaddEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixLoadfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixMode https://www.opengl.org/sdk/docs/man/xhtml/glMatrixMode.xml
+glMatrixMultTransposedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixMultTransposefEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixMultdEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixMultfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixOrthoEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixPopEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixPushEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixRotatedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixRotatefEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixScaledEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixScalefEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixTranslatedEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMatrixTranslatefEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMemoryBarrier https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt
+glMemoryBarrierEXT https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt
+glMinSampleShading https://www.opengl.org/sdk/docs/man4/html/glMinSampleShading.xhtml
+glMinSampleShadingARB https://www.opengl.org/registry/specs/ARB/sample_shading.txt
+glMinmax https://www.opengl.org/sdk/docs/man/xhtml/glMinmax.xml
+glMinmaxEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glMultMatrixd https://www.opengl.org/sdk/docs/man/xhtml/glMultMatrix.xml
+glMultMatrixf https://www.opengl.org/sdk/docs/man/xhtml/glMultMatrix.xml
+glMultMatrixxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMultTransposeMatrixd https://www.opengl.org/sdk/docs/man/xhtml/glMultTransposeMatrix.xml
+glMultTransposeMatrixf https://www.opengl.org/sdk/docs/man/xhtml/glMultTransposeMatrix.xml
+glMultTransposeMatrixxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glMultiDrawArrays https://www.opengl.org/sdk/docs/man/xhtml/glMultiDrawArrays.xml
+glMultiDrawArrays https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+glMultiDrawArrays https://www.opengl.org/sdk/docs/man4/html/glMultiDrawArrays.xhtml
+glMultiDrawArraysEXT https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt
+glMultiDrawArraysIndirectAMD https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt
+glMultiDrawElementArrayAPPLE https://www.opengl.org/registry/specs/APPLE/element_array.txt
+glMultiDrawElements https://www.opengl.org/sdk/docs/man/xhtml/glMultiDrawElements.xml
+glMultiDrawElements https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElements.xml
+glMultiDrawElements https://www.opengl.org/sdk/docs/man4/html/glMultiDrawElements.xhtml
+glMultiDrawElementsBaseVertex https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt
+glMultiDrawElementsBaseVertex https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElementsBaseVertex.xml
+glMultiDrawElementsBaseVertex https://www.opengl.org/sdk/docs/man4/html/glMultiDrawElementsBaseVertex.xhtml
+glMultiDrawElementsEXT https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt
+glMultiDrawElementsIndirectAMD https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt
+glMultiDrawRangeElementArrayAPPLE https://www.opengl.org/registry/specs/APPLE/element_array.txt
+glMultiModeDrawArraysIBM https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
+glMultiModeDrawElementsIBM https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
+glMultiTexBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexCoord1d https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1dv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1f https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1fv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord1hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord1i https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1iv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1s https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord1sv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2d https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2dv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2f https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2fv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord2hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord2i https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2iv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2s https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord2sv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3d https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3dv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3f https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3fv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord3i https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3iv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3s https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord3sv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4d https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4dv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4f https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4fv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glMultiTexCoord4i https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4iv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4s https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoord4sv https://www.opengl.org/sdk/docs/man/xhtml/glMultiTexCoord.xml
+glMultiTexCoordP1ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP1uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP2ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP2uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP4ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordP4uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glMultiTexCoordPointerEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexEnvfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexEnvfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexEnviEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexEnvivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGendEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGendvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGenfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGenfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGeniEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexGenivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameterIivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameterIuivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameterfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameteriEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexRenderbufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glMultiTexSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedBufferDataEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedBufferSubDataEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedCopyBufferSubDataEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferRenderbufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTexture1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTexture2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTexture3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTextureEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTextureFaceEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedFramebufferTextureLayerEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameter4dEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameter4dvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameter4fEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameter4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameterI4iEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameterI4ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameterI4uiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameterI4uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParameters4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParametersI4ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramLocalParametersI4uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedProgramStringEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedRenderbufferStorageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedRenderbufferStorageMultisampleCoverageEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedRenderbufferStorageMultisampleEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glNamedStringARB https://www.opengl.org/registry/specs/ARB/shading_language_include.txt
+glNewList https://www.opengl.org/sdk/docs/man/xhtml/glNewList.xml
+glNewObjectBufferATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glNormal3b https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3bv https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3d https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3dv https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3f https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3fVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glNormal3fVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glNormal3fv https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glNormal3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glNormal3i https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3iv https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3s https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormal3sv https://www.opengl.org/sdk/docs/man/xhtml/glNormal.xml
+glNormalFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glNormalP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glNormalP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glNormalPointer https://www.opengl.org/sdk/docs/man/xhtml/glNormalPointer.xml
+glNormalPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glNormalPointervINTEL https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
+glObjectPurgeableAPPLE https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
+glObjectUnpurgeableAPPLE https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt
+glOrtho https://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml
+glOrthofOES https://www.opengl.org/registry/specs/OES/OES_single_precision.txt
+glOrthoxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPassThrough https://www.opengl.org/sdk/docs/man/xhtml/glPassThrough.xml
+glPassThroughxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPatchParameterfv https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt
+glPatchParameterfv https://www.opengl.org/sdk/docs/man4/html/glPatchParameter.xhtml
+glPatchParameteri https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt
+glPatchParameteri https://www.opengl.org/sdk/docs/man4/html/glPatchParameter.xhtml
+glPathColorGenNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathCommandsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathCoordsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathCoverDepthFuncNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathDashArrayNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathFogGenNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathGlyphRangeNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathGlyphsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathParameterfNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathParameterfvNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathParameteriNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathParameterivNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathStencilDepthOffsetNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathStencilFuncNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathStringNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathSubCommandsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathSubCoordsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPathTexGenNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPauseTransformFeedback https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glPauseTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glPauseTransformFeedback.xhtml
+glPauseTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glPixelDataRangeNV https://www.opengl.org/registry/specs/NV/pixel_data_range.txt
+glPixelMapfv https://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
+glPixelMapuiv https://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
+glPixelMapusv https://www.opengl.org/sdk/docs/man/xhtml/glPixelMap.xml
+glPixelStoref https://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml
+glPixelStoref https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml
+glPixelStoref https://www.opengl.org/sdk/docs/man4/html/glPixelStore.xhtml
+glPixelStorei https://www.opengl.org/sdk/docs/man/xhtml/glPixelStore.xml
+glPixelStorei https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml
+glPixelStorei https://www.opengl.org/sdk/docs/man4/html/glPixelStore.xhtml
+glPixelTexGenSGIX https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt
+glPixelTransferf https://www.opengl.org/sdk/docs/man/xhtml/glPixelTransfer.xml
+glPixelTransferi https://www.opengl.org/sdk/docs/man/xhtml/glPixelTransfer.xml
+glPixelTransferxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPixelTransformParameterfEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glPixelTransformParameterfvEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glPixelTransformParameteriEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glPixelTransformParameterivEXT https://www.opengl.org/registry/specs/EXT/pixel_transform.txt
+glPixelZoom https://www.opengl.org/sdk/docs/man/xhtml/glPixelZoom.xml
+glPixelZoomxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPointAlongPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glPointParameterf https://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
+glPointParameterf https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
+glPointParameterf https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml
+glPointParameterfARB https://www.opengl.org/registry/specs/ARB/point_parameters.txt
+glPointParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
+glPointParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
+glPointParameterfv https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml
+glPointParameterfvARB https://www.opengl.org/registry/specs/ARB/point_parameters.txt
+glPointParameteri https://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
+glPointParameteri https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
+glPointParameteri https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml
+glPointParameteriNV https://www.opengl.org/registry/specs/NV/point_sprite.txt
+glPointParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glPointParameter.xml
+glPointParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml
+glPointParameteriv https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml
+glPointParameterivNV https://www.opengl.org/registry/specs/NV/point_sprite.txt
+glPointParameterxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPointSize https://www.opengl.org/sdk/docs/man/xhtml/glPointSize.xml
+glPointSize https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+glPointSize https://www.opengl.org/sdk/docs/man4/html/glPointSize.xhtml
+glPointSizexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPollAsyncSGIX https://www.opengl.org/registry/specs/SGIX/async.txt
+glPollInstrumentsSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glPolygonMode https://www.opengl.org/sdk/docs/man/xhtml/glPolygonMode.xml
+glPolygonMode https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+glPolygonMode https://www.opengl.org/sdk/docs/man4/html/glPolygonMode.xhtml
+glPolygonOffset https://www.opengl.org/sdk/docs/man/xhtml/glPolygonOffset.xml
+glPolygonOffset https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+glPolygonOffset https://www.opengl.org/sdk/docs/man4/html/glPolygonOffset.xhtml
+glPolygonOffsetEXT https://www.opengl.org/registry/specs/EXT/polygon_offset.txt
+glPolygonOffsetxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glPolygonStipple https://www.opengl.org/sdk/docs/man/xhtml/glPolygonStipple.xml
+glPopAttrib https://www.opengl.org/sdk/docs/man/xhtml/glPushAttrib.xml
+glPopClientAttrib https://www.opengl.org/sdk/docs/man/xhtml/glPushClientAttrib.xml
+glPopMatrix https://www.opengl.org/sdk/docs/man/xhtml/glPushMatrix.xml
+glPopName https://www.opengl.org/sdk/docs/man/xhtml/glPushName.xml
+glPresentFrameDualFillNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glPresentFrameKeyedNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glPrimitiveRestartIndex https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+glPrimitiveRestartIndex https://www.opengl.org/sdk/docs/man4/html/glPrimitiveRestartIndex.xhtml
+glPrimitiveRestartIndexNV https://www.opengl.org/registry/specs/NV/primitive_restart.txt
+glPrimitiveRestartNV https://www.opengl.org/registry/specs/NV/primitive_restart.txt
+glPrioritizeTextures https://www.opengl.org/sdk/docs/man/xhtml/glPrioritizeTextures.xml
+glPrioritizeTexturesEXT https://www.opengl.org/registry/specs/EXT/texture_object.txt
+glPrioritizeTexturesxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glProgramBinary https://www.opengl.org/registry/specs/ARB/get_program_binary.txt
+glProgramBinary https://www.opengl.org/sdk/docs/man4/html/glProgramBinary.xhtml
+glProgramBufferParametersIivNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glProgramBufferParametersIuivNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glProgramBufferParametersfvNV https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt
+glProgramEnvParameter4dARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramEnvParameter4dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramEnvParameter4dvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramEnvParameter4dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramEnvParameter4fARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramEnvParameter4fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramEnvParameter4fvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramEnvParameter4fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramEnvParameterI4iNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramEnvParameterI4ivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramEnvParameterI4uiNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramEnvParameterI4uivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramEnvParametersI4ivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramEnvParametersI4uivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParameter4dARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramLocalParameter4dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramLocalParameter4dARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramLocalParameter4dvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramLocalParameter4dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramLocalParameter4dvARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramLocalParameter4fARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramLocalParameter4fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramLocalParameter4fARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramLocalParameter4fvARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramLocalParameter4fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramLocalParameter4fvARB https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramLocalParameterI4iNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParameterI4ivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParameterI4uiNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParameterI4uivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParametersI4ivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramLocalParametersI4uivNV https://www.opengl.org/registry/specs/NV/gpu_program4.txt
+glProgramNamedParameter4dNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramNamedParameter4dvNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramNamedParameter4fNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramNamedParameter4fvNV https://www.opengl.org/registry/specs/NV/fragment_program.txt
+glProgramParameter4dNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramParameter4dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramParameter4fNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramParameter4fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramParameteri https://www.opengl.org/registry/specs/ARB/get_program_binary.txt
+glProgramParameteri https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramParameteri https://www.opengl.org/sdk/docs/man4/html/glProgramParameter.xhtml
+glProgramParameteriARB https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt
+glProgramParameteriEXT https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt
+glProgramParameters4dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramParameters4fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glProgramStringARB https://www.opengl.org/registry/specs/ARB/fragment_program.txt
+glProgramStringARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glProgramUniform1d https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1dEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform1dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform1f https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1f https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1fEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform1fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform1i https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1i https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform1i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform1iEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform1iv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1iv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform1ui https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1ui https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform1ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform1uiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform1uiv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform1uiv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform1uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2d https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2dEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform2dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform2f https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2f https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2fEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2i https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2i https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform2i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform2iEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2iv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2iv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2ui https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2ui https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform2ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform2uiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform2uiv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform2uiv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform2uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3d https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3dEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform3dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform3f https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3f https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3fEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3i https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3i https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform3i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform3iEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3iv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3iv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3ui https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3ui https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform3ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform3uiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform3uiv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform3uiv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform3uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4d https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4dEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform4dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniform4f https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4f https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4fEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4i https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4i https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform4i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform4iEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4iv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4iv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4ivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4ui https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4ui https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform4ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glProgramUniform4uiEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniform4uiv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniform4uiv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniform4uivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix2dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix2fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix2fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix2x3dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2x3dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix2x3fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2x3fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix2x3fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix2x4dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2x4dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix2x4fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix2x4fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix2x4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix3dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix3fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix3fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix3x2dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3x2dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix3x2fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3x2fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix3x2fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix3x4dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3x4dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix3x4fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix3x4fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix3x4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix4dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix4fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix4fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix4x2dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4x2dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix4x2fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4x2fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix4x2fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformMatrix4x3dv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4x3dvEXT https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glProgramUniformMatrix4x3fv https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glProgramUniformMatrix4x3fv https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml
+glProgramUniformMatrix4x3fvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glProgramUniformui64NV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glProgramUniformui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glProgramVertexLimitNV https://www.opengl.org/registry/specs/NV/geometry_program4.txt
+glProvokingVertex https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt
+glProvokingVertex https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
+glProvokingVertex https://www.opengl.org/sdk/docs/man4/html/glProvokingVertex.xhtml
+glProvokingVertexEXT https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt
+glPushAttrib https://www.opengl.org/sdk/docs/man/xhtml/glPushAttrib.xml
+glPushClientAttrib https://www.opengl.org/sdk/docs/man/xhtml/glPushClientAttrib.xml
+glPushClientAttribDefaultEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glPushMatrix https://www.opengl.org/sdk/docs/man/xhtml/glPushMatrix.xml
+glPushName https://www.opengl.org/sdk/docs/man/xhtml/glPushName.xml
+glQueryCounter https://www.opengl.org/registry/specs/ARB/timer_query.txt
+glQueryCounter https://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml
+glQueryCounter https://www.opengl.org/sdk/docs/man4/html/glQueryCounter.xhtml
+glQueryMatrixxOES https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt
+glQueryMaxSwapBarriersSGIX https://www.opengl.org/registry/specs/SGIX/swap_barrier.txt
+glRasterPos2d https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2dv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2f https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2fv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2i https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2iv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2s https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos2sv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3d https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3dv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3f https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3fv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3i https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3iv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3s https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos3sv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4d https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4dv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4f https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4fv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4i https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4iv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4s https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glRasterPos4sv https://www.opengl.org/sdk/docs/man/xhtml/glRasterPos.xml
+glReadBuffer https://www.opengl.org/sdk/docs/man/xhtml/glReadBuffer.xml
+glReadBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+glReadBuffer https://www.opengl.org/sdk/docs/man4/html/glReadBuffer.xhtml
+glReadInstrumentsSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glReadPixels https://www.opengl.org/sdk/docs/man/xhtml/glReadPixels.xml
+glReadPixels https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+glReadPixels https://www.opengl.org/sdk/docs/man4/html/glReadPixels.xhtml
+glReadnPixelsARB https://www.opengl.org/registry/specs/ARB/robustness.txt
+glRectd https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectdv https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectf https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectfv https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRecti https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectiv https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRects https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectsv https://www.opengl.org/sdk/docs/man/xhtml/glRect.xml
+glRectxOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glRectxvOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glReferencePlaneSGIX https://www.opengl.org/registry/specs/SGIX/reference_plane.txt
+glReleaseShaderCompiler https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
+glReleaseShaderCompiler https://www.opengl.org/sdk/docs/man4/html/glReleaseShaderCompiler.xhtml
+glRenderMode https://www.opengl.org/sdk/docs/man/xhtml/glRenderMode.xml
+glRenderbufferStorage https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glRenderbufferStorage https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+glRenderbufferStorage https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorage.xhtml
+glRenderbufferStorageEXT https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt
+glRenderbufferStorageMultisample https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt
+glRenderbufferStorageMultisample https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+glRenderbufferStorageMultisample https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorageMultisample.xhtml
+glRenderbufferStorageMultisampleCoverageNV https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt
+glRenderbufferStorageMultisampleEXT https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt
+glReplacementCodePointerSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeubSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeubvSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeuiSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeuivSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeusSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glReplacementCodeusvSUN https://www.opengl.org/registry/specs/SUN/triangle_list.txt
+glRequestResidentProgramsNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glResetHistogram https://www.opengl.org/sdk/docs/man/xhtml/glResetHistogram.xml
+glResetHistogramEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glResetMinmax https://www.opengl.org/sdk/docs/man/xhtml/glResetMinmax.xml
+glResetMinmaxEXT https://www.opengl.org/registry/specs/EXT/histogram.txt
+glResizeBuffersMESA https://www.opengl.org/registry/specs/MESA/resize_buffers.txt
+glResumeTransformFeedback https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt
+glResumeTransformFeedback https://www.opengl.org/sdk/docs/man4/html/glResumeTransformFeedback.xhtml
+glResumeTransformFeedbackNV https://www.opengl.org/registry/specs/NV/transform_feedback2.txt
+glRotated https://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml
+glRotatef https://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml
+glRotatexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glSampleCoverage https://www.opengl.org/sdk/docs/man/xhtml/glSampleCoverage.xml
+glSampleCoverage https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+glSampleCoverage https://www.opengl.org/sdk/docs/man4/html/glSampleCoverage.xhtml
+glSampleCoverageARB https://www.opengl.org/registry/specs/ARB/multisample.txt
+glSampleCoverageOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glSampleMaskEXT https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt
+glSampleMaskIndexedNV https://www.opengl.org/registry/specs/NV/explicit_multisample.txt
+glSampleMaskSGIS https://www.opengl.org/registry/specs/SGIS/multisample.txt
+glSampleMaski https://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+glSampleMaski https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
+glSampleMaski https://www.opengl.org/sdk/docs/man4/html/glSampleMaski.xhtml
+glSamplePatternEXT https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt
+glSamplePatternSGIS https://www.opengl.org/registry/specs/SGIS/multisample.txt
+glSamplerParameterIiv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameterIuiv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameterf https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameterf https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
+glSamplerParameterf https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml
+glSamplerParameterfv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
+glSamplerParameterfv https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml
+glSamplerParameteri https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameteri https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
+glSamplerParameteri https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml
+glSamplerParameteriv https://www.opengl.org/registry/specs/ARB/sampler_objects.txt
+glSamplerParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml
+glSamplerParameteriv https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml
+glScaled https://www.opengl.org/sdk/docs/man/xhtml/glScale.xml
+glScalef https://www.opengl.org/sdk/docs/man/xhtml/glScale.xml
+glScalexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glScissor https://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml
+glScissor https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+glScissor https://www.opengl.org/sdk/docs/man4/html/glScissor.xhtml
+glScissorArrayv https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glScissorArrayv https://www.opengl.org/sdk/docs/man4/html/glScissorArray.xhtml
+glScissorIndexed https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glScissorIndexed https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml
+glScissorIndexedv https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glScissorIndexedv https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml
+glSecondaryColor3b https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3bv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3d https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3dv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3f https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3fv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glSecondaryColor3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glSecondaryColor3i https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3iv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3s https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3sv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3ub https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3ubv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3ui https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3uiv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3us https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColor3usv https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColor.xml
+glSecondaryColorFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glSecondaryColorP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glSecondaryColorP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glSecondaryColorPointer https://www.opengl.org/sdk/docs/man/xhtml/glSecondaryColorPointer.xml
+glSecondaryColorPointerEXT https://www.opengl.org/registry/specs/EXT/secondary_color.txt
+glSelectBuffer https://www.opengl.org/sdk/docs/man/xhtml/glSelectBuffer.xml
+glSelectPerfMonitorCountersAMD https://www.opengl.org/registry/specs/AMD/performance_monitor.txt
+glSeparableFilter2D https://www.opengl.org/sdk/docs/man/xhtml/glSeparableFilter2D.xml
+glSeparableFilter2DEXT https://www.opengl.org/registry/specs/EXT/convolution.txt
+glSetFenceAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glSetFenceNV https://www.opengl.org/registry/specs/NV/fence.txt
+glSetMultisamplefvAMD https://www.opengl.org/registry/specs/AMD/sample_positions.txt
+glShadeModel https://www.opengl.org/sdk/docs/man/xhtml/glShadeModel.xml
+glShaderBinary https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt
+glShaderBinary https://www.opengl.org/sdk/docs/man4/html/glShaderBinary.xhtml
+glShaderSource https://www.opengl.org/sdk/docs/man/xhtml/glShaderSource.xml
+glShaderSource https://www.opengl.org/sdk/docs/man3/xhtml/glShaderSource.xml
+glShaderSource https://www.opengl.org/sdk/docs/man4/html/glShaderSource.xhtml
+glShaderSourceARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glSharpenTexFuncSGIS https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt
+glSpriteParameterfSGIX https://www.opengl.org/registry/specs/SGIX/sprite.txt
+glSpriteParameterfvSGIX https://www.opengl.org/registry/specs/SGIX/sprite.txt
+glSpriteParameteriSGIX https://www.opengl.org/registry/specs/SGIX/sprite.txt
+glSpriteParameterivSGIX https://www.opengl.org/registry/specs/SGIX/sprite.txt
+glStartInstrumentsSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glStencilClearTagEXT https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt
+glStencilFillPathInstancedNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glStencilFillPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glStencilFunc https://www.opengl.org/sdk/docs/man/xhtml/glStencilFunc.xml
+glStencilFunc https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+glStencilFunc https://www.opengl.org/sdk/docs/man4/html/glStencilFunc.xhtml
+glStencilFuncSeparate https://www.opengl.org/sdk/docs/man/xhtml/glStencilFuncSeparate.xml
+glStencilFuncSeparate https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+glStencilFuncSeparate https://www.opengl.org/sdk/docs/man4/html/glStencilFuncSeparate.xhtml
+glStencilMask https://www.opengl.org/sdk/docs/man/xhtml/glStencilMask.xml
+glStencilMask https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+glStencilMask https://www.opengl.org/sdk/docs/man4/html/glStencilMask.xhtml
+glStencilMaskSeparate https://www.opengl.org/sdk/docs/man/xhtml/glStencilMaskSeparate.xml
+glStencilMaskSeparate https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+glStencilMaskSeparate https://www.opengl.org/sdk/docs/man4/html/glStencilMaskSeparate.xhtml
+glStencilOp https://www.opengl.org/sdk/docs/man/xhtml/glStencilOp.xml
+glStencilOp https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+glStencilOp https://www.opengl.org/sdk/docs/man4/html/glStencilOp.xhtml
+glStencilOpSeparate https://www.opengl.org/sdk/docs/man/xhtml/glStencilOpSeparate.xml
+glStencilOpSeparate https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+glStencilOpSeparate https://www.opengl.org/sdk/docs/man4/html/glStencilOpSeparate.xhtml
+glStencilStrokePathInstancedNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glStencilStrokePathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glStopInstrumentsSGIX https://www.opengl.org/registry/specs/SGIX/instruments.txt
+glStringMarkerGREMEDY https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt
+glTagSampleBufferSGIX https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt
+glTangentPointerEXT https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt
+glTbufferMask3DFX https://www.opengl.org/registry/specs/3DFX/tbuffer.txt
+glTessellationFactorAMD https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
+glTessellationModeAMD https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt
+glTestFenceAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glTestFenceNV https://www.opengl.org/registry/specs/NV/fence.txt
+glTestObjectAPPLE https://www.opengl.org/registry/specs/APPLE/fence.txt
+glTexBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+glTexBuffer https://www.opengl.org/sdk/docs/man4/html/glTexBuffer.xhtml
+glTexBufferARB https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt
+glTexBufferEXT https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt
+glTexCoord1d https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1dv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1f https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1fv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord1hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord1i https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1iv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1s https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord1sv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2d https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2dv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2f https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2fColor4ubVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord2fColor4ubVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord2fVertex3fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord2fVertex3fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord2fv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord2hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord2i https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2iv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2s https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord2sv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3d https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3dv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3f https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3fv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord3i https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3iv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3s https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord3sv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4d https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4dv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4f https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4fVertex4fSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord4fVertex4fvSUN https://www.opengl.org/registry/specs/SUN/vertex.txt
+glTexCoord4fv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glTexCoord4i https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4iv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4s https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoord4sv https://www.opengl.org/sdk/docs/man/xhtml/glTexCoord.xml
+glTexCoordFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glTexCoordP1ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP1uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP2ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP2uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP4ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordP4uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glTexCoordPointer https://www.opengl.org/sdk/docs/man/xhtml/glTexCoordPointer.xml
+glTexCoordPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glTexCoordPointervINTEL https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
+glTexEnvf https://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
+glTexEnvfv https://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
+glTexEnvi https://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
+glTexEnviv https://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml
+glTexFilterFuncSGIS https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt
+glTexGend https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexGendv https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexGenf https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexGenfv https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexGeni https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexGeniv https://www.opengl.org/sdk/docs/man/xhtml/glTexGen.xml
+glTexImage1D https://www.opengl.org/sdk/docs/man/xhtml/glTexImage1D.xml
+glTexImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+glTexImage1D https://www.opengl.org/sdk/docs/man4/html/glTexImage1D.xhtml
+glTexImage2D https://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml
+glTexImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+glTexImage2D https://www.opengl.org/sdk/docs/man4/html/glTexImage2D.xhtml
+glTexImage2DMultisample https://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+glTexImage2DMultisample https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
+glTexImage2DMultisample https://www.opengl.org/sdk/docs/man4/html/glTexImage2DMultisample.xhtml
+glTexImage2DMultisampleCoverageNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTexImage3D https://www.opengl.org/sdk/docs/man/xhtml/glTexImage3D.xml
+glTexImage3D https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+glTexImage3D https://www.opengl.org/sdk/docs/man4/html/glTexImage3D.xhtml
+glTexImage3DEXT https://www.opengl.org/registry/specs/EXT/texture3D.txt
+glTexImage3DMultisample https://www.opengl.org/registry/specs/ARB/texture_multisample.txt
+glTexImage3DMultisample https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
+glTexImage3DMultisample https://www.opengl.org/sdk/docs/man4/html/glTexImage3DMultisample.xhtml
+glTexImage3DMultisampleCoverageNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTexImage4DSGIS https://www.opengl.org/registry/specs/SGIS/texture4D.txt
+glTexParameterIiv https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameterIiv https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexParameterIivEXT https://www.opengl.org/registry/specs/EXT/texture_integer.txt
+glTexParameterIuiv https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameterIuiv https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexParameterIuivEXT https://www.opengl.org/registry/specs/EXT/texture_integer.txt
+glTexParameterf https://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
+glTexParameterf https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameterf https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexParameterfv https://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
+glTexParameterfv https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameterfv https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexParameteri https://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
+glTexParameteri https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameteri https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexParameteriv https://www.opengl.org/sdk/docs/man/xhtml/glTexParameter.xml
+glTexParameteriv https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml
+glTexParameteriv https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml
+glTexRenderbufferNV https://www.opengl.org/registry/specs/NV/explicit_multisample.txt
+glTexStorage1D https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTexStorage2D https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTexStorage3D https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTexSubImage1D https://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage1D.xml
+glTexSubImage1D https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+glTexSubImage1D https://www.opengl.org/sdk/docs/man4/html/glTexSubImage1D.xhtml
+glTexSubImage1DEXT https://www.opengl.org/registry/specs/EXT/subtexture.txt
+glTexSubImage2D https://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage2D.xml
+glTexSubImage2D https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+glTexSubImage2D https://www.opengl.org/sdk/docs/man4/html/glTexSubImage2D.xhtml
+glTexSubImage2DEXT https://www.opengl.org/registry/specs/EXT/subtexture.txt
+glTexSubImage3D https://www.opengl.org/sdk/docs/man/xhtml/glTexSubImage3D.xml
+glTexSubImage3D https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+glTexSubImage3D https://www.opengl.org/sdk/docs/man4/html/glTexSubImage3D.xhtml
+glTexSubImage3DEXT https://www.opengl.org/registry/specs/EXT/subtexture.txt
+glTexSubImage4DSGIS https://www.opengl.org/registry/specs/SGIS/texture4D.txt
+glTextureBarrierNV https://www.opengl.org/registry/specs/NV/texture_barrier.txt
+glTextureBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureColorMaskSGIS https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt
+glTextureFogSGIX https://www.opengl.org/registry/specs/SGIX/fog_texture.txt
+glTextureImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureImage2DMultisampleCoverageNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTextureImage2DMultisampleNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTextureImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureImage3DMultisampleCoverageNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTextureImage3DMultisampleNV https://www.opengl.org/registry/specs/NV/texture_multisample.txt
+glTextureLightEXT https://www.opengl.org/registry/specs/EXT/light_texture.txt
+glTextureMaterialEXT https://www.opengl.org/registry/specs/EXT/light_texture.txt
+glTextureNormalEXT https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt
+glTextureParameterIivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureParameterIuivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureParameterfEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureParameterfvEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureParameteriEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureParameterivEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureRangeAPPLE https://www.opengl.org/registry/specs/APPLE/texture_range.txt
+glTextureRenderbufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureStorage1DEXT https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTextureStorage2DEXT https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTextureStorage3DEXT https://www.opengl.org/registry/specs/ARB/texture_storage.txt
+glTextureSubImage1DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureSubImage2DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTextureSubImage3DEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glTrackMatrixNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glTransformFeedbackAttribsNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glTransformFeedbackVaryings https://www.opengl.org/sdk/docs/man3/xhtml/glTransformFeedbackVaryings.xml
+glTransformFeedbackVaryings https://www.opengl.org/sdk/docs/man4/html/glTransformFeedbackVaryings.xhtml
+glTransformFeedbackVaryingsEXT https://www.opengl.org/registry/specs/EXT/transform_feedback.txt
+glTransformFeedbackVaryingsNV https://www.opengl.org/registry/specs/NV/transform_feedback.txt
+glTransformPathNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glTranslated https://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml
+glTranslatef https://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml
+glTranslatexOES https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt
+glUniform1d https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform1dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform1f https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform1f https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1f https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1fARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform1fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform1fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform1i https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform1i https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1i https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform1i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform1iARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform1iv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform1iv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1iv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1ivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform1ui https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1ui https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform1ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform1uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform1uiv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform1uiv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform1uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform2d https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform2dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform2f https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform2f https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2f https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2fARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform2fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform2fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform2i https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform2i https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2i https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform2i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform2iARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform2iv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform2iv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2iv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2ivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform2ui https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2ui https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform2ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform2uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform2uiv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform2uiv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform2uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform3d https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform3dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform3f https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform3f https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3f https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3fARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform3fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform3fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform3i https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform3i https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3i https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform3i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform3iARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform3iv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform3iv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3iv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3ivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform3ui https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3ui https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform3ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform3uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform3uiv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform3uiv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform3uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform4d https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform4dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniform4f https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform4f https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4f https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4fARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform4fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform4fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform4i https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform4i https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4i https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4i64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform4i64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform4iARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform4iv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniform4iv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4iv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4ivARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniform4ui https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4ui https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4ui64NV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform4ui64vNV https://www.opengl.org/registry/specs/NV/gpu_shader5.txt
+glUniform4uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniform4uiv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniform4uiv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniform4uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glUniformBlockBinding https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt
+glUniformBlockBinding https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+glUniformBlockBinding https://www.opengl.org/sdk/docs/man4/html/glUniformBlockBinding.xhtml
+glUniformBufferEXT https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt
+glUniformMatrix2dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix2fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix2fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix2fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix2fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniformMatrix2x3dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix2x3fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix2x3fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix2x3fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix2x4dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix2x4fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix2x4fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix2x4fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix3dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix3fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix3fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix3fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix3fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniformMatrix3x2dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix3x2fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix3x2fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix3x2fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix3x4dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix3x4fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix3x4fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix3x4fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix4dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix4fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix4fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix4fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix4fvARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUniformMatrix4x2dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix4x2fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix4x2fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix4x2fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformMatrix4x3dv https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt
+glUniformMatrix4x3fv https://www.opengl.org/sdk/docs/man/xhtml/glUniform.xml
+glUniformMatrix4x3fv https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml
+glUniformMatrix4x3fv https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml
+glUniformSubroutinesuiv https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt
+glUniformSubroutinesuiv https://www.opengl.org/sdk/docs/man4/html/glUniformSubroutines.xhtml
+glUniformui64NV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glUniformui64vNV https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt
+glUnmapBuffer https://www.opengl.org/sdk/docs/man/xhtml/glMapBuffer.xml
+glUnmapBuffer https://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml
+glUnmapBuffer https://www.opengl.org/sdk/docs/man4/html/glMapBuffer.xhtml
+glUnmapBufferARB https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt
+glUnmapNamedBufferEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glUnmapObjectBufferATI https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
+glUpdateObjectBufferATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glUseProgram https://www.opengl.org/sdk/docs/man/xhtml/glUseProgram.xml
+glUseProgram https://www.opengl.org/sdk/docs/man3/xhtml/glUseProgram.xml
+glUseProgram https://www.opengl.org/sdk/docs/man4/html/glUseProgram.xhtml
+glUseProgramObjectARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glUseProgramStages https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glUseProgramStages https://www.opengl.org/sdk/docs/man4/html/glUseProgramStages.xhtml
+glUseShaderProgramEXT https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt
+glValidateProgram https://www.opengl.org/sdk/docs/man/xhtml/glValidateProgram.xml
+glValidateProgram https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+glValidateProgram https://www.opengl.org/sdk/docs/man4/html/glValidateProgram.xhtml
+glValidateProgramARB https://www.opengl.org/registry/specs/ARB/shader_objects.txt
+glValidateProgramPipeline https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+glValidateProgramPipeline https://www.opengl.org/sdk/docs/man4/html/glValidateProgramPipeline.xhtml
+glVariantArrayObjectATI https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt
+glVertex2d https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2dv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2f https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2fv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex2hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex2i https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2iv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2s https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex2sv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3d https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3dv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3f https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3fv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex3i https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3iv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3s https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex3sv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4d https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4dv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4f https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4fv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertex4i https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4iv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4s https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertex4sv https://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml
+glVertexArrayColorOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayEdgeFlagOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayFogCoordOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayIndexOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayMultiTexCoordOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayNormalOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayParameteriAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
+glVertexArrayRangeAPPLE https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt
+glVertexArrayRangeNV https://www.opengl.org/registry/specs/NV/vertex_array_range.txt
+glVertexArraySecondaryColorOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayTexCoordOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayVertexAttribIOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayVertexAttribLOffsetEXT https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexArrayVertexAttribLOffsetEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexArrayVertexAttribOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexArrayVertexOffsetEXT https://www.opengl.org/registry/specs/EXT/direct_state_access.txt
+glVertexAttrib1d https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1d https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1dARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1dNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib1dv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1dv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1dvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib1f https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1f https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1f https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1fARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1fNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib1fv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1fv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1fv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1fvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib1hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib1hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib1s https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1s https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1s https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1sARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1sARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1sNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib1sv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib1sv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib1sv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib1svARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib1svARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib1svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2d https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2d https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2dARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2dNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2dv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2dv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2dvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2f https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2f https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2f https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2fARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2fNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2fv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2fv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2fv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2fvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib2hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib2s https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2s https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2s https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2sARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2sARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2sNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib2sv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib2sv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib2sv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib2svARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib2svARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib2svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3d https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3d https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3dARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3dNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3dv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3dv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3dvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3f https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3f https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3f https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3fARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3fNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3fv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3fv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3fv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3fvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib3s https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3s https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3s https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3sARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3sARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3sNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib3sv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib3sv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib3sv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib3svARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib3svARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib3svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4Nbv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nbv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nbv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NbvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NbvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Niv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Niv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Niv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NivARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Nsv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nsv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nsv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NsvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NsvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Nub https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nub https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nub https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NubARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NubARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Nubv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nubv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nubv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NubvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NubvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Nuiv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nuiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nuiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NuivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NuivARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4Nusv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nusv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4Nusv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4NusvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4NusvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4bv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4bv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4bv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4bvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4bvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4d https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4d https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4dARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4dARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4dNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4dv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4dv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4dvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4dvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4f https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4f https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4f https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4fARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4fARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4fNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4fv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4fv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4fv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4fvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4fvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4hNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttrib4iv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4iv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4iv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4ivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4ivARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4s https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4s https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4s https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4sARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4sARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4sNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4sv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4sv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4sv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4svARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4svARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4ubNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4ubv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4ubv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4ubv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4ubvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4ubvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4ubvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttrib4uiv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4uiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4uiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4uivARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4uivARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttrib4usv https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttrib.xml
+glVertexAttrib4usv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttrib4usv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttrib4usvARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttrib4usvARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttribArrayObjectATI https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt
+glVertexAttribDivisor https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml
+glVertexAttribDivisor https://www.opengl.org/sdk/docs/man4/html/glVertexAttribDivisor.xhtml
+glVertexAttribDivisorARB https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
+glVertexAttribFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glVertexAttribI1i https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI1i https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI1iEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI1iEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI1iv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI1iv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI1ivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI1ivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI1ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI1ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI1uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI1uiEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI1uiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI1uiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI1uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI1uivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI2i https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI2i https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI2iEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI2iEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI2iv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI2iv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI2ivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI2ivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI2ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI2ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI2uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI2uiEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI2uiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI2uiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI2uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI2uivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI3i https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI3i https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI3iEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI3iEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI3iv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI3iv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI3ivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI3ivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI3ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI3ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI3uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI3uiEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI3uiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI3uiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI3uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI3uivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4bv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4bv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4bvEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4bvEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4i https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4i https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4iEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4iEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4iv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4iv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4ivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4ivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4sv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4sv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4svEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4svEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4ubv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4ubv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4ubvEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4ubvEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4uiEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4uiEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4uiv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4uiv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4uivEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4uivEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribI4usv https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribI4usv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribI4usvEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribI4usvEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribIFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glVertexAttribIPointer https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml
+glVertexAttribIPointer https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml
+glVertexAttribIPointerEXT https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt
+glVertexAttribIPointerEXT https://www.opengl.org/registry/specs/NV/vertex_program4.txt
+glVertexAttribL1d https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL1d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL1dEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL1dv https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL1dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL1dvEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL1i64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL1i64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL1ui64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL1ui64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL2d https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL2d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL2dEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL2dv https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL2dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL2dvEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL2i64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL2i64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL2ui64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL2ui64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL3d https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL3d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL3dEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL3dv https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL3dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL3dvEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL3i64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL3i64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL3ui64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL3ui64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL4d https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL4d https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL4dEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL4dv https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribL4dv https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribL4dvEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribL4i64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL4i64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL4ui64NV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribL4ui64vNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribLFormatNV https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt
+glVertexAttribLPointer https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+glVertexAttribLPointer https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml
+glVertexAttribLPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt
+glVertexAttribP1ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP1ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribP1ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribP1uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP2ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP2ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribP2ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribP2uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP3ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribP3ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP4ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribP4ui https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml
+glVertexAttribP4ui https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml
+glVertexAttribP4uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexAttribPointer https://www.opengl.org/sdk/docs/man/xhtml/glVertexAttribPointer.xml
+glVertexAttribPointer https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml
+glVertexAttribPointer https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml
+glVertexAttribPointerARB https://www.opengl.org/registry/specs/ARB/vertex_program.txt
+glVertexAttribPointerARB https://www.opengl.org/registry/specs/ARB/vertex_shader.txt
+glVertexAttribPointerNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs1dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs1fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs1hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttribs1svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs2dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs2fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs2hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttribs2svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs3dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs3fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs3hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttribs3svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs4dvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs4fvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs4hvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexAttribs4svNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexAttribs4ubvNV https://www.opengl.org/registry/specs/NV/vertex_program.txt
+glVertexBlendARB https://www.opengl.org/registry/specs/ARB/vertex_blend.txt
+glVertexFormatNV https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt
+glVertexP2ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexP2uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexP3ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexP3uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexP4ui https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexP4uiv https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt
+glVertexPointer https://www.opengl.org/sdk/docs/man/xhtml/glVertexPointer.xml
+glVertexPointerEXT https://www.opengl.org/registry/specs/EXT/vertex_array.txt
+glVertexPointervINTEL https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt
+glVertexWeighthNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVertexWeighthvNV https://www.opengl.org/registry/specs/NV/half_float.txt
+glVideoCaptureNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glViewport https://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml
+glViewport https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+glViewport https://www.opengl.org/sdk/docs/man4/html/glViewport.xhtml
+glViewportArrayv https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glViewportArrayv https://www.opengl.org/sdk/docs/man4/html/glViewportArray.xhtml
+glViewportIndexedf https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glViewportIndexedf https://www.opengl.org/sdk/docs/man4/html/glViewportIndexed.xhtml
+glViewportIndexedfv https://www.opengl.org/registry/specs/ARB/viewport_array.txt
+glViewportIndexedfv https://www.opengl.org/sdk/docs/man4/html/glViewportIndexed.xhtml
+glWaitSync https://www.opengl.org/registry/specs/ARB/sync.txt
+glWaitSync https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
+glWaitSync https://www.opengl.org/sdk/docs/man4/html/glWaitSync.xhtml
+glWeightPathsNV https://www.opengl.org/registry/specs/NV/path_rendering.txt
+glWeightPointerARB https://www.opengl.org/registry/specs/ARB/vertex_blend.txt
+glWindowPos2d https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2dARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2dMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2dv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2dvARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2dvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2f https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2fARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2fMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2fv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2fvARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2fvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2i https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2iARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2iMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2iv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2ivARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2ivMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2s https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2sARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2sMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos2sv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos2svARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos2svMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3d https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3dARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3dMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3dv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3dvARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3dvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3f https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3fARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3fMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3fv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3fvARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3fvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3i https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3iARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3iMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3iv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3ivARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3ivMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3s https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3sARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3sMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos3sv https://www.opengl.org/sdk/docs/man/xhtml/glWindowPos.xml
+glWindowPos3svARB https://www.opengl.org/registry/specs/ARB/window_pos.txt
+glWindowPos3svMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4dMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4dvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4fMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4fvMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4iMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4ivMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4sMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glWindowPos4svMESA https://www.opengl.org/registry/specs/MESA/window_pos.txt
+glXAssociateDMPbufferSGIX https://www.opengl.org/registry/specs/SGIX/dmbuffer.txt
+glXBindChannelToWindowSGIX https://www.opengl.org/registry/specs/SGIX/video_resize.txt
+glXBindHyperpipeSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXBindSwapBarrierNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXBindVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glXBindVideoDeviceNV https://www.opengl.org/registry/specs/NV/present_video.txt
+glXBlitContextFramebufferAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXChannelRectSGIX https://www.opengl.org/registry/specs/SGIX/video_resize.txt
+glXChannelRectSyncSGIX https://www.opengl.org/registry/specs/SGIX/video_resize.txt
+glXChooseFBConfig https://www.opengl.org/sdk/docs/man/xhtml/glXChooseFBConfig.xml
+glXChooseVisual https://www.opengl.org/sdk/docs/man/xhtml/glXChooseVisual.xml
+glXCopyContext https://www.opengl.org/sdk/docs/man/xhtml/glXCopyContext.xml
+glXCopySubBufferMESA https://www.opengl.org/registry/specs/MESA/copy_sub_buffer.txt
+glXCreateAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXCreateAssociatedContextAttribsAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXCreateContext https://www.opengl.org/sdk/docs/man/xhtml/glXCreateContext.xml
+glXCreateContextAttribsARB https://www.opengl.org/registry/specs/ARB/glx_create_context.txt
+glXCreateContextWithConfigSGIX https://www.opengl.org/registry/specs/SGIX/fbconfig.txt
+glXCreateGLXPbufferSGIX https://www.opengl.org/registry/specs/SGIX/pbuffer.txt
+glXCreateGLXPixmap https://www.opengl.org/sdk/docs/man/xhtml/glXCreateGLXPixmap.xml
+glXCreateGLXPixmapMESA https://www.opengl.org/registry/specs/MESA/pixmap_colormap.txt
+glXCreateGLXPixmapWithConfigSGIX https://www.opengl.org/registry/specs/SGIX/fbconfig.txt
+glXCreateGLXVideoSourceSGIX https://www.opengl.org/registry/specs/SGIX/video_source.txt
+glXCreateNewContext https://www.opengl.org/sdk/docs/man/xhtml/glXCreateNewContext.xml
+glXCreatePbuffer https://www.opengl.org/sdk/docs/man/xhtml/glXCreatePbuffer.xml
+glXCreatePixmap https://www.opengl.org/sdk/docs/man/xhtml/glXCreatePixmap.xml
+glXCreateWindow https://www.opengl.org/sdk/docs/man/xhtml/glXCreateWindow.xml
+glXCushionSGI https://www.opengl.org/registry/specs/SGI/cushion.txt
+glXDeleteAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXDestroyContext https://www.opengl.org/sdk/docs/man/xhtml/glXDestroyContext.xml
+glXDestroyGLXPbufferSGIX https://www.opengl.org/registry/specs/SGIX/pbuffer.txt
+glXDestroyGLXPixmap https://www.opengl.org/sdk/docs/man/xhtml/glXDestroyGLXPixmap.xml
+glXDestroyGLXVideoSourceSGIX https://www.opengl.org/registry/specs/SGIX/video_source.txt
+glXDestroyHyperpipeConfigSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXDestroyPbuffer https://www.opengl.org/sdk/docs/man/xhtml/glXDestroyPbuffer.xml
+glXDestroyPixmap https://www.opengl.org/sdk/docs/man/xhtml/glXDestroyPixmap.xml
+glXDestroyWindow https://www.opengl.org/sdk/docs/man/xhtml/glXDestroyWindow.xml
+glXEnumerateVideoCaptureDevicesNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glXFreeContextEXT https://www.opengl.org/registry/specs/EXT/import_context.txt
+glXFreeContextEXT https://www.opengl.org/sdk/docs/man/xhtml/glXFreeContextEXT.xml
+glXGetAGPOffsetMESA https://www.opengl.org/registry/specs/MESA/agp_offset.txt
+glXGetClientString https://www.opengl.org/sdk/docs/man/xhtml/glXGetClientString.xml
+glXGetConfig https://www.opengl.org/sdk/docs/man/xhtml/glXGetConfig.xml
+glXGetContextGPUIDAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXGetContextIDEXT https://www.opengl.org/registry/specs/EXT/import_context.txt
+glXGetContextIDEXT https://www.opengl.org/sdk/docs/man/xhtml/glXGetContextIDEXT.xml
+glXGetCurrentAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXGetCurrentContext https://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentContext.xml
+glXGetCurrentDisplay https://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentDisplay.xml
+glXGetCurrentDrawable https://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentDrawable.xml
+glXGetCurrentReadDrawable https://www.opengl.org/sdk/docs/man/xhtml/glXGetCurrentReadDrawable.xml
+glXGetCurrentReadDrawableSGI https://www.opengl.org/registry/specs/SGI/make_current_read.txt
+glXGetFBConfigAttrib https://www.opengl.org/sdk/docs/man/xhtml/glXGetFBConfigAttrib.xml
+glXGetFBConfigAttribSGIX https://www.opengl.org/registry/specs/SGIX/fbconfig.txt
+glXGetFBConfigFromVisualSGIX https://www.opengl.org/registry/specs/SGIX/fbconfig.txt
+glXGetFBConfigs https://www.opengl.org/sdk/docs/man/xhtml/glXGetFBConfigs.xml
+glXGetGPUIDsAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXGetGPUInfoAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXGetMscRateOML https://www.opengl.org/registry/specs/OML/glx_sync_control.txt
+glXGetProcAddress https://www.opengl.org/sdk/docs/man/xhtml/glXGetProcAddress.xml
+glXGetSelectedEvent https://www.opengl.org/sdk/docs/man/xhtml/glXGetSelectedEvent.xml
+glXGetSelectedEventSGIX https://www.opengl.org/registry/specs/SGIX/pbuffer.txt
+glXGetSyncValuesOML https://www.opengl.org/registry/specs/OML/glx_sync_control.txt
+glXGetTransparentIndexSUN https://www.opengl.org/registry/specs/SUN/get_transparent_index.txt
+glXGetVideoSyncSGI https://www.opengl.org/registry/specs/SGI/video_sync.txt
+glXGetVisualFromFBConfig https://www.opengl.org/sdk/docs/man/xhtml/glXGetVisualFromFBConfig.xml
+glXHyperpipeAttribSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXHyperpipeConfigSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXImportContextEXT https://www.opengl.org/registry/specs/EXT/import_context.txt
+glXImportContextEXT https://www.opengl.org/sdk/docs/man/xhtml/glXImportContextEXT.xml
+glXIsDirect https://www.opengl.org/sdk/docs/man/xhtml/glXIsDirect.xml
+glXJoinSwapGroupNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXLockVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glXMakeAssociatedContextCurrentAMD https://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
+glXMakeContextCurrent https://www.opengl.org/sdk/docs/man/xhtml/glXMakeContextCurrent.xml
+glXMakeCurrent https://www.opengl.org/sdk/docs/man/xhtml/glXMakeCurrent.xml
+glXMakeCurrentReadSGI https://www.opengl.org/registry/specs/SGI/make_current_read.txt
+glXQueryChannelDeltasSGIX https://www.opengl.org/registry/specs/SGIX/video_resize.txt
+glXQueryChannelRectSGIX https://www.opengl.org/registry/specs/SGIX/video_resize.txt
+glXQueryContext https://www.opengl.org/sdk/docs/man/xhtml/glXQueryContext.xml
+glXQueryContextInfoEXT https://www.opengl.org/registry/specs/EXT/import_context.txt
+glXQueryContextInfoEXT https://www.opengl.org/sdk/docs/man/xhtml/glXQueryContextInfoEXT.xml
+glXQueryDrawable https://www.opengl.org/sdk/docs/man/xhtml/glXQueryDrawable.xml
+glXQueryExtension https://www.opengl.org/sdk/docs/man/xhtml/glXQueryExtension.xml
+glXQueryExtensionsString https://www.opengl.org/sdk/docs/man/xhtml/glXQueryExtensionsString.xml
+glXQueryFrameCountNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXQueryGLXPbufferSGIX https://www.opengl.org/registry/specs/SGIX/pbuffer.txt
+glXQueryHyperpipeAttribSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXQueryHyperpipeBestAttribSGIX https://www.opengl.org/registry/specs/SGIX/hyperpipe_group.txt
+glXQueryMaxSwapGroupsNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXQueryServerString https://www.opengl.org/sdk/docs/man/xhtml/glXQueryServerString.xml
+glXQuerySwapGroupNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXQueryVersion https://www.opengl.org/sdk/docs/man/xhtml/glXQueryVersion.xml
+glXQueryVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glXReleaseBuffersMESA https://www.opengl.org/registry/specs/MESA/release_buffers.txt
+glXReleaseVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+glXResetFrameCountNV https://www.opengl.org/registry/specs/NV/glx_swap_group.txt
+glXSelectEvent https://www.opengl.org/sdk/docs/man/xhtml/glXSelectEvent.xml
+glXSelectEventSGIX https://www.opengl.org/registry/specs/SGIX/pbuffer.txt
+glXSet3DfxModeMESA https://www.opengl.org/registry/specs/MESA/set_3dfx_mode.txt
+glXSwapBuffers https://www.opengl.org/sdk/docs/man/xhtml/glXSwapBuffers.xml
+glXSwapBuffersMscOML https://www.opengl.org/registry/specs/OML/glx_sync_control.txt
+glXSwapIntervalEXT https://www.opengl.org/registry/specs/EXT/swap_control.txt
+glXSwapIntervalSGI https://www.opengl.org/registry/specs/SGI/swap_control.txt
+glXUseXFont https://www.opengl.org/sdk/docs/man/xhtml/glXUseXFont.xml
+glXWaitForMscOML https://www.opengl.org/registry/specs/OML/glx_sync_control.txt
+glXWaitForSbcOML https://www.opengl.org/registry/specs/OML/glx_sync_control.txt
+glXWaitGL https://www.opengl.org/sdk/docs/man/xhtml/glXWaitGL.xml
+glXWaitVideoSyncSGI https://www.opengl.org/registry/specs/SGI/video_sync.txt
+glXWaitX https://www.opengl.org/sdk/docs/man/xhtml/glXWaitX.xml
+gluBeginCurve https://www.opengl.org/sdk/docs/man/xhtml/gluBeginCurve.xml
+gluBeginPolygon https://www.opengl.org/sdk/docs/man/xhtml/gluBeginPolygon.xml
+gluBeginSurface https://www.opengl.org/sdk/docs/man/xhtml/gluBeginSurface.xml
+gluBeginTrim https://www.opengl.org/sdk/docs/man/xhtml/gluBeginTrim.xml
+gluBuild1DMipmapLevels https://www.opengl.org/sdk/docs/man/xhtml/gluBuild1DMipmapLevels.xml
+gluBuild1DMipmaps https://www.opengl.org/sdk/docs/man/xhtml/gluBuild1DMipmaps.xml
+gluBuild2DMipmapLevels https://www.opengl.org/sdk/docs/man/xhtml/gluBuild2DMipmapLevels.xml
+gluBuild2DMipmaps https://www.opengl.org/sdk/docs/man/xhtml/gluBuild2DMipmaps.xml
+gluBuild3DMipmapLevels https://www.opengl.org/sdk/docs/man/xhtml/gluBuild3DMipmapLevels.xml
+gluBuild3DMipmaps https://www.opengl.org/sdk/docs/man/xhtml/gluBuild3DMipmaps.xml
+gluCheckExtension https://www.opengl.org/sdk/docs/man/xhtml/gluCheckExtension.xml
+gluCylinder https://www.opengl.org/sdk/docs/man/xhtml/gluCylinder.xml
+gluDeleteNurbsRenderer https://www.opengl.org/sdk/docs/man/xhtml/gluDeleteNurbsRenderer.xml
+gluDeleteQuadric https://www.opengl.org/sdk/docs/man/xhtml/gluDeleteQuadric.xml
+gluDeleteTess https://www.opengl.org/sdk/docs/man/xhtml/gluDeleteTess.xml
+gluDisk https://www.opengl.org/sdk/docs/man/xhtml/gluDisk.xml
+gluEndCurve https://www.opengl.org/sdk/docs/man/xhtml/gluBeginCurve.xml
+gluEndPolygon https://www.opengl.org/sdk/docs/man/xhtml/gluBeginPolygon.xml
+gluEndSurface https://www.opengl.org/sdk/docs/man/xhtml/gluBeginSurface.xml
+gluEndTrim https://www.opengl.org/sdk/docs/man/xhtml/gluBeginTrim.xml
+gluErrorString https://www.opengl.org/sdk/docs/man/xhtml/gluErrorString.xml
+gluGetNurbsProperty https://www.opengl.org/sdk/docs/man/xhtml/gluGetNurbsProperty.xml
+gluGetString https://www.opengl.org/sdk/docs/man/xhtml/gluGetString.xml
+gluGetTessProperty https://www.opengl.org/sdk/docs/man/xhtml/gluGetTessProperty.xml
+gluLoadSamplingMatrices https://www.opengl.org/sdk/docs/man/xhtml/gluLoadSamplingMatrices.xml
+gluLookAt https://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml
+gluNewNurbsRenderer https://www.opengl.org/sdk/docs/man/xhtml/gluNewNurbsRenderer.xml
+gluNewQuadric https://www.opengl.org/sdk/docs/man/xhtml/gluNewQuadric.xml
+gluNewTess https://www.opengl.org/sdk/docs/man/xhtml/gluNewTess.xml
+gluNextContour https://www.opengl.org/sdk/docs/man/xhtml/gluNextContour.xml
+gluNurbsCallback https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallback.xml
+gluNurbsCallbackData https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallbackData.xml
+gluNurbsCallbackDataEXT https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCallbackDataEXT.xml
+gluNurbsCurve https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsCurve.xml
+gluNurbsProperty https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsProperty.xml
+gluNurbsSurface https://www.opengl.org/sdk/docs/man/xhtml/gluNurbsSurface.xml
+gluOrtho2D https://www.opengl.org/sdk/docs/man/xhtml/gluOrtho2D.xml
+gluPartialDisk https://www.opengl.org/sdk/docs/man/xhtml/gluPartialDisk.xml
+gluPerspective https://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml
+gluPickMatrix https://www.opengl.org/sdk/docs/man/xhtml/gluPickMatrix.xml
+gluProject https://www.opengl.org/sdk/docs/man/xhtml/gluProject.xml
+gluPwlCurve https://www.opengl.org/sdk/docs/man/xhtml/gluPwlCurve.xml
+gluQuadricCallback https://www.opengl.org/sdk/docs/man/xhtml/gluQuadricCallback.xml
+gluQuadricDrawStyle https://www.opengl.org/sdk/docs/man/xhtml/gluQuadricDrawStyle.xml
+gluQuadricNormals https://www.opengl.org/sdk/docs/man/xhtml/gluQuadricNormals.xml
+gluQuadricOrientation https://www.opengl.org/sdk/docs/man/xhtml/gluQuadricOrientation.xml
+gluQuadricTexture https://www.opengl.org/sdk/docs/man/xhtml/gluQuadricTexture.xml
+gluScaleImage https://www.opengl.org/sdk/docs/man/xhtml/gluScaleImage.xml
+gluSphere https://www.opengl.org/sdk/docs/man/xhtml/gluSphere.xml
+gluTessBeginContour https://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginContour.xml
+gluTessBeginPolygon https://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginPolygon.xml
+gluTessCallback https://www.opengl.org/sdk/docs/man/xhtml/gluTessCallback.xml
+gluTessEndContour https://www.opengl.org/sdk/docs/man/xhtml/gluTessBeginContour.xml
+gluTessEndPolygon https://www.opengl.org/sdk/docs/man/xhtml/gluTessEndPolygon.xml
+gluTessNormal https://www.opengl.org/sdk/docs/man/xhtml/gluTessNormal.xml
+gluTessProperty https://www.opengl.org/sdk/docs/man/xhtml/gluTessProperty.xml
+gluTessVertex https://www.opengl.org/sdk/docs/man/xhtml/gluTessVertex.xml
+gluTexFilterFuncSGI https://www.opengl.org/registry/specs/SGI/filter4_parameters.txt
+gluUnProject https://www.opengl.org/sdk/docs/man/xhtml/gluUnProject.xml
+gluUnProject4 https://www.opengl.org/sdk/docs/man/xhtml/gluUnProject4.xml
+sizeof https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt
+wglAssociateImageBufferEventsI3D https://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
+wglBeginFrameTrackingI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
+wglBindDisplayColorTableEXT https://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
+wglBindSwapBarrierNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglBindVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+wglBindVideoDeviceNV https://www.opengl.org/registry/specs/NV/present_video.txt
+wglBlitContextFramebufferAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
wglChoosePixelFormat http://msdn.microsoft.com/en-us/library/dd318284.aspx
-wglChoosePixelFormatARB http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
-wglChoosePixelFormatEXT http://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
+wglChoosePixelFormatARB https://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
+wglChoosePixelFormatEXT https://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
wglCopyContext http://msdn.microsoft.com/en-us/library/dd374378.aspx
-wglCreateAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglCreateAssociatedContextAttribsAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglCreateBufferRegionARB http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
+wglCreateAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglCreateAssociatedContextAttribsAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglCreateBufferRegionARB https://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
wglCreateContext http://msdn.microsoft.com/en-us/library/dd374379.aspx
-wglCreateContextAttribsARB http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
-wglCreateDisplayColorTableEXT http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
-wglCreateImageBufferI3D http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
+wglCreateContextAttribsARB https://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
+wglCreateDisplayColorTableEXT https://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
+wglCreateImageBufferI3D https://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
wglCreateLayerContext http://msdn.microsoft.com/en-us/library/dd374380.aspx
-wglCreatePbufferARB http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-wglCreatePbufferEXT http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
-wglDXCloseDeviceNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXLockObjectsNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXObjectAccessNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXOpenDeviceNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXRegisterObjectNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXSetResourceShareHandleNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXUnlockObjectsNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDXUnregisterObjectNV http://www.opengl.org/registry/specs/NV/DX_interop.txt
-wglDeleteAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglDeleteBufferRegionARB http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
+wglCreatePbufferARB https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+wglCreatePbufferEXT https://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
+wglDXCloseDeviceNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXLockObjectsNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXObjectAccessNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXOpenDeviceNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXRegisterObjectNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXSetResourceShareHandleNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXUnlockObjectsNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDXUnregisterObjectNV https://www.opengl.org/registry/specs/NV/DX_interop.txt
+wglDeleteAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglDeleteBufferRegionARB https://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
wglDeleteContext http://msdn.microsoft.com/en-us/library/dd374381.aspx
wglDescribeLayerPlane http://msdn.microsoft.com/en-us/library/dd374382.aspx
wglDescribePixelFormat http://msdn.microsoft.com/en-us/library/dd318302.aspx
-wglDestroyDisplayColorTableEXT http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
-wglDestroyImageBufferI3D http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
-wglDestroyPbufferARB http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-wglDestroyPbufferEXT http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
-wglDisableFrameLockI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
-wglDisableGenlockI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglEnableFrameLockI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
-wglEnableGenlockI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglEndFrameTrackingI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
-wglEnumerateVideoCaptureDevicesNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-wglEnumerateVideoDevicesNV http://www.opengl.org/registry/specs/NV/present_video.txt
-wglGenlockSampleRateI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGenlockSourceDelayI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGenlockSourceEdgeI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGenlockSourceI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGetContextGPUIDAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglGetCurrentAssociatedContextAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglDestroyDisplayColorTableEXT https://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
+wglDestroyImageBufferI3D https://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
+wglDestroyPbufferARB https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+wglDestroyPbufferEXT https://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
+wglDisableFrameLockI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
+wglDisableGenlockI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglEnableFrameLockI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
+wglEnableGenlockI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglEndFrameTrackingI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
+wglEnumerateVideoCaptureDevicesNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+wglEnumerateVideoDevicesNV https://www.opengl.org/registry/specs/NV/present_video.txt
+wglGenlockSampleRateI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGenlockSourceDelayI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGenlockSourceEdgeI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGenlockSourceI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGetContextGPUIDAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglGetCurrentAssociatedContextAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
wglGetCurrentContext http://msdn.microsoft.com/en-us/library/dd374383.aspx
wglGetCurrentDC http://msdn.microsoft.com/en-us/library/dd374384.aspx
-wglGetCurrentReadDCARB http://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt
-wglGetCurrentReadDCEXT http://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt
-wglGetDigitalVideoParametersI3D http://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt
-wglGetFrameUsageI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
-wglGetGPUIDsAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglGetGPUInfoAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglGetGammaTableI3D http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
-wglGetGammaTableParametersI3D http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
-wglGetGenlockSampleRateI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGetGenlockSourceDelayI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGetGenlockSourceEdgeI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglGetGenlockSourceI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGetCurrentReadDCARB https://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt
+wglGetCurrentReadDCEXT https://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt
+wglGetDigitalVideoParametersI3D https://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt
+wglGetFrameUsageI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
+wglGetGPUIDsAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglGetGPUInfoAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglGetGammaTableI3D https://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
+wglGetGammaTableParametersI3D https://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
+wglGetGenlockSampleRateI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGetGenlockSourceDelayI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGetGenlockSourceEdgeI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglGetGenlockSourceI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
wglGetLayerPaletteEntries http://msdn.microsoft.com/en-us/library/dd374385.aspx
-wglGetMscRateOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
-wglGetPbufferDCARB http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-wglGetPbufferDCEXT http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
+wglGetMscRateOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglGetPbufferDCARB https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+wglGetPbufferDCEXT https://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
wglGetPixelFormat http://msdn.microsoft.com/en-us/library/dd318349.aspx
-wglGetPixelFormatAttribfvARB http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
-wglGetPixelFormatAttribfvEXT http://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
-wglGetPixelFormatAttribivARB http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
-wglGetPixelFormatAttribivEXT http://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
+wglGetPixelFormatAttribfvARB https://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
+wglGetPixelFormatAttribfvEXT https://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
+wglGetPixelFormatAttribivARB https://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
+wglGetPixelFormatAttribivEXT https://www.opengl.org/registry/specs/EXT/wgl_pixel_format.txt
wglGetProcAddress http://msdn.microsoft.com/en-us/library/dd374386.aspx
-wglGetSwapIntervalEXT http://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt
-wglGetSyncValuesOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
-wglIsEnabledFrameLockI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
-wglIsEnabledGenlockI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglJoinSwapGroupNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglLoadDisplayColorTableEXT http://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
-wglLockVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-wglMakeAssociatedContextCurrentAMD http://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
-wglMakeContextCurrentARB http://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt
-wglMakeContextCurrentEXT http://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt
+wglGetSwapIntervalEXT https://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt
+wglGetSyncValuesOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglIsEnabledFrameLockI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
+wglIsEnabledGenlockI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglJoinSwapGroupNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglLoadDisplayColorTableEXT https://www.opengl.org/registry/specs/EXT/wgl_display_color_table.txt
+wglLockVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+wglMakeAssociatedContextCurrentAMD https://www.opengl.org/registry/specs/AMD/wgl_gpu_association.txt
+wglMakeContextCurrentARB https://www.opengl.org/registry/specs/ARB/wgl_make_current_read.txt
+wglMakeContextCurrentEXT https://www.opengl.org/registry/specs/EXT/wgl_make_current_read.txt
wglMakeCurrent http://msdn.microsoft.com/en-us/library/dd374387.aspx
-wglQueryCurrentContextNV http://www.opengl.org/registry/specs/NV/present_video.txt
-wglQueryFrameCountNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglQueryFrameLockMasterI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
-wglQueryFrameTrackingI3D http://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
-wglQueryGenlockMaxSourceDelayI3D http://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
-wglQueryMaxSwapGroupsNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglQueryPbufferARB http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-wglQueryPbufferEXT http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
-wglQuerySwapGroupNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglQueryVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
+wglQueryCurrentContextNV https://www.opengl.org/registry/specs/NV/present_video.txt
+wglQueryFrameCountNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglQueryFrameLockMasterI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_lock.txt
+wglQueryFrameTrackingI3D https://www.opengl.org/registry/specs/I3D/wgl_swap_frame_usage.txt
+wglQueryGenlockMaxSourceDelayI3D https://www.opengl.org/registry/specs/I3D/wgl_genlock.txt
+wglQueryMaxSwapGroupsNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglQueryPbufferARB https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+wglQueryPbufferEXT https://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
+wglQuerySwapGroupNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglQueryVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
wglRealizeLayerPalette http://msdn.microsoft.com/en-us/library/dd374388.aspx
-wglReleaseImageBufferEventsI3D http://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
-wglReleasePbufferDCARB http://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
-wglReleasePbufferDCEXT http://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
-wglReleaseVideoCaptureDeviceNV http://www.opengl.org/registry/specs/NV/video_capture.txt
-wglResetFrameCountNV http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
-wglRestoreBufferRegionARB http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
-wglSaveBufferRegionARB http://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
-wglSetDigitalVideoParametersI3D http://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt
-wglSetGammaTableI3D http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
-wglSetGammaTableParametersI3D http://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
+wglReleaseImageBufferEventsI3D https://www.opengl.org/registry/specs/I3D/wgl_image_buffer.txt
+wglReleasePbufferDCARB https://www.opengl.org/registry/specs/ARB/wgl_pbuffer.txt
+wglReleasePbufferDCEXT https://www.opengl.org/registry/specs/EXT/wgl_pbuffer.txt
+wglReleaseVideoCaptureDeviceNV https://www.opengl.org/registry/specs/NV/video_capture.txt
+wglResetFrameCountNV https://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
+wglRestoreBufferRegionARB https://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
+wglSaveBufferRegionARB https://www.opengl.org/registry/specs/ARB/wgl_buffer_region.txt
+wglSetDigitalVideoParametersI3D https://www.opengl.org/registry/specs/I3D/wgl_digital_video_control.txt
+wglSetGammaTableI3D https://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
+wglSetGammaTableParametersI3D https://www.opengl.org/registry/specs/I3D/wgl_gamma.txt
wglSetLayerPaletteEntries http://msdn.microsoft.com/en-us/library/dd374389.aspx
wglSetPixelFormat http://msdn.microsoft.com/en-us/library/dd369049.aspx
-wglSetStereoEmitterState3DL http://www.opengl.org/registry/specs/3DL/stereo_control.txt
+wglSetStereoEmitterState3DL https://www.opengl.org/registry/specs/3DL/stereo_control.txt
wglShareLists http://msdn.microsoft.com/en-us/library/dd374390.aspx
wglSwapBuffers http://msdn.microsoft.com/en-us/library/dd369060.aspx
-wglSwapBuffersMscOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
-wglSwapIntervalEXT http://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt
+wglSwapBuffersMscOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglSwapIntervalEXT https://www.opengl.org/registry/specs/EXT/wgl_swap_control.txt
wglSwapLayerBuffers http://msdn.microsoft.com/en-us/library/dd374391.aspx
-wglSwapLayerBuffersMscOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglSwapLayerBuffersMscOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
wglUseFontBitmaps http://msdn.microsoft.com/en-us/library/dd374392.aspx
wglUseFontOutlines http://msdn.microsoft.com/en-us/library/dd374393.aspx
-wglWaitForMscOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
-wglWaitForSbcOML http://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglWaitForMscOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
+wglWaitForSbcOML https://www.opengl.org/registry/specs/OML/wgl_sync_control.txt
diff --git a/gui/retracer.cpp b/gui/retracer.cpp
index f3f1feb8..02f01454 100644
--- a/gui/retracer.cpp
+++ b/gui/retracer.cpp
@@ -12,7 +12,8 @@
#include <QList>
#include <QImage>
-#include <qjson/parser.h>
+#include "qubjson.h"
+
/**
* Wrapper around a QProcess which enforces IO to block .
@@ -137,7 +138,8 @@ Retracer::Retracer(QObject *parent)
m_captureCall(0),
m_profileGpu(false),
m_profileCpu(false),
- m_profilePixels(false)
+ m_profilePixels(false),
+ m_profileMemory(false)
{
qRegisterMetaType<QList<ApiTraceError> >();
}
@@ -222,16 +224,22 @@ bool Retracer::isProfilingPixels() const
return m_profilePixels;
}
+bool Retracer::isProfilingMemory() const
+{
+ return m_profileMemory;
+}
+
bool Retracer::isProfiling() const
{
- return m_profileGpu || m_profileCpu || m_profilePixels;
+ return m_profileGpu || m_profileCpu || m_profilePixels | m_profileMemory;
}
-void Retracer::setProfiling(bool gpu, bool cpu, bool pixels)
+void Retracer::setProfiling(bool gpu, bool cpu, bool pixels, bool memory)
{
m_profileGpu = gpu;
m_profileCpu = cpu;
m_profilePixels = pixels;
+ m_profileMemory = memory;
}
void Retracer::setCaptureAtCallNumber(qlonglong num)
@@ -264,46 +272,44 @@ void Retracer::setCaptureThumbnails(bool enable)
m_captureThumbnails = enable;
}
-/**
- * Starting point for the retracing thread.
- *
- * Overrides QThread::run().
- */
-void Retracer::run()
+void Retracer::addThumbnailToCapture(qlonglong num)
{
- QString msg = QLatin1String("Replay finished!");
+ if (!m_thumbnailsToCapture.contains(num)) {
+ m_thumbnailsToCapture.append(num);
+ }
+}
- /*
- * Construct command line
- */
+void Retracer::resetThumbnailsToCapture()
+{
+ m_thumbnailsToCapture.clear();
+}
- QString prog;
- QStringList arguments;
+QString Retracer::thumbnailCallSet() const
+{
+ QString callSet;
- switch (m_api) {
- case trace::API_GL:
- prog = QLatin1String("glretrace");
- break;
- case trace::API_EGL:
- prog = QLatin1String("eglretrace");
- break;
- case trace::API_DX:
- case trace::API_D3D7:
- case trace::API_D3D8:
- case trace::API_D3D9:
- case trace::API_DXGI:
-#ifdef Q_OS_WIN
- prog = QLatin1String("d3dretrace");
-#else
- prog = QLatin1String("wine");
- arguments << QLatin1String("d3dretrace.exe");
-#endif
- break;
- default:
- emit finished(QLatin1String("Unsupported API"));
- return;
+ bool isFirst = true;
+
+ foreach (qlonglong callIndex, m_thumbnailsToCapture) {
+ // TODO: detect contiguous ranges
+ if (!isFirst) {
+ callSet.append(QLatin1String(","));
+ } else {
+ isFirst = false;
+ }
+
+ //emit "callIndex"
+ callSet.append(QString::number(callIndex));
}
+ //qDebug() << QLatin1String("debug: call set to capture: ") << callSet;
+ return callSet;
+}
+
+QStringList Retracer::retraceArguments() const
+{
+ QStringList arguments;
+
if (m_singlethread) {
arguments << QLatin1String("--singlethread");
}
@@ -315,7 +321,13 @@ void Retracer::run()
if (m_captureState) {
arguments << QLatin1String("-D");
arguments << QString::number(m_captureCall);
+ arguments << QLatin1String("--dump-format");
+ arguments << QLatin1String("ubjson");
} else if (m_captureThumbnails) {
+ if (!m_thumbnailsToCapture.isEmpty()) {
+ arguments << QLatin1String("-S");
+ arguments << thumbnailCallSet();
+ }
arguments << QLatin1String("-s"); // emit snapshots
arguments << QLatin1String("-"); // emit to stdout
} else if (isProfiling()) {
@@ -330,19 +342,65 @@ void Retracer::run()
if (m_profilePixels) {
arguments << QLatin1String("--ppd");
}
+
+ if (m_profileMemory) {
+ arguments << QLatin1String("--pmem");
+ }
} else {
- if (m_doubleBuffered) {
- arguments << QLatin1String("--db");
- } else {
+ if (!m_doubleBuffered) {
arguments << QLatin1String("--sb");
}
if (m_benchmarking) {
arguments << QLatin1String("-b");
+ } else {
+ arguments << QLatin1String("-d");
}
}
+ return arguments;
+}
- arguments << m_fileName;
+/**
+ * Starting point for the retracing thread.
+ *
+ * Overrides QThread::run().
+ */
+void Retracer::run()
+{
+ QString msg = QLatin1String("Replay finished!");
+
+ /*
+ * Construct command line
+ */
+
+ QString prog;
+ QStringList arguments;
+
+ switch (m_api) {
+ case trace::API_GL:
+ prog = QLatin1String("glretrace");
+ break;
+ case trace::API_EGL:
+ prog = QLatin1String("eglretrace");
+ break;
+ case trace::API_DX:
+ case trace::API_D3D7:
+ case trace::API_D3D8:
+ case trace::API_D3D9:
+ case trace::API_DXGI:
+#ifdef Q_OS_WIN
+ prog = QLatin1String("d3dretrace");
+#else
+ prog = QLatin1String("wine");
+ arguments << QLatin1String("d3dretrace.exe");
+#endif
+ break;
+ default:
+ emit finished(QLatin1String("Unsupported API"));
+ return;
+ }
+
+ arguments << retraceArguments() << m_fileName;
/*
* Support remote execution on a separate target.
@@ -358,6 +416,15 @@ void Retracer::run()
* Start the process.
*/
+ {
+ QDebug debug(QtDebugMsg);
+ debug << "Running:";
+ debug << prog;
+ foreach (const QString &argument, arguments) {
+ debug << argument;
+ }
+ }
+
QProcess process;
process.start(prog, arguments, QIODevice::ReadOnly);
@@ -370,7 +437,7 @@ void Retracer::run()
* Process standard output
*/
- QList<QImage> thumbnails;
+ ImageHash thumbnails;
QVariantMap parsedJson;
trace::Profile* profile = NULL;
@@ -379,32 +446,8 @@ void Retracer::run()
BlockingIODevice io(&process);
if (m_captureState) {
- /*
- * Parse JSON from the output.
- *
- * XXX: QJSON's scanner is inneficient as it abuses single
- * character QIODevice::peek (not cheap), instead of maintaining a
- * lookahead character on its own.
- */
-
- bool ok = false;
- QJson::Parser jsonParser;
-
- // Allow Nan/Infinity
- jsonParser.allowSpecialNumbers(true);
-#if 0
- parsedJson = jsonParser.parse(&io, &ok).toMap();
-#else
- /*
- * XXX: QJSON expects blocking IO, and it looks like
- * BlockingIODevice does not work reliably in all cases.
- */
+ parsedJson = decodeUBJSONObject(&io).toMap();
process.waitForFinished(-1);
- parsedJson = jsonParser.parse(&process, &ok).toMap();
-#endif
- if (!ok) {
- msg = QLatin1String("failed to parse JSON");
- }
} else if (m_captureThumbnails) {
/*
* Parse concatenated PNM images from output.
@@ -454,7 +497,7 @@ void Retracer::run()
}
QImage thumb = thumbnail(snapshot);
- thumbnails.append(thumb);
+ thumbnails.insert(info.commentNumber, thumb);
}
Q_ASSERT(process.state() != QProcess::Running);
diff --git a/gui/retracer.h b/gui/retracer.h
index 4e92642b..bd395e2c 100644
--- a/gui/retracer.h
+++ b/gui/retracer.h
@@ -1,7 +1,7 @@
-#ifndef RETRACER_H
-#define RETRACER_H
+#pragma once
#include "trace_api.hpp"
+#include "apitrace.h"
#include "apitracecall.h"
#include <QThread>
@@ -40,8 +40,9 @@ public:
bool isProfilingGpu() const;
bool isProfilingCpu() const;
bool isProfilingPixels() const;
+ bool isProfilingMemory() const;
bool isProfiling() const;
- void setProfiling(bool gpu, bool cpu, bool pixels);
+ void setProfiling(bool gpu, bool cpu, bool pixels, bool memory);
void setCaptureAtCallNumber(qlonglong num);
qlonglong captureAtCallNumber() const;
@@ -52,11 +53,17 @@ public:
bool captureThumbnails() const;
void setCaptureThumbnails(bool enable);
+ void addThumbnailToCapture(qlonglong num);
+ void resetThumbnailsToCapture();
+ QString thumbnailCallSet() const;
+
+ QStringList retraceArguments() const;
+
signals:
void finished(const QString &output);
void foundState(ApiTraceState *state);
void foundProfile(trace::Profile *profile);
- void foundThumbnails(const QList<QImage> &thumbnails);
+ void foundThumbnails(const ImageHash &thumbnails);
void error(const QString &msg);
void retraceErrors(const QList<ApiTraceError> &errors);
@@ -77,6 +84,9 @@ private:
bool m_profileGpu;
bool m_profileCpu;
bool m_profilePixels;
-};
+ bool m_profileMemory;
-#endif
+ QProcessEnvironment m_processEnvironment;
+
+ QList<qlonglong> m_thumbnailsToCapture;
+};
diff --git a/gui/saverthread.cpp b/gui/saverthread.cpp
index 4ad83c58..e9e5a3fa 100644
--- a/gui/saverthread.cpp
+++ b/gui/saverthread.cpp
@@ -253,6 +253,16 @@ public:
m_editedValue = new trace::String(newString);
}
+ virtual void visit(trace::WString *node)
+ {
+ QString str = m_variant.toString();
+ size_t len = str.length();
+ wchar_t *newString = new wchar_t[len + 1];
+ str.toWCharArray(newString);
+ newString[len] = 0;
+ m_editedValue = new trace::WString(newString);
+ }
+
virtual void visit(trace::Enum *e)
{
m_editedValue = e;
@@ -364,6 +374,7 @@ void SaverThread::run()
} else {
writer.writeCall(call);
}
+ delete call;
}
writer.close();
diff --git a/gui/saverthread.h b/gui/saverthread.h
index e8c6889f..f53296e1 100644
--- a/gui/saverthread.h
+++ b/gui/saverthread.h
@@ -1,5 +1,4 @@
-#ifndef SAVERTHREAD_H
-#define SAVERTHREAD_H
+#pragma once
#include "apitrace.h"
@@ -31,6 +30,3 @@ private:
QString m_writeFileName;
QSet<ApiTraceCall*> m_editedCalls;
};
-
-
-#endif
diff --git a/gui/searchwidget.h b/gui/searchwidget.h
index f59b4a0c..6415ef28 100644
--- a/gui/searchwidget.h
+++ b/gui/searchwidget.h
@@ -1,5 +1,4 @@
-#ifndef SEARCHWIDGET_H
-#define SEARCHWIDGET_H
+#pragma once
#include "ui_searchwidget.h"
#include <QPalette>
@@ -34,5 +33,3 @@ private:
Ui_SearchWidget m_ui;
QPalette m_origPalette;
};
-
-#endif
diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp
index c44b1074..0f6f1c9c 100644
--- a/gui/settingsdialog.cpp
+++ b/gui/settingsdialog.cpp
@@ -1,6 +1,8 @@
#include "settingsdialog.h"
+#include <QFileDialog>
#include <QMessageBox>
+#include <QSettings>
SettingsDialog::SettingsDialog(QWidget *parent)
: QDialog(parent),
@@ -27,6 +29,26 @@ SettingsDialog::SettingsDialog(QWidget *parent)
connect(showFilterEdit, SIGNAL(textEdited(const QString &)),
SLOT(regexpChanged(const QString&)));
+ connect(adbPathEdit, SIGNAL(textEdited(const QString &)),
+ SLOT(adbPathChanged(const QString&)));
+
+
+ {
+ QSettings s;
+ s.beginGroup(QLatin1String("android"));
+ adbPathEdit->setText(s.value(QLatin1String("adbPath"), adbPathEdit->text()).toString());
+ stdoutPort->setValue(s.value(QLatin1String("stdoutPort"), stdoutPort->value()).toInt());
+ stderrPort->setValue(s.value(QLatin1String("stderrPort"), stderrPort->value()).toInt());
+ s.endGroup();
+ }
+
+ connect(chooseAdbPath, SIGNAL(clicked()),
+ SLOT(chooseAdbPathPushed()));
+ connect(stdoutPort, SIGNAL(valueChanged(int)),
+ SLOT(stdoutPortChanged(int)));
+ connect(stderrPort, SIGNAL(valueChanged(int)),
+ SLOT(stderrPortChanged(int)));
+
showFilterCB->setCurrentIndex(0);
showFilterEdit->setText(m_showFilters.constBegin().value().pattern());
}
@@ -139,6 +161,44 @@ void SettingsDialog::regexpChanged(const QString &pattern)
}
}
+void SettingsDialog::adbPathChanged(const QString &adbPath)
+{
+ QSettings s;
+ s.beginGroup(QLatin1String("android"));
+ s.setValue(QLatin1String("adbPath"), adbPath);
+ s.endGroup();
+}
+
+void SettingsDialog::chooseAdbPathPushed()
+{
+ QString fileName = QFileDialog::getOpenFileName(this,
+ tr("Choose adb path"), adbPathEdit->text(), QLatin1String("ADB (adb"
+#ifdef Q_OS_WIN
+ ".exe"
+#endif
+ ")"));
+ if (!fileName.isEmpty()) {
+ adbPathEdit->setText(fileName);
+ adbPathChanged(fileName);
+ }
+}
+
+void SettingsDialog::stdoutPortChanged(int port)
+{
+ QSettings s;
+ s.beginGroup(QLatin1String("android"));
+ s.setValue(QLatin1String("stdoutPort"), port);
+ s.endGroup();
+}
+
+void SettingsDialog::stderrPortChanged(int port)
+{
+ QSettings s;
+ s.beginGroup(QLatin1String("android"));
+ s.setValue(QLatin1String("stderrPort"), port);
+ s.endGroup();
+}
+
void SettingsDialog::setFilterModel(ApiTraceFilter *filter)
{
m_filter = filter;
diff --git a/gui/settingsdialog.h b/gui/settingsdialog.h
index b676b9df..aa2db34f 100644
--- a/gui/settingsdialog.h
+++ b/gui/settingsdialog.h
@@ -1,5 +1,4 @@
-#ifndef SETTINGSDIALOG_H
-#define SETTINGSDIALOG_H
+#pragma once
#include "trace_api.hpp"
#include "apitracefilter.h"
@@ -16,16 +15,20 @@ public:
void accept();
void setFilterModel(ApiTraceFilter *filter);
+
private slots:
void changeRegexp(const QString &name);
void regexpChanged(const QString &pattern);
+ void adbPathChanged(const QString &adbPath);
+ void chooseAdbPathPushed();
+ void stdoutPortChanged(int port);
+ void stderrPortChanged(int port);
private:
void filtersFromModel(const ApiTraceFilter *model);
void filtersToModel(ApiTraceFilter *model);
+
private:
QMap<QString, QRegExp> m_showFilters;
ApiTraceFilter *m_filter;
};
-
-#endif
diff --git a/gui/shaderssourcewidget.h b/gui/shaderssourcewidget.h
index 9a5c3228..d40ea6e8 100644
--- a/gui/shaderssourcewidget.h
+++ b/gui/shaderssourcewidget.h
@@ -1,5 +1,4 @@
-#ifndef SHADERSSOURCEWIDGET_H
-#define SHADERSSOURCEWIDGET_H
+#pragma once
#include "ui_shaderssourcewidget.h"
#include <QWidget>
@@ -22,5 +21,3 @@ private:
QMap<QString, QString> m_sources;
GLSLEdit *m_edit;
};
-
-#endif
diff --git a/gui/thumbnail.h b/gui/thumbnail.h
index 23155648..9cf8fca6 100644
--- a/gui/thumbnail.h
+++ b/gui/thumbnail.h
@@ -1,5 +1,4 @@
-#ifndef THUMBNAIL_H
-#define THUMBNAIL_H
+#pragma once
#define THUMBNAIL_SIZE 64
@@ -9,5 +8,3 @@ inline QImage
thumbnail(const QImage &image, Qt::TransformationMode transformationMode = Qt::FastTransformation) {
return image.scaled(THUMBNAIL_SIZE, THUMBNAIL_SIZE, Qt::KeepAspectRatio, transformationMode);
}
-
-#endif
diff --git a/gui/tracedialog.h b/gui/tracedialog.h
index 0ebe13ad..cf45833d 100644
--- a/gui/tracedialog.h
+++ b/gui/tracedialog.h
@@ -1,5 +1,4 @@
-#ifndef TRACEDIALOG_H
-#define TRACEDIALOG_H
+#pragma once
#include "ui_tracedialog.h"
#include <QDialog>
@@ -22,5 +21,3 @@ private slots:
private:
bool isFileOk(const QString &fileName);
};
-
-#endif
diff --git a/gui/traceloader.cpp b/gui/traceloader.cpp
index 59f8803e..483f9912 100644
--- a/gui/traceloader.cpp
+++ b/gui/traceloader.cpp
@@ -34,7 +34,6 @@ TraceLoader::~TraceLoader()
{
m_parser.close();
qDeleteAll(m_signatures);
- qDeleteAll(m_enumSignatures);
}
void TraceLoader::loadTrace(const QString &filename)
@@ -45,9 +44,7 @@ void TraceLoader::loadTrace(const QString &filename)
if (!m_frameBookmarks.isEmpty()) {
qDeleteAll(m_signatures);
- qDeleteAll(m_enumSignatures);
m_signatures.clear();
- m_enumSignatures.clear();
m_frameBookmarks.clear();
m_createdFrames.clear();
m_parser.close();
@@ -58,14 +55,19 @@ void TraceLoader::loadTrace(const QString &filename)
return;
}
+ if (!m_parser.supportsOffsets()) {
+ emit parseProblem(
+ "This trace in compressed in a format that does not allow random seeking.\n"
+ "Please repack the trace with `apitrace repack`."
+ );
+ m_parser.close();
+ return;
+ }
+
emit startedParsing();
- if (m_parser.supportsOffsets()) {
- scanTrace();
- } else {
- //Load the entire file into memory
- parseTrace();
- }
+ scanTrace();
+
emit guessedApi(static_cast<int>(m_parser.api));
emit finishedParsing();
}
@@ -169,63 +171,6 @@ void TraceLoader::scanTrace()
emit framesLoaded(frames);
}
-void TraceLoader::parseTrace()
-{
- QList<ApiTraceFrame*> frames;
- int frameCount = 0;
- int lastPercentReport = 0;
-
- ApiTraceFrame *currentFrame = new ApiTraceFrame();
- currentFrame->number = frameCount;
-
- FrameContents frameCalls;
- while (frameCalls.load(this, currentFrame, m_helpHash, m_parser)) {
-
- if (frameCalls.topLevelCount() == frameCalls.allCallsCount()) {
- currentFrame->setCalls(frameCalls.allCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- } else {
- currentFrame->setCalls(frameCalls.topLevelCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- }
- frames.append(currentFrame);
- if (frames.count() >= FRAMES_TO_CACHE) {
- emit framesLoaded(frames);
- frames.clear();
- }
- if (m_parser.percentRead() - lastPercentReport >= 5) {
- emit parsed(m_parser.percentRead());
- lastPercentReport = m_parser.percentRead();
- }
- ++frameCount;
- currentFrame = new ApiTraceFrame();
- currentFrame->number = frameCount;
-
- frameCalls.reset();
- }
-
- //last frames won't have markers
- // it's just a bunch of Delete calls for every object
- // after the last SwapBuffers
- if (!frameCalls.isEmpty()) {
- if (frameCalls.topLevelCount() == frameCalls.allCallsCount()) {
- currentFrame->setCalls(frameCalls.allCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- } else {
- currentFrame->setCalls(frameCalls.topLevelCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- }
- frames.append(currentFrame);
- }
- if (frames.count()) {
- emit framesLoaded(frames);
- }
-}
-
ApiTraceCallSignature * TraceLoader::signature(unsigned id)
{
@@ -242,49 +187,32 @@ void TraceLoader::addSignature(unsigned id, ApiTraceCallSignature *signature)
m_signatures[id] = signature;
}
-ApiTraceEnumSignature * TraceLoader::enumSignature(unsigned id)
-{
- if (id >= m_enumSignatures.count()) {
- m_enumSignatures.resize(id + 1);
- return NULL;
- } else {
- return m_enumSignatures[id];
- }
-}
-
-void TraceLoader::addEnumSignature(unsigned id, ApiTraceEnumSignature *signature)
-{
- m_enumSignatures[id] = signature;
-}
-
void TraceLoader::searchNext(const ApiTrace::SearchRequest &request)
{
Q_ASSERT(m_parser.supportsOffsets());
- if (m_parser.supportsOffsets()) {
- int startFrame = m_createdFrames.indexOf(request.frame);
- const FrameBookmark &frameBookmark = m_frameBookmarks[startFrame];
- m_parser.setBookmark(frameBookmark.start);
- trace::Call *call = 0;
- while ((call = m_parser.parse_call())) {
-
- if (callContains(call, request.text, request.cs)) {
- unsigned frameIdx = callInFrame(call->no);
- ApiTraceFrame *frame = m_createdFrames[frameIdx];
- const QVector<ApiTraceCall*> calls =
- fetchFrameContents(frame);
- for (int i = 0; i < calls.count(); ++i) {
- if (calls[i]->index() == call->no) {
- emit searchResult(request, ApiTrace::SearchResult_Found,
- calls[i]);
- break;
- }
+ int startFrame = m_createdFrames.indexOf(request.frame);
+ const FrameBookmark &frameBookmark = m_frameBookmarks[startFrame];
+ m_parser.setBookmark(frameBookmark.start);
+ trace::Call *call = 0;
+ while ((call = m_parser.parse_call())) {
+
+ if (callContains(call, request.text, request.cs)) {
+ unsigned frameIdx = callInFrame(call->no);
+ ApiTraceFrame *frame = m_createdFrames[frameIdx];
+ const QVector<ApiTraceCall*> calls =
+ fetchFrameContents(frame);
+ for (int i = 0; i < calls.count(); ++i) {
+ if (calls[i]->index() == call->no) {
+ emit searchResult(request, ApiTrace::SearchResult_Found,
+ calls[i]);
+ break;
}
- delete call;
- return;
}
-
delete call;
+ return;
}
+
+ delete call;
}
emit searchResult(request, ApiTrace::SearchResult_NotFound, 0);
}
@@ -292,40 +220,38 @@ void TraceLoader::searchNext(const ApiTrace::SearchRequest &request)
void TraceLoader::searchPrev(const ApiTrace::SearchRequest &request)
{
Q_ASSERT(m_parser.supportsOffsets());
- if (m_parser.supportsOffsets()) {
- int startFrame = m_createdFrames.indexOf(request.frame);
- trace::Call *call = 0;
- QList<trace::Call*> frameCalls;
- int frameIdx = startFrame;
+ int startFrame = m_createdFrames.indexOf(request.frame);
+ trace::Call *call = 0;
+ QList<trace::Call*> frameCalls;
+ int frameIdx = startFrame;
- const FrameBookmark &frameBookmark = m_frameBookmarks[frameIdx];
- int numCallsToParse = frameBookmark.numberOfCalls;
- m_parser.setBookmark(frameBookmark.start);
+ const FrameBookmark &frameBookmark = m_frameBookmarks[frameIdx];
+ int numCallsToParse = frameBookmark.numberOfCalls;
+ m_parser.setBookmark(frameBookmark.start);
- while ((call = m_parser.parse_call())) {
+ while ((call = m_parser.parse_call())) {
- frameCalls.append(call);
- --numCallsToParse;
+ frameCalls.append(call);
+ --numCallsToParse;
- if (numCallsToParse == 0) {
- bool foundCall = searchCallsBackwards(frameCalls,
- frameIdx,
- request);
+ if (numCallsToParse == 0) {
+ bool foundCall = searchCallsBackwards(frameCalls,
+ frameIdx,
+ request);
- qDeleteAll(frameCalls);
- frameCalls.clear();
- if (foundCall) {
- return;
- }
+ qDeleteAll(frameCalls);
+ frameCalls.clear();
+ if (foundCall) {
+ return;
+ }
- --frameIdx;
+ --frameIdx;
- if (frameIdx >= 0) {
- const FrameBookmark &frameBookmark =
- m_frameBookmarks[frameIdx];
- m_parser.setBookmark(frameBookmark.start);
- numCallsToParse = frameBookmark.numberOfCalls;
- }
+ if (frameIdx >= 0) {
+ const FrameBookmark &frameBookmark =
+ m_frameBookmarks[frameIdx];
+ m_parser.setBookmark(frameBookmark.start);
+ numCallsToParse = frameBookmark.numberOfCalls;
}
}
}
@@ -396,30 +322,28 @@ TraceLoader::fetchFrameContents(ApiTraceFrame *currentFrame)
return currentFrame->calls();
}
- if (m_parser.supportsOffsets()) {
- unsigned frameIdx = currentFrame->number;
- int numOfCalls = numberOfCallsInFrame(frameIdx);
-
- if (numOfCalls) {
- const FrameBookmark &frameBookmark = m_frameBookmarks[frameIdx];
-
- m_parser.setBookmark(frameBookmark.start);
-
- FrameContents frameCalls(numOfCalls);
- frameCalls.load(this, currentFrame, m_helpHash, m_parser);
- if (frameCalls.topLevelCount() == frameCalls.allCallsCount()) {
- emit frameContentsLoaded(currentFrame,
- frameCalls.allCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- } else {
- emit frameContentsLoaded(currentFrame,
- frameCalls.topLevelCalls(),
- frameCalls.allCalls(),
- frameCalls.binaryDataSize());
- }
- return frameCalls.allCalls();
+ unsigned frameIdx = currentFrame->number;
+ int numOfCalls = numberOfCallsInFrame(frameIdx);
+
+ if (numOfCalls) {
+ const FrameBookmark &frameBookmark = m_frameBookmarks[frameIdx];
+
+ m_parser.setBookmark(frameBookmark.start);
+
+ FrameContents frameCalls(numOfCalls);
+ frameCalls.load(this, currentFrame, m_helpHash, m_parser);
+ if (frameCalls.topLevelCount() == frameCalls.allCallsCount()) {
+ emit frameContentsLoaded(currentFrame,
+ frameCalls.allCalls(),
+ frameCalls.allCalls(),
+ frameCalls.binaryDataSize());
+ } else {
+ emit frameContentsLoaded(currentFrame,
+ frameCalls.topLevelCalls(),
+ frameCalls.allCalls(),
+ frameCalls.binaryDataSize());
}
+ return frameCalls.allCalls();
}
return QVector<ApiTraceCall*>();
}
diff --git a/gui/traceloader.h b/gui/traceloader.h
index 3714f651..6519a4e7 100644
--- a/gui/traceloader.h
+++ b/gui/traceloader.h
@@ -1,5 +1,4 @@
-#ifndef TRACELOADER_H
-#define TRACELOADER_H
+#pragma once
#include "apitrace.h"
@@ -22,8 +21,7 @@ public:
ApiTraceCallSignature *signature(unsigned id);
void addSignature(unsigned id, ApiTraceCallSignature *signature);
- ApiTraceEnumSignature *enumSignature(unsigned id);
- void addEnumSignature(unsigned id, ApiTraceEnumSignature *signature);
+ trace::EnumSig *enumSignature(unsigned id);
private:
class FrameContents
@@ -58,6 +56,7 @@ public slots:
void search(const ApiTrace::SearchRequest &request);
signals:
+ void parseProblem(const QString &message);
void startedParsing();
void parsed(int percent);
void guessedApi(int api);
@@ -94,7 +93,6 @@ private:
void loadHelpFile();
void guessApi(const trace::Call *call);
void scanTrace();
- void parseTrace();
void searchNext(const ApiTrace::SearchRequest &request);
void searchPrev(const ApiTrace::SearchRequest &request);
@@ -118,7 +116,4 @@ private:
QHash<QString, QUrl> m_helpHash;
QVector<ApiTraceCallSignature*> m_signatures;
- QVector<ApiTraceEnumSignature*> m_enumSignatures;
};
-
-#endif
diff --git a/gui/traceprocess.h b/gui/traceprocess.h
index 343bac96..f3634237 100644
--- a/gui/traceprocess.h
+++ b/gui/traceprocess.h
@@ -1,5 +1,4 @@
-#ifndef TRACEPROCESS_H
-#define TRACEPROCESS_H
+#pragma once
#include <QObject>
#include <QProcess>
@@ -40,5 +39,3 @@ private:
bool m_canTrace;
};
-
-#endif
diff --git a/gui/trimprocess.cpp b/gui/trimprocess.cpp
index 34639c63..854ef88f 100644
--- a/gui/trimprocess.cpp
+++ b/gui/trimprocess.cpp
@@ -60,7 +60,7 @@ void TrimProcess::start()
QString callSetArgument = callSetFormat
.arg(m_trimIndex);
- arguments << QLatin1String("trim");
+ arguments << QLatin1String("trim-auto");
arguments << outputArgument;
arguments << callSetArgument;
arguments << m_tracePath;
diff --git a/gui/trimprocess.h b/gui/trimprocess.h
index 4cce35d8..0d55c889 100644
--- a/gui/trimprocess.h
+++ b/gui/trimprocess.h
@@ -1,5 +1,4 @@
-#ifndef TRIMPROCESS_H
-#define TRIMPROCESS_H
+#pragma once
#include "apitrace.h"
@@ -40,5 +39,3 @@ private:
int m_trimIndex;
QProcess *m_process;
};
-
-#endif
diff --git a/gui/ui/androiddevicedialog.ui b/gui/ui/androiddevicedialog.ui
new file mode 100644
index 00000000..f26b8ba0
--- /dev/null
+++ b/gui/ui/androiddevicedialog.ui
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AndroidDeviceDialog</class>
+ <widget class="QDialog" name="AndroidDeviceDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>636</width>
+ <height>448</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Select Android Device</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="3" column="0" colspan="2">
+ <widget class="QCheckBox" name="defaultDeviceCheckBox">
+ <property name="text">
+ <string>Always use this device for architecture %1</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QPushButton" name="refreshDevicesButton">
+ <property name="text">
+ <string>Refresh Device List</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0" colspan="3">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="devicesPage">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="1" column="0">
+ <widget class="QTreeView" name="deviceView">
+ <property name="minimumSize">
+ <size>
+ <width>600</width>
+ <height>300</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="missingLabel">
+ <property name="text">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;aaa&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0057ae;&quot;&gt;My device is missing&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="noDevicesPage">
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="noDeviceFoundLabel">
+ <property name="text">
+ <string notr="true">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::RichText</enum>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AndroidDeviceDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AndroidDeviceDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/gui/ui/androidfiledialog.ui b/gui/ui/androidfiledialog.ui
new file mode 100644
index 00000000..662b43b6
--- /dev/null
+++ b/gui/ui/androidfiledialog.ui
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AndroidFileDialog</class>
+ <widget class="QDialog" name="AndroidFileDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>501</width>
+ <height>325</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Look in:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="pathComboBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="upButton">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTableView" name="filesView">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <property name="cornerButtonEnabled">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderHighlightSections">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>File name:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="fileLineEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AndroidFileDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>294</x>
+ <y>311</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileLineEdit</sender>
+ <signal>returnPressed()</signal>
+ <receiver>AndroidFileDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>164</x>
+ <y>262</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>4</x>
+ <y>282</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/gui/ui/imageviewer.ui b/gui/ui/imageviewer.ui
index a86d6ae3..4acfa296 100644
--- a/gui/ui/imageviewer.ui
+++ b/gui/ui/imageviewer.ui
@@ -141,6 +141,15 @@
</item>
<item>
<widget class="QDoubleSpinBox" name="lowerSpinBox">
+ <property name="decimals">
+ <number>3</number>
+ </property>
+ <property name="minimum">
+ <double>-999.999000000000024</double>
+ </property>
+ <property name="maximum">
+ <double>999.999000000000024</double>
+ </property>
<property name="singleStep">
<double>0.050000000000000</double>
</property>
@@ -155,6 +164,15 @@
</item>
<item>
<widget class="QDoubleSpinBox" name="upperSpinBox">
+ <property name="decimals">
+ <number>3</number>
+ </property>
+ <property name="minimum">
+ <double>-999.999000000000024</double>
+ </property>
+ <property name="maximum">
+ <double>999.999000000000024</double>
+ </property>
<property name="singleStep">
<double>0.050000000000000</double>
</property>
diff --git a/gui/ui/jumpwidget.ui b/gui/ui/jumpwidget.ui
index 675dabfd..fb915359 100644
--- a/gui/ui/jumpwidget.ui
+++ b/gui/ui/jumpwidget.ui
@@ -55,7 +55,7 @@
</sizepolicy>
</property>
<property name="maximum">
- <number>9999999</number>
+ <number>999999999</number>
</property>
</widget>
</item>
diff --git a/gui/ui/mainwindow.ui b/gui/ui/mainwindow.ui
index 129d0275..376f70e3 100644
--- a/gui/ui/mainwindow.ui
+++ b/gui/ui/mainwindow.ui
@@ -45,15 +45,31 @@
<x>0</x>
<y>0</y>
<width>787</width>
- <height>21</height>
+ <height>24</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>&amp;File</string>
</property>
+ <widget class="QMenu" name="menu_Android">
+ <property name="title">
+ <string>&amp;Android</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/android.png</normaloff>:/resources/android.png</iconset>
+ </property>
+ <addaction name="actionPullTrace"/>
+ <addaction name="actionPushTrace"/>
+ <addaction name="actionLinkTrace"/>
+ <addaction name="actionRetraceOnAndroid"/>
+ </widget>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
+ <addaction name="actionSave"/>
+ <addaction name="separator"/>
+ <addaction name="menu_Android"/>
<addaction name="separator"/>
<addaction name="actionQuit"/>
</widget>
@@ -76,6 +92,7 @@
<addaction name="actionLookupState"/>
<addaction name="actionShowThumbnails"/>
<addaction name="actionTrim"/>
+ <addaction name="actionLeakTrace"/>
<addaction name="separator"/>
<addaction name="actionOptions"/>
</widget>
@@ -117,7 +134,7 @@
<widget class="QWidget" name="dockWidgetContents">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <widget class="QWebView" name="detailsWebView" native="true">
+ <widget class="QWebView" name="detailsWebView">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Ignored">
<horstretch>0</horstretch>
@@ -250,6 +267,39 @@
</item>
</layout>
</widget>
+ <widget class="QWidget" name="buffersTab">
+ <attribute name="title">
+ <string>Buffers</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <widget class="QTreeWidget" name="buffersTreeWidget">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="sortingEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Value</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
</widget>
</item>
</layout>
@@ -398,6 +448,26 @@
</widget>
</item>
<item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="bufferExportButton">
+ <property name="text">
+ <string>Export</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -492,6 +562,18 @@
<string>Ctrl+O</string>
</property>
</action>
+ <action name="actionSave">
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/document-edit.png</normaloff>:/resources/document-edit.png</iconset>
+ </property>
+ <property name="text">
+ <string>&amp;Save As...</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+S</string>
+ </property>
+ </action>
<action name="actionQuit">
<property name="icon">
<iconset resource="../qapitrace.qrc">
@@ -553,7 +635,7 @@
</action>
<action name="actionTrim">
<property name="text">
- <string>Tr&amp;im</string>
+ <string>Tr&amp;im (experimental)</string>
</property>
<property name="shortcut">
<string>Ctrl+I</string>
@@ -651,6 +733,58 @@
<string>Ctrl+P</string>
</property>
</action>
+ <action name="actionPullTrace">
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/go-bottom.png</normaloff>:/resources/go-bottom.png</iconset>
+ </property>
+ <property name="text">
+ <string>Pull trace</string>
+ </property>
+ </action>
+ <action name="actionPushTrace">
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/go-top.png</normaloff>:/resources/go-top.png</iconset>
+ </property>
+ <property name="text">
+ <string>Push trace</string>
+ </property>
+ </action>
+ <action name="actionLinkTrace">
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/android-setup.png</normaloff>:/resources/android-setup.png</iconset>
+ </property>
+ <property name="text">
+ <string>Link trace</string>
+ </property>
+ </action>
+ <action name="actionSetup">
+ <property name="icon">
+ <iconset resource="../qapitrace.qrc">
+ <normaloff>:/resources/document-new.png</normaloff>:/resources/document-new.png</iconset>
+ </property>
+ <property name="text">
+ <string>Setup</string>
+ </property>
+ </action>
+ <action name="actionRetraceOnAndroid">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Retrace on Android</string>
+ </property>
+ </action>
+ <action name="actionLeakTrace">
+ <property name="text">
+ <string>&amp;LeakTrace</string>
+ </property>
+ <property name="toolTip">
+ <string>trace opengl object leaks</string>
+ </property>
+ </action>
<zorder>stateDock</zorder>
<zorder>vertexDataDock</zorder>
<zorder>errorsDock</zorder>
@@ -660,7 +794,7 @@
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
- <header>QtWebKit/QWebView</header>
+ <header>QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources>
diff --git a/gui/ui/profilereplaydialog.ui b/gui/ui/profilereplaydialog.ui
index f5991ae4..2478f086 100644
--- a/gui/ui/profilereplaydialog.ui
+++ b/gui/ui/profilereplaydialog.ui
@@ -10,7 +10,7 @@
<x>0</x>
<y>0</y>
<width>353</width>
- <height>165</height>
+ <height>202</height>
</rect>
</property>
<property name="windowTitle">
@@ -59,6 +59,16 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="memoryUsageCB">
+ <property name="text">
+ <string>Memory usage</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
diff --git a/gui/ui/settings.ui b/gui/ui/settings.ui
index 1d2da3e9..a7dbd4cb 100644
--- a/gui/ui/settings.ui
+++ b/gui/ui/settings.ui
@@ -10,7 +10,7 @@
<x>0</x>
<y>0</y>
<width>571</width>
- <height>334</height>
+ <height>465</height>
</rect>
</property>
<property name="windowTitle">
@@ -118,6 +118,124 @@
</widget>
</item>
<item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Android</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ADB (Android Debugger Bridge) is located in &amp;lt;Android SDK&amp;gt;/platform-tools/adb&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="text">
+ <string>&amp;adb path:</string>
+ </property>
+ <property name="buddy">
+ <cstring>adbPathEdit</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="adbPathEdit">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>adb</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="chooseAdbPath">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ADB (Android Debugger Bridge) is located in &amp;lt;Android SDK&amp;gt;/platform-tools/adb&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="text">
+ <string>std&amp;out port:</string>
+ </property>
+ <property name="buddy">
+ <cstring>stdoutPort</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="stdoutPort">
+ <property name="minimum">
+ <number>1024</number>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ <property name="value">
+ <number>52341</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="toolTip">
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ADB (Android Debugger Bridge) is located in &amp;lt;Android SDK&amp;gt;/platform-tools/adb&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="text">
+ <string>std&amp;err port:</string>
+ </property>
+ <property name="buddy">
+ <cstring>stderrPort</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="stderrPort">
+ <property name="minimum">
+ <number>1024</number>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ <property name="value">
+ <number>52342</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -138,8 +256,8 @@
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
- <x>252</x>
- <y>329</y>
+ <x>260</x>
+ <y>456</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
@@ -154,8 +272,8 @@
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
- <x>320</x>
- <y>329</y>
+ <x>328</x>
+ <y>456</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
@@ -170,12 +288,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>63</x>
- <y>151</y>
+ <x>83</x>
+ <y>147</y>
</hint>
<hint type="destinationlabel">
- <x>107</x>
- <y>151</y>
+ <x>216</x>
+ <y>148</y>
</hint>
</hints>
</connection>
diff --git a/gui/vertexdatainterpreter.h b/gui/vertexdatainterpreter.h
index 6bf9b11c..1ad46b7d 100644
--- a/gui/vertexdatainterpreter.h
+++ b/gui/vertexdatainterpreter.h
@@ -1,5 +1,4 @@
-#ifndef VERTEXDATAINTERPRETER_H
-#define VERTEXDATAINTERPRETER_H
+#pragma once
#include <QObject>
@@ -49,5 +48,3 @@ private:
int m_components;
int m_startingOffset;
};
-
-#endif