Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: config_help.txt configure src/corelib/io/qprocess_wince.cpp src/plugins/platforms/windows/qwindowstheme.cpp src/plugins/platforms/xcb/qxcbbackingstore.cpp tests/auto/corelib/tools/qtimezone/BLACKLIST tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: I26644d1cb3b78412c8ff285e2a55bea1bd641c01
This commit is contained in:
commit
990969655c
1
.gitignore
vendored
1
.gitignore
vendored
@ -226,7 +226,6 @@ config.tests/unix/sse2/sse2
|
||||
# ---------------------
|
||||
|
||||
debug
|
||||
examples/tools/plugandpaint/plugins
|
||||
include/*
|
||||
include/*/*
|
||||
lib/*
|
||||
|
@ -77,7 +77,24 @@ test -r Makefile && $MAKE distclean >/dev/null 2>&1
|
||||
# Make sure output from possible previous tests is gone
|
||||
rm -f "$EXE" "${EXE}.exe"
|
||||
|
||||
set -- "$QMAKE" -qtconf "$QTCONF" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release app_bundle lib_bundle" "LIBS+=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CFLAGS*=$CFLAGS" "QMAKE_CFLAGS+=$MAC_ARCH_CFLAGS" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" $QMAKE_ARGS "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
|
||||
set -- \
|
||||
"$QMAKE" \
|
||||
-qtconf "$QTCONF" \
|
||||
-nocache \
|
||||
-spec "$QMKSPEC" \
|
||||
"CONFIG+=$QMAKE_CONFIG" \
|
||||
"CONFIG+=android_app" \
|
||||
"CONFIG-=debug_and_release app_bundle lib_bundle" \
|
||||
"LIBS+=$LFLAGS" \
|
||||
"LIBS+=$MAC_ARCH_LFLAGS" \
|
||||
"INCLUDEPATH*=$INCLUDEPATH" \
|
||||
"QMAKE_CFLAGS*=$CFLAGS" \
|
||||
"QMAKE_CFLAGS+=$MAC_ARCH_CFLAGS" \
|
||||
"QMAKE_CXXFLAGS*=$CXXFLAGS" \
|
||||
"QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" \
|
||||
$QMAKE_ARGS \
|
||||
"$SRCDIR/$TEST/$EXE.pro" \
|
||||
-o "$OUTDIR/$TEST/Makefile"
|
||||
if [ "$VERBOSE" = "yes" ]; then
|
||||
OUTDIR=$OUTDIR "$@" && $MAKE && SUCCESS=yes
|
||||
else
|
||||
|
@ -40,7 +40,7 @@
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20110)
|
||||
#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20200)
|
||||
# error "This version of freetype is too old."
|
||||
#endif
|
||||
|
||||
|
@ -43,6 +43,7 @@
|
||||
int main(int, char**)
|
||||
{
|
||||
IUnknown *factory = 0;
|
||||
const size_t dummy = size_t(DWRITE_E_NOCOLOR) + sizeof(IDWriteFontFace2);
|
||||
DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED,
|
||||
__uuidof(IDWriteFactory2),
|
||||
&factory);
|
||||
|
@ -325,8 +325,8 @@ Additional options:
|
||||
-no-gbm .............. Do not compile backends for GBM.
|
||||
* -gbm ................. Compile backends for GBM.
|
||||
|
||||
-no-directfb ......... Do not compile DirectFB support.
|
||||
* -directfb ............ Compile DirectFB support.
|
||||
* -no-directfb ......... Do not compile DirectFB support.
|
||||
-directfb ............ Compile DirectFB support.
|
||||
|
||||
-no-linuxfb .......... Do not compile Linux Framebuffer support.
|
||||
* -linuxfb ............. Compile Linux Framebuffer support.
|
||||
|
7
configure
vendored
7
configure
vendored
@ -679,7 +679,7 @@ CFG_EGLFS_EGLDEVICE=no
|
||||
CFG_EGLFS_MALI=no
|
||||
CFG_EGLFS_VIV=no
|
||||
CFG_EGLFS_VIV_WL=no
|
||||
CFG_DIRECTFB=auto
|
||||
CFG_DIRECTFB=no
|
||||
CFG_GBM=auto
|
||||
CFG_LINUXFB=auto
|
||||
CFG_INTEGRITYFB=no
|
||||
@ -3238,7 +3238,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
|
||||
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
|
||||
elif [ "$CFG_DEBUG" = "yes" ]; then
|
||||
else
|
||||
setBootstrapVariable QMAKE_CFLAGS_DEBUG
|
||||
setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
|
||||
@ -3719,11 +3719,13 @@ if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
|
||||
fi
|
||||
|
||||
# Detect objcopy support
|
||||
if [ "$XPLATFORM_MAC" = "no" ]; then
|
||||
if ! compileTest unix/objcopy "objcopy"; then
|
||||
echo "ERROR: -separate-debug-info was requested but this binutils does not support it."
|
||||
echo "Re-run configure with -v for more information"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Detect C++11 & up support
|
||||
@ -6074,7 +6076,6 @@ fi
|
||||
QTCONFIG="$outpath/mkspecs/qconfig.pri"
|
||||
exec > "$QTCONFIG.tmp"
|
||||
|
||||
QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
|
||||
if [ "$CFG_DEBUG" = "yes" ]; then
|
||||
QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
|
||||
if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
|
||||
|
@ -45,11 +45,7 @@ manifestmeta.highlighted.names = "QtQuick/Qt Quick Demo - Same Game" \
|
||||
"QtQuickExtras/Qt Quick Extras - Dashboard" \
|
||||
"QtQuickExtras/Qt Quick Extras - Flat" \
|
||||
"QtQuickExtras/Qt Quick Extras - Gallery" \
|
||||
"QtQuickControls/Qt Quick Controls - Gallery" \
|
||||
"QtQuickControls/Qt Quick Controls - Text Editor Example" \
|
||||
"QtQuickControls/Qt Quick Controls - Table View Example" \
|
||||
"QtQuickControls/Qt Quick Controls - Calendar Example" \
|
||||
"QtQuickControls/Qt Quick Controls - File System Browser Example" \
|
||||
"QtQuickControls2/Qt Quick Controls 2 - Gallery" \
|
||||
"QtQuickDialogs/Qt Quick System Dialog Examples" \
|
||||
"QtWinExtras/Quick Player" \
|
||||
"QtMultimedia/QML Video Shader Effects Example" \
|
||||
@ -59,26 +55,6 @@ manifestmeta.highlighted.names = "QtQuick/Qt Quick Demo - Same Game" \
|
||||
|
||||
manifestmeta.highlighted.attributes = isHighlighted:true
|
||||
|
||||
# Add 'webkit1' tag for QtWebKit1 examples
|
||||
manifestmeta.webkit1.names = "QtWebKitExamples/Tab Browser" \
|
||||
"QtWebKitExamples/DOM Traversal Example" \
|
||||
"QtWebKitExamples/Fancy Browser Example" \
|
||||
"QtWebKitExamples/Form Extractor Example" \
|
||||
"QtWebKitExamples/WebKit Frame Capture Example" \
|
||||
"QtWebKitExamples/The Webkit Bridge Tutorial*" \
|
||||
"QtWebKitExamples/Previewer Example" \
|
||||
"QtWebKitExamples/Wheel Scroller Example" \
|
||||
"QtWebKitExamples/Simple Selector Example" \
|
||||
"QtWebKitExamples/QObject XML Model Example"
|
||||
|
||||
manifestmeta.webkit1.tags = webkit1
|
||||
|
||||
# Add 'webkit2' tag for QtWebKit2 examples
|
||||
manifestmeta.webkit2.names = "QtWebKitExamples/Flickr View Example" \
|
||||
"QtWebKitExamples/YouTube View Example"
|
||||
|
||||
manifestmeta.webkit2.tags = webkit2
|
||||
|
||||
manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \
|
||||
"QtQuick/Qt Quick Demo - Calqlatr" \
|
||||
"QtWidgets/Application Chooser Example" \
|
||||
|
BIN
examples/corelib/mimetypes/doc/images/mimetypebrowser.png
Normal file
BIN
examples/corelib/mimetypes/doc/images/mimetypebrowser.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.9 KiB |
54
examples/corelib/mimetypes/doc/src/mimetypebrowser.qdoc
Normal file
54
examples/corelib/mimetypes/doc/src/mimetypebrowser.qdoc
Normal file
@ -0,0 +1,54 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the documentation of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:FDL$
|
||||
** 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 The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Free Documentation License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Free
|
||||
** Documentation License version 1.3 as published by the Free Software
|
||||
** Foundation and appearing in the file included in the packaging of
|
||||
** this file. Please review the following information to ensure
|
||||
** the GNU Free Documentation License version 1.3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\example mimetypes/mimetypebrowser
|
||||
\ingroup examples-mimetype
|
||||
\title MIME Type Browser Example
|
||||
|
||||
\brief Shows the hierarchy of MIME types and
|
||||
can be used to determine the MIME type of a file.
|
||||
|
||||
\image mimetypebrowser.png Screenshot of the MIME Type Browser Example
|
||||
|
||||
\e {MIME Type Browser} is intended to be a tool for exploring MIME types
|
||||
rather than an example showing the typical usage of Qt's MIME API.
|
||||
|
||||
\include examples-run.qdocinc
|
||||
|
||||
\section1 Main Window
|
||||
|
||||
The main window consists of a tree view displaying the hierarchy of MIME types
|
||||
based on the model MimetypeModel inheriting QStandardItemModel on the left and
|
||||
a QTextBrowser for showing detailed information about the selected MIME type
|
||||
on the right.
|
||||
|
||||
It has a main menu with an option \uicontrol{File/Detect File Type}, which
|
||||
lets you pick a file and then displays its MIME type.
|
||||
|
||||
For more information, see QMimeType and QMimeDatabase.
|
||||
*/
|
@ -8,7 +8,7 @@ SOURCES = main.cpp \
|
||||
QT += widgets
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/threads/mandelbrot
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/threads/queuedcustomtype
|
||||
INSTALLS += target
|
||||
|
||||
|
||||
|
@ -54,8 +54,10 @@
|
||||
#include <QWidget>
|
||||
#include "renderthread.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QLabel;
|
||||
class QPushButton;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
//! [Window class definition]
|
||||
class Window : public QWidget
|
||||
|
@ -4,4 +4,6 @@ CONFIG += no_docs_target
|
||||
SUBDIRS = semaphores \
|
||||
waitconditions
|
||||
|
||||
qtHaveModule(widgets): SUBDIRS += mandelbrot
|
||||
qtHaveModule(widgets): SUBDIRS += \
|
||||
mandelbrot \
|
||||
queuedcustomtype
|
||||
|
@ -4,5 +4,5 @@ SOURCES = main.cpp \
|
||||
QT += widgets
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/tools/customcompleter
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/tools/customtype
|
||||
INSTALLS += target
|
||||
|
@ -6,5 +6,5 @@ SOURCES = main.cpp \
|
||||
QT += widgets
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/tools/customcompleter
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/corelib/tools/customtypesending
|
||||
INSTALLS += target
|
||||
|
@ -7,3 +7,7 @@ SOURCES += main.cpp \
|
||||
|
||||
HEADERS += widget.h \
|
||||
renderwindow.h
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/opengl/contextinfo
|
||||
INSTALLS += target
|
||||
|
@ -53,6 +53,15 @@
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
for (int i = 1; i < argc; ++i) {
|
||||
if (!qstrcmp(argv[i], "-g"))
|
||||
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
|
||||
else if (!qstrcmp(argv[i], "-s"))
|
||||
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
|
||||
else if (!qstrcmp(argv[i], "-d"))
|
||||
QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
|
||||
}
|
||||
|
||||
QApplication app(argc, argv);
|
||||
|
||||
Widget w;
|
||||
|
@ -60,10 +60,12 @@
|
||||
#include <QPushButton>
|
||||
#include <QTextEdit>
|
||||
#include <QSplitter>
|
||||
#include <QGuiApplication>
|
||||
#include <QSurfaceFormat>
|
||||
#include <QOpenGLContext>
|
||||
#include <QOpenGLFunctions>
|
||||
#include <QDebug>
|
||||
#include <QTextStream>
|
||||
|
||||
struct Version {
|
||||
const char *str;
|
||||
@ -235,6 +237,24 @@ Widget::Widget(QWidget *parent)
|
||||
m_renderWindowContainer = new QWidget;
|
||||
addRenderWindow();
|
||||
|
||||
QString description;
|
||||
QTextStream str(&description);
|
||||
str << "Qt " << QT_VERSION_STR << ' ' << QGuiApplication::platformName();
|
||||
const char *openGlVariables[] =
|
||||
{"QT_ANGLE_PLATFORM", "QT_OPENGL", "QT_OPENGL_BUGLIST", "QT_OPENGL_DLL"};
|
||||
const size_t variableCount = sizeof(openGlVariables) / sizeof(openGlVariables[0]);
|
||||
for (size_t v = 0; v < variableCount; ++v) {
|
||||
if (qEnvironmentVariableIsSet(openGlVariables[v]))
|
||||
str << ' ' << openGlVariables[v] << '=' << qgetenv(openGlVariables[v]);
|
||||
}
|
||||
if (QCoreApplication::testAttribute(Qt::AA_UseOpenGLES))
|
||||
str << " Qt::AA_UseOpenGLES";
|
||||
if (QCoreApplication::testAttribute(Qt::AA_UseSoftwareOpenGL))
|
||||
str << " Qt::AA_UseSoftwareOpenGL";
|
||||
if (QCoreApplication::testAttribute(Qt::AA_UseDesktopOpenGL))
|
||||
str << " Qt::AA_UseSoftwareOpenGL";
|
||||
layout->addWidget(new QLabel(description));
|
||||
|
||||
setLayout(layout);
|
||||
}
|
||||
|
||||
|
@ -16,3 +16,6 @@ qtHaveModule(widgets) {
|
||||
textures \
|
||||
hellogles3
|
||||
}
|
||||
|
||||
EXAMPLE_FILES += \
|
||||
legacy
|
||||
|
@ -1,274 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** 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 The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
// This file contains benchmarks for comparing QVector against std::vector
|
||||
|
||||
#include <QtCore>
|
||||
#include <QVector>
|
||||
#include <vector>
|
||||
|
||||
#include <qtest.h>
|
||||
|
||||
template <typename T> // T is the item type
|
||||
class UseCases {
|
||||
public:
|
||||
virtual ~UseCases() {}
|
||||
|
||||
// Use case: Insert \a size items into the vector.
|
||||
virtual void insert(int size) = 0;
|
||||
|
||||
// Use case: Lookup \a size items from the vector.
|
||||
virtual void lookup(int size) = 0;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
T * f(T *ts) // dummy function to prevent code from being optimized away by the compiler
|
||||
{
|
||||
return ts;
|
||||
}
|
||||
|
||||
// This subclass implements the use cases using QVector as efficiently as possible.
|
||||
template <typename T>
|
||||
class UseCases_QVector : public UseCases<T>
|
||||
{
|
||||
void insert(int size)
|
||||
{
|
||||
QVector<T> v;
|
||||
T t;
|
||||
QBENCHMARK {
|
||||
for (int i = 0; i < size; ++i)
|
||||
v.append(t);
|
||||
}
|
||||
}
|
||||
|
||||
void lookup(int size)
|
||||
{
|
||||
QVector<T> v;
|
||||
|
||||
T t;
|
||||
for (int i = 0; i < size; ++i)
|
||||
v.append(t);
|
||||
|
||||
T *ts = new T[size];
|
||||
QBENCHMARK {
|
||||
for (int i = 0; i < size; ++i)
|
||||
ts[i] = v.value(i);
|
||||
}
|
||||
f<T>(ts);
|
||||
delete[] ts;
|
||||
}
|
||||
};
|
||||
|
||||
// This subclass implements the use cases using std::vector as efficiently as possible.
|
||||
template <typename T>
|
||||
class UseCases_stdvector : public UseCases<T>
|
||||
{
|
||||
void insert(int size)
|
||||
{
|
||||
std::vector<T> v;
|
||||
T t;
|
||||
QBENCHMARK {
|
||||
for (int i = 0; i < size; ++i)
|
||||
v.push_back(t);
|
||||
}
|
||||
}
|
||||
|
||||
void lookup(int size)
|
||||
{
|
||||
std::vector<T> v;
|
||||
|
||||
T t;
|
||||
for (int i = 0; i < size; ++i)
|
||||
v.push_back(t);
|
||||
|
||||
T *ts = new T[size];
|
||||
QBENCHMARK {
|
||||
for (int i = 0; i < size; ++i)
|
||||
ts[i] = v[i];
|
||||
}
|
||||
f<T>(ts);
|
||||
delete[] ts;
|
||||
}
|
||||
};
|
||||
|
||||
struct Large { // A "large" item type
|
||||
int x[1000];
|
||||
};
|
||||
|
||||
// Symbian devices typically have limited memory
|
||||
# define LARGE_MAX_SIZE 20000
|
||||
|
||||
class tst_vector_vs_std : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
tst_vector_vs_std()
|
||||
{
|
||||
useCases_QVector_int = new UseCases_QVector<int>;
|
||||
useCases_stdvector_int = new UseCases_stdvector<int>;
|
||||
|
||||
useCases_QVector_Large = new UseCases_QVector<Large>;
|
||||
useCases_stdvector_Large = new UseCases_stdvector<Large>;
|
||||
}
|
||||
|
||||
private:
|
||||
UseCases<int> *useCases_QVector_int;
|
||||
UseCases<int> *useCases_stdvector_int;
|
||||
UseCases<Large> *useCases_QVector_Large;
|
||||
UseCases<Large> *useCases_stdvector_Large;
|
||||
|
||||
private slots:
|
||||
void insert_int_data();
|
||||
void insert_int();
|
||||
void insert_Large_data();
|
||||
void insert_Large();
|
||||
void lookup_int_data();
|
||||
void lookup_int();
|
||||
void lookup_Large_data();
|
||||
void lookup_Large();
|
||||
};
|
||||
|
||||
void tst_vector_vs_std::insert_int_data()
|
||||
{
|
||||
QTest::addColumn<bool>("useStd");
|
||||
QTest::addColumn<int>("size");
|
||||
|
||||
for (int size = 10; size < 20000; size += 100) {
|
||||
const QByteArray sizeString = QByteArray::number(size);
|
||||
QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
|
||||
QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
|
||||
}
|
||||
}
|
||||
|
||||
void tst_vector_vs_std::insert_int()
|
||||
{
|
||||
QFETCH(bool, useStd);
|
||||
QFETCH(int, size);
|
||||
|
||||
if (useStd)
|
||||
useCases_stdvector_int->insert(size);
|
||||
else
|
||||
useCases_QVector_int->insert(size);
|
||||
}
|
||||
|
||||
void tst_vector_vs_std::insert_Large_data()
|
||||
{
|
||||
QTest::addColumn<bool>("useStd");
|
||||
QTest::addColumn<int>("size");
|
||||
|
||||
for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
|
||||
const QByteArray sizeString = QByteArray::number(size);
|
||||
QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
|
||||
QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
|
||||
}
|
||||
}
|
||||
|
||||
void tst_vector_vs_std::insert_Large()
|
||||
{
|
||||
QFETCH(bool, useStd);
|
||||
QFETCH(int, size);
|
||||
|
||||
if (useStd)
|
||||
useCases_stdvector_Large->insert(size);
|
||||
else
|
||||
useCases_QVector_Large->insert(size);
|
||||
}
|
||||
|
||||
//! [1]
|
||||
void tst_vector_vs_std::lookup_int_data()
|
||||
{
|
||||
QTest::addColumn<bool>("useStd");
|
||||
QTest::addColumn<int>("size");
|
||||
|
||||
for (int size = 10; size < 20000; size += 100) {
|
||||
const QByteArray sizeString = QByteArray::number(size);
|
||||
QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
|
||||
QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
|
||||
}
|
||||
}
|
||||
//! [1]
|
||||
|
||||
//! [2]
|
||||
void tst_vector_vs_std::lookup_int()
|
||||
{
|
||||
QFETCH(bool, useStd);
|
||||
QFETCH(int, size);
|
||||
|
||||
if (useStd)
|
||||
useCases_stdvector_int->lookup(size); // Create a std::vector and run the benchmark.
|
||||
else
|
||||
useCases_QVector_int->lookup(size); // Create a QVector and run the benchmark.
|
||||
}
|
||||
//! [2]
|
||||
|
||||
void tst_vector_vs_std::lookup_Large_data()
|
||||
{
|
||||
QTest::addColumn<bool>("useStd");
|
||||
QTest::addColumn<int>("size");
|
||||
|
||||
for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
|
||||
const QByteArray sizeString = QByteArray::number(size);
|
||||
QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
|
||||
QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
|
||||
}
|
||||
}
|
||||
|
||||
void tst_vector_vs_std::lookup_Large()
|
||||
{
|
||||
QFETCH(bool, useStd);
|
||||
QFETCH(int, size);
|
||||
|
||||
if (useStd)
|
||||
useCases_stdvector_Large->lookup(size);
|
||||
else
|
||||
useCases_QVector_Large->lookup(size);
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_vector_vs_std)
|
||||
#include "main.moc"
|
@ -26,7 +26,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\example tools/plugandpaint
|
||||
\example tools/plugandpaint/app
|
||||
\title Plug & Paint Example
|
||||
\ingroup examples-widgets-tools
|
||||
|
||||
@ -47,8 +47,8 @@
|
||||
through plugins, we recommend that you start by reading this
|
||||
overview, which explains how to make an application use plugins.
|
||||
Afterwards, you can read the
|
||||
\l{tools/plugandpaintplugins/basictools}{Basic Tools} and
|
||||
\l{tools/plugandpaintplugins/extrafilters}{Extra Filters}
|
||||
\l{tools/plugandpaint/plugins/basictools}{Basic Tools} and
|
||||
\l{tools/plugandpaint/plugins/extrafilters}{Extra Filters}
|
||||
overviews, which show how to implement static and dynamic
|
||||
plugins, respectively.
|
||||
|
||||
@ -74,7 +74,7 @@
|
||||
in the plugins.
|
||||
|
||||
|
||||
\snippet tools/plugandpaint/interfaces.h 0
|
||||
\snippet tools/plugandpaint/app/interfaces.h 0
|
||||
|
||||
The \c BrushInterface class declares four pure virtual functions.
|
||||
The first pure virtual function, \c brushes(), returns a list of
|
||||
@ -96,7 +96,7 @@
|
||||
virtual destructor. We provide the destructor to keep these
|
||||
compilers happy.
|
||||
|
||||
\snippet tools/plugandpaint/interfaces.h 1
|
||||
\snippet tools/plugandpaint/app/interfaces.h 1
|
||||
|
||||
The \c ShapeInterface class declares a \c shapes() function that
|
||||
works the same as \c{BrushInterface}'s \c brushes() function, and
|
||||
@ -106,13 +106,13 @@
|
||||
parent parameter can be used by the plugin to pop up a dialog
|
||||
asking the user to specify more information.
|
||||
|
||||
\snippet tools/plugandpaint/interfaces.h 2
|
||||
\snippet tools/plugandpaint/app/interfaces.h 2
|
||||
|
||||
The \c FilterInterface class declares a \c filters() function
|
||||
that returns a list of filter names, and a \c filterImage()
|
||||
function that applies a filter to an image.
|
||||
|
||||
\snippet tools/plugandpaint/interfaces.h 4
|
||||
\snippet tools/plugandpaint/app/interfaces.h 4
|
||||
|
||||
To make it possible to query at run-time whether a plugin
|
||||
implements a given interface, we must use the \c
|
||||
@ -125,8 +125,8 @@
|
||||
a good idea to include a version number in the string, as we did
|
||||
above.
|
||||
|
||||
The \l{tools/plugandpaintplugins/basictools}{Basic Tools} plugin
|
||||
and the \l{tools/plugandpaintplugins/extrafilters}{Extra Filters}
|
||||
The \l{tools/plugandpaint/plugins/basictools}{Basic Tools} plugin
|
||||
and the \l{tools/plugandpaint/plugins/extrafilters}{Extra Filters}
|
||||
plugin shows how to derive from \c BrushInterface, \c
|
||||
ShapeInterface, and \c FilterInterface.
|
||||
|
||||
@ -144,7 +144,7 @@
|
||||
\l{mainwindows/application}{Application}). Here, we'll
|
||||
concentrate on the parts of the code that are related to plugins.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 4
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 4
|
||||
|
||||
The \c loadPlugins() function is called from the \c MainWindow
|
||||
constructor to detect plugins and update the \uicontrol{Brush},
|
||||
@ -155,7 +155,7 @@
|
||||
QObject. That QObject implements plugin interfaces using multiple
|
||||
inheritance.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 5
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 5
|
||||
|
||||
The next step is to load dynamic plugins. We initialize the \c
|
||||
pluginsDir member variable to refer to the \c plugins
|
||||
@ -166,9 +166,9 @@
|
||||
this file is usually located in a subdirectory, so we need to
|
||||
take this into account.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 6
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 7
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 8
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 6
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 7
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 8
|
||||
|
||||
We use QDir::entryList() to get a list of all files in that
|
||||
directory. Then we iterate over the result using \l foreach and
|
||||
@ -181,12 +181,12 @@
|
||||
|
||||
If QPluginLoader::instance() is non-null, we add it to the menus.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 9
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 9
|
||||
|
||||
At the end, we enable or disable the \uicontrol{Brush}, \uicontrol{Shapes},
|
||||
and \uicontrol{Filters} menus based on whether they contain any items.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 10
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 10
|
||||
|
||||
For each plugin (static or dynamic), we check which interfaces it
|
||||
implements using \l qobject_cast(). First, we try to cast the
|
||||
@ -195,7 +195,7 @@
|
||||
by \c brushes(). Then we do the same with the \c ShapeInterface
|
||||
and the \c FilterInterface.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 3
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 3
|
||||
|
||||
The \c aboutPlugins() slot is called on startup and can be
|
||||
invoked at any time through the \uicontrol{About Plugins} action. It
|
||||
@ -211,7 +211,7 @@
|
||||
plugin from which it comes from as the parent; this makes it
|
||||
convenient to get access to the plugin later.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 0
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 0
|
||||
|
||||
The \c changeBrush() slot is invoked when the user chooses one of
|
||||
the brushes from the \uicontrol{Brush} menu. We start by finding out
|
||||
@ -222,7 +222,7 @@
|
||||
identifying the brush. Next time the user draws on the paint
|
||||
area, \c PaintArea will use this brush.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 1
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 1
|
||||
|
||||
The \c insertShape() is invoked when the use chooses one of the
|
||||
shapes from the \uicontrol{Shapes} menu. We retrieve the QAction that
|
||||
@ -230,7 +230,7 @@
|
||||
QAction, and finally we call \c ShapeInterface::generateShape()
|
||||
to obtain a QPainterPath.
|
||||
|
||||
\snippet tools/plugandpaint/mainwindow.cpp 2
|
||||
\snippet tools/plugandpaint/app/mainwindow.cpp 2
|
||||
|
||||
The \c applyFilter() slot is similar: We retrieve the QAction
|
||||
that invoked the slot, then the \c FilterInterface associated to
|
||||
@ -243,12 +243,12 @@
|
||||
The \c PaintArea class contains some code that deals with \c
|
||||
BrushInterface, so we'll review it briefly.
|
||||
|
||||
\snippet tools/plugandpaint/paintarea.cpp 0
|
||||
\snippet tools/plugandpaint/app/paintarea.cpp 0
|
||||
|
||||
In \c setBrush(), we simply store the \c BrushInterface and the
|
||||
brush that are given to us by \c MainWindow.
|
||||
|
||||
\snippet tools/plugandpaint/paintarea.cpp 1
|
||||
\snippet tools/plugandpaint/app/paintarea.cpp 1
|
||||
|
||||
In the \l{QWidget::mouseMoveEvent()}{mouse move event handler},
|
||||
we call the \c BrushInterface::mouseMove() function on the
|
||||
@ -262,7 +262,7 @@
|
||||
and a list of plugin file names. It calls \c findPlugins()
|
||||
to fill the QTreeWdiget with information about the plugins:
|
||||
|
||||
\snippet tools/plugandpaint/plugindialog.cpp 0
|
||||
\snippet tools/plugandpaint/app/plugindialog.cpp 0
|
||||
|
||||
The \c findPlugins() is very similar to \c
|
||||
MainWindow::loadPlugins(). It uses QPluginLoader to access the
|
||||
@ -270,11 +270,11 @@
|
||||
populateTreeWidget() uses \l qobject_cast() to find out which
|
||||
interfaces are implemented by the plugins:
|
||||
|
||||
\snippet tools/plugandpaint/plugindialog.cpp 1
|
||||
\snippet tools/plugandpaint/app/plugindialog.cpp 1
|
||||
|
||||
\section1 Importing Static Plugins
|
||||
|
||||
The \l{tools/plugandpaintplugins/basictools}{Basic Tools} plugin
|
||||
The \l{tools/plugandpaint/plugins/basictools}{Basic Tools} plugin
|
||||
is built as a static plugin, to ensure that it is always
|
||||
available to the application. This requires using the
|
||||
Q_IMPORT_PLUGIN() macro somewhere in the application (in a \c
|
||||
@ -283,7 +283,7 @@
|
||||
For Plug & Paint, we have chosen to put Q_IMPORT_PLUGIN() in \c
|
||||
main.cpp:
|
||||
|
||||
\snippet tools/plugandpaint/main.cpp 0
|
||||
\snippet tools/plugandpaint/app/main.cpp 0
|
||||
|
||||
The argument to Q_IMPORT_PLUGIN() is the plugin name, which corresponds
|
||||
with the name of the class that declares metadata for the plugin with
|
||||
@ -292,10 +292,10 @@
|
||||
In the \c .pro file, we need to specify the static library.
|
||||
Here's the project file for building Plug & Paint:
|
||||
|
||||
\snippet tools/plugandpaint/plugandpaint.pro 0
|
||||
\snippet tools/plugandpaint/app/app.pro 0
|
||||
|
||||
The \c LIBS line variable specifies the library \c pnp_basictools
|
||||
located in the \c ../plugandpaintplugins/basictools directory.
|
||||
located in the \c ../plugandpaint/plugins/basictools directory.
|
||||
(Although the \c LIBS syntax has a distinct Unix flavor, \c qmake
|
||||
supports it on all platforms.)
|
||||
|
||||
@ -306,19 +306,19 @@
|
||||
|
||||
This completes our review of the Plug & Paint application. At
|
||||
this point, you might want to take a look at the
|
||||
\l{tools/plugandpaintplugins/basictools}{Basic Tools} example
|
||||
\l{tools/plugandpaint/plugins/basictools}{Basic Tools} example
|
||||
plugin.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\example tools/plugandpaintplugins/basictools
|
||||
\example tools/plugandpaint/plugins/basictools
|
||||
\title Plug & Paint Basic Tools Example
|
||||
\brief A plugin providing the basic tools for painting functionality.
|
||||
|
||||
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||
|
||||
The Basic Tools example is a static plugin for the
|
||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||
\l{tools/plugandpaint/app}{Plug & Paint} example. It provides a set
|
||||
of basic brushes, shapes, and filters. Through the Basic Tools
|
||||
example, we will review the four steps involved in writing a Qt
|
||||
plugin:
|
||||
@ -332,13 +332,13 @@
|
||||
|
||||
\section1 Declaration of the Plugin Class
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.h 0
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.h 0
|
||||
|
||||
We start by including \c interfaces.h, which defines the plugin
|
||||
interfaces for the \l{tools/plugandpaint}{Plug & Paint}
|
||||
interfaces for the \l{tools/plugandpaint/app}{Plug & Paint}
|
||||
application. For the \c #include to work, we need to add an \c
|
||||
INCLUDEPATH entry to the \c .pro file with the path to Qt's \c
|
||||
examples/tools directory.
|
||||
INCLUDEPATH entry to the \c .pro file with the path to the
|
||||
header file.
|
||||
|
||||
The \c BasicToolsPlugin class is a QObject subclass that
|
||||
implements the \c BrushInterface, the \c ShapeInterface, and the
|
||||
@ -346,12 +346,12 @@
|
||||
The \c Q_INTERFACES() macro is necessary to tell \l{moc}, Qt's
|
||||
meta-object compiler, that the base classes are plugin
|
||||
interfaces. Without the \c Q_INTERFACES() macro, we couldn't use
|
||||
\l qobject_cast() in the \l{tools/plugandpaint}{Plug & Paint}
|
||||
\l qobject_cast() in the \l{tools/plugandpaint/app}{Plug & Paint}
|
||||
application to detect interfaces.
|
||||
For an explanation for the \c Q_PLUGIN_METADATA() macro see
|
||||
\l {Exporting the Plugin}.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.h 2
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.h 2
|
||||
|
||||
In the \c public section of the class, we declare all the
|
||||
functions from the three interfaces.
|
||||
@ -361,23 +361,23 @@
|
||||
Let's now review the implementation of the \c BasicToolsPlugin
|
||||
member functions inherited from \c BrushInterface.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 0
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 0
|
||||
|
||||
The \c brushes() function returns a list of brushes provided by
|
||||
this plugin. We provide three brushes: \uicontrol{Pencil}, \uicontrol{Air
|
||||
Brush}, and \uicontrol{Random Letters}.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 1
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 1
|
||||
|
||||
On a mouse press event, we just call \c mouseMove() to draw the
|
||||
spot where the event occurred.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 2
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 2
|
||||
|
||||
In \c mouseMove(), we start by saving the state of the QPainter
|
||||
and we compute a few variables that we'll need later.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 3
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 3
|
||||
|
||||
Then comes the brush-dependent part of the code:
|
||||
|
||||
@ -399,14 +399,14 @@
|
||||
At the end, we restore the painter state to what it was upon
|
||||
entering the function and we return the bounding rectangle.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 4
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 4
|
||||
|
||||
When the user releases the mouse, we do nothing and return an
|
||||
empty QRect.
|
||||
|
||||
\section1 Implementation of the Shape Interface
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 5
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 5
|
||||
|
||||
The plugin provides three shapes: \uicontrol{Circle}, \uicontrol{Star}, and
|
||||
\uicontrol{Text...}. The three dots after \uicontrol{Text} are there because
|
||||
@ -418,7 +418,7 @@
|
||||
distinguish between the internal shape name and the name used in
|
||||
the user interface.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 6
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 6
|
||||
|
||||
The \c generateShape() creates a QPainterPath for the specified
|
||||
shape. If the shape is \uicontrol{Text}, we pop up a QInputDialog to
|
||||
@ -426,12 +426,12 @@
|
||||
|
||||
\section1 Implementation of the Filter Interface
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 7
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 7
|
||||
|
||||
The plugin provides three filters: \uicontrol{Invert Pixels}, \uicontrol{Swap
|
||||
RGB}, and \uicontrol{Grayscale}.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.cpp 8
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.cpp 8
|
||||
|
||||
The \c filterImage() function takes a filter name and a QImage as
|
||||
parameters and returns an altered QImage. The first thing we do
|
||||
@ -450,7 +450,7 @@
|
||||
It must contain the plugins IID and optionally a filename pointing
|
||||
to a json file containing the metadata for the plugin.
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictoolsplugin.h 4
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictoolsplugin.h 4
|
||||
|
||||
Within this example the json file does not need to export any metadata,
|
||||
so it just contains an empty json object.
|
||||
@ -463,7 +463,7 @@
|
||||
|
||||
Here's the project file for building the Basic Tools plugin:
|
||||
|
||||
\snippet tools/plugandpaintplugins/basictools/basictools.pro 0
|
||||
\snippet tools/plugandpaint/plugins/basictools/basictools.pro 0
|
||||
|
||||
The \c .pro file differs from typical \c .pro files in many
|
||||
respects. First, it starts with a \c TEMPLATE entry specifying \c
|
||||
@ -475,15 +475,14 @@
|
||||
|
||||
To make the plugin a static plugin, all that is required is to
|
||||
specify \c static in addition to \c plugin. The
|
||||
\l{tools/plugandpaintplugins/extrafilters}{Extra Filters} plugin,
|
||||
\l{tools/plugandpaint/plugins/extrafilters}{Extra Filters} plugin,
|
||||
which is compiled as a dynamic plugin, doesn't specify \c static
|
||||
in its \c .pro file.
|
||||
|
||||
The \c INCLUDEPATH variable sets the search paths for global
|
||||
headers (i.e., header files included using \c{#include <...>}).
|
||||
We add Qt's \c examples/tools directory (strictly speaking,
|
||||
\c{examples/tools/plugandpaintplugins/basictools/../..}) to the
|
||||
list, so that we can include \c <plugandpaint/interfaces.h>.
|
||||
We add \c ../../app to the list, so that we can include
|
||||
\c <interfaces.h>.
|
||||
|
||||
The \c TARGET variable specifies which name we want to give the
|
||||
target library. We use \c pnp_ as the prefix to show that the
|
||||
@ -499,27 +498,27 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
\example tools/plugandpaintplugins/extrafilters
|
||||
\example tools/plugandpaint/plugins/extrafilters
|
||||
\title Plug & Paint Extra Filters Example
|
||||
\brief A plugin providing the extra filters.
|
||||
|
||||
\image plugandpaint.png Screenshot of the Plug & Paint example
|
||||
|
||||
The Extra Filters example is a plugin for the
|
||||
\l{tools/plugandpaint}{Plug & Paint} example. It provides a set
|
||||
\l{tools/plugandpaint/app}{Plug & Paint} example. It provides a set
|
||||
of filters in addition to those provided by the
|
||||
\l{tools/plugandpaintplugins/basictools}{Basic Tools} plugin.
|
||||
\l{tools/plugandpaint/plugins/basictools}{Basic Tools} plugin.
|
||||
|
||||
Since the approach is identical to
|
||||
\l{tools/plugandpaintplugins/basictools}{Basic Tools}, we won't
|
||||
\l{tools/plugandpaint/plugins/basictools}{Basic Tools}, we won't
|
||||
review the code here. The only part of interest is the
|
||||
\c .pro file, since Extra Filters is a dynamic plugin
|
||||
(\l{tools/plugandpaintplugins/basictools}{Basic Tools} is
|
||||
(\l{tools/plugandpaint/plugins/basictools}{Basic Tools} is
|
||||
linked statically into the Plug & Paint executable).
|
||||
|
||||
Here's the project file for building the Extra Filters plugin:
|
||||
|
||||
\snippet tools/plugandpaintplugins/extrafilters/extrafilters.pro 0
|
||||
\snippet tools/plugandpaint/plugins/extrafilters/extrafilters.pro 0
|
||||
|
||||
The \c .pro file differs from typical \c .pro files in many
|
||||
respects. First, it starts with a \c TEMPLATE entry specifying \c
|
||||
@ -531,9 +530,8 @@
|
||||
|
||||
The \c INCLUDEPATH variable sets the search paths for global
|
||||
headers (i.e., header files included using \c{#include <...>}).
|
||||
We add Qt's \c examples/tools directory (strictly speaking,
|
||||
\c{examples/tools/plugandpaintplugins/basictools/../..}) to the
|
||||
list, so that we can include \c <plugandpaint/interfaces.h>.
|
||||
We add \c ../../app to the list, so that we can include
|
||||
\c <interfaces.h>.
|
||||
|
||||
The \c TARGET variable specifies which name we want to give the
|
||||
target library. We use \c pnp_ as the prefix to show that the
|
||||
|
@ -5,3 +5,7 @@ SOURCES += storagemodel.cpp \
|
||||
main.cpp
|
||||
HEADERS += \
|
||||
storagemodel.h
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/itemviews/storageview
|
||||
INSTALLS += target
|
||||
|
@ -3,7 +3,3 @@ TEMPLATE = subdirs
|
||||
SUBDIRS = echowindow \
|
||||
plugin
|
||||
#! [0]
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin
|
||||
INSTALLS += target
|
||||
|
@ -17,3 +17,5 @@ win32 {
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
||||
|
@ -12,5 +12,7 @@ DESTDIR = ../plugins
|
||||
EXAMPLE_FILES = echoplugin.json
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin/plugin
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/echoplugin/plugins
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
||||
|
28
examples/widgets/tools/plugandpaint/app/app.pro
Normal file
28
examples/widgets/tools/plugandpaint/app/app.pro
Normal file
@ -0,0 +1,28 @@
|
||||
#! [0]
|
||||
TARGET = plugandpaint
|
||||
DESTDIR = ..
|
||||
|
||||
QT += widgets
|
||||
|
||||
HEADERS = interfaces.h \
|
||||
mainwindow.h \
|
||||
paintarea.h \
|
||||
plugindialog.h
|
||||
SOURCES = main.cpp \
|
||||
mainwindow.cpp \
|
||||
paintarea.cpp \
|
||||
plugindialog.cpp
|
||||
|
||||
LIBS = -L../plugins -lpnp_basictools
|
||||
|
||||
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
|
||||
mac:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)_debug
|
||||
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
|
||||
}
|
||||
#! [0]
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
@ -1,23 +1,4 @@
|
||||
#! [0]
|
||||
QT += widgets
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = plugins app
|
||||
|
||||
HEADERS = interfaces.h \
|
||||
mainwindow.h \
|
||||
paintarea.h \
|
||||
plugindialog.h
|
||||
SOURCES = main.cpp \
|
||||
mainwindow.cpp \
|
||||
paintarea.cpp \
|
||||
plugindialog.cpp
|
||||
|
||||
LIBS = -Lplugins -lpnp_basictools
|
||||
|
||||
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
|
||||
mac:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)_debug
|
||||
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
|
||||
}
|
||||
#! [0]
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint
|
||||
INSTALLS += target
|
||||
app.depends = plugins
|
||||
|
@ -2,13 +2,15 @@
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin static
|
||||
QT += widgets
|
||||
INCLUDEPATH += ../..
|
||||
INCLUDEPATH += ../../app
|
||||
HEADERS = basictoolsplugin.h
|
||||
SOURCES = basictoolsplugin.cpp
|
||||
TARGET = $$qtLibraryTarget(pnp_basictools)
|
||||
DESTDIR = ../../plugandpaint/plugins
|
||||
DESTDIR = ../../plugins
|
||||
#! [0]
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
@ -51,6 +51,9 @@
|
||||
#ifndef BASICTOOLSPLUGIN_H
|
||||
#define BASICTOOLSPLUGIN_H
|
||||
|
||||
//! [0]
|
||||
#include <interfaces.h>
|
||||
|
||||
#include <QRect>
|
||||
#include <QObject>
|
||||
#include <QtPlugin>
|
||||
@ -58,9 +61,6 @@
|
||||
#include <QPainterPath>
|
||||
#include <QImage>
|
||||
|
||||
//! [0]
|
||||
#include <plugandpaint/interfaces.h>
|
||||
|
||||
//! [1]
|
||||
class BasicToolsPlugin : public QObject,
|
||||
public BrushInterface,
|
@ -2,13 +2,15 @@
|
||||
TEMPLATE = lib
|
||||
CONFIG += plugin
|
||||
QT += widgets
|
||||
INCLUDEPATH += ../..
|
||||
INCLUDEPATH += ../../app
|
||||
HEADERS = extrafiltersplugin.h
|
||||
SOURCES = extrafiltersplugin.cpp
|
||||
TARGET = $$qtLibraryTarget(pnp_extrafilters)
|
||||
DESTDIR = ../../plugandpaint/plugins
|
||||
DESTDIR = ../../plugins
|
||||
|
||||
#! [0]
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
@ -52,13 +52,13 @@
|
||||
#define EXTRAFILTERSPLUGIN_H
|
||||
|
||||
//! [0]
|
||||
#include <interfaces.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QtPlugin>
|
||||
#include <QStringList>
|
||||
#include <QImage>
|
||||
|
||||
#include <plugandpaint/interfaces.h>
|
||||
|
||||
class ExtraFiltersPlugin : public QObject, public FilterInterface
|
||||
{
|
||||
Q_OBJECT
|
@ -20,3 +20,5 @@ EXAMPLE_FILES += simplestyle.json
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin/styles
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
||||
|
@ -1,7 +1,3 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = stylewindow \
|
||||
plugin
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin
|
||||
INSTALLS += target
|
||||
|
@ -15,3 +15,5 @@ win32 {
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/styleplugin
|
||||
INSTALLS += target
|
||||
|
||||
CONFIG += install_ok # Do not cargo-cult this!
|
||||
|
@ -5,7 +5,6 @@ SUBDIRS = \
|
||||
customcompleter \
|
||||
echoplugin \
|
||||
i18n \
|
||||
plugandpaintplugins \
|
||||
plugandpaint \
|
||||
regexp \
|
||||
regularexpression \
|
||||
@ -17,12 +16,9 @@ SUBDIRS = \
|
||||
|
||||
contains(DEFINES, QT_NO_TRANSLATION): SUBDIRS -= i18n
|
||||
|
||||
plugandpaint.depends = plugandpaintplugins
|
||||
|
||||
load(qfeatures)
|
||||
contains(QT_DISABLED_FEATURES, library) {
|
||||
SUBDIRS -= \
|
||||
echoplugin \
|
||||
plugandpaintplugins \
|
||||
plugandpaint
|
||||
}
|
||||
|
@ -33,6 +33,9 @@ QMAKE_LIBS_DYNLOAD =
|
||||
QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL
|
||||
QMAKE_LIBS_THREAD =
|
||||
|
||||
QMAKE_DSYMUTIL = dsymutil
|
||||
QMAKE_STRIP = strip
|
||||
|
||||
QMAKE_AR = ar cq
|
||||
QMAKE_RANLIB = ranlib -s
|
||||
QMAKE_NM = nm -P
|
||||
|
17
mkspecs/devices/linux-imx7-g++/qmake.conf
Normal file
17
mkspecs/devices/linux-imx7-g++/qmake.conf
Normal file
@ -0,0 +1,17 @@
|
||||
#
|
||||
# qmake configuration for the NXP iMX7 boards (single, dual and quad)
|
||||
#
|
||||
|
||||
include(../common/linux_device_pre.conf)
|
||||
|
||||
IMX7_CFLAGS = -march=armv7-a -mfpu=neon -DLINUX=1
|
||||
QMAKE_CFLAGS += $$IMX7_CFLAGS
|
||||
QMAKE_CXXFLAGS += $$IMX7_CFLAGS
|
||||
|
||||
DISTRO_OPTS += hard-float
|
||||
|
||||
QT_QPA_DEFAULT_PLATFORM = linuxfb
|
||||
|
||||
include(../common/linux_arm_device_post.conf)
|
||||
|
||||
load(qt_config)
|
40
mkspecs/devices/linux-imx7-g++/qplatformdefs.h
Normal file
40
mkspecs/devices/linux-imx7-g++/qplatformdefs.h
Normal file
@ -0,0 +1,40 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the qmake spec of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** 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 The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://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 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or (at your option) the GNU General
|
||||
** Public license version 3 or any later version approved by the KDE Free
|
||||
** Qt Foundation. The licenses are as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "../../linux-g++/qplatformdefs.h"
|
@ -12,7 +12,8 @@
|
||||
include(../common/linux_device_pre.conf)
|
||||
|
||||
QMAKE_INCDIR += \
|
||||
$$[QT_SYSROOT]/usr/include
|
||||
$$[QT_SYSROOT]/usr/include \
|
||||
$$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf
|
||||
|
||||
QMAKE_LIBDIR += \
|
||||
$$[QT_SYSROOT]/usr/lib \
|
||||
|
21
mkspecs/features/android/sdk.prf
Normal file
21
mkspecs/features/android/sdk.prf
Normal file
@ -0,0 +1,21 @@
|
||||
API_VERSION_TO_USE = $$(ANDROID_API_VERSION)
|
||||
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = $$API_VERSION
|
||||
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = android-16
|
||||
|
||||
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar
|
||||
!exists($$ANDROID_JAR_FILE) {
|
||||
ANDROID_API_VERSION = $$section(API_VERSION_TO_USE, -, 1, 1) # Get version number from android-XY to ensure numeric comparison
|
||||
ANDROID_API_VERSIONS = $$files($$ANDROID_SDK_ROOT/platforms/*)
|
||||
for (VERSION, ANDROID_API_VERSIONS) {
|
||||
BASENAME = $$basename(VERSION)
|
||||
BASENAME = $$section(BASENAME, -, 1, 1)
|
||||
greaterThan(BASENAME, $$ANDROID_API_VERSION): ANDROID_API_VERSION = $$BASENAME
|
||||
}
|
||||
API_VERSION_TO_USE = android-$$ANDROID_API_VERSION
|
||||
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar
|
||||
}
|
||||
!exists($$ANDROID_JAR_FILE) {
|
||||
error("No suitable Android SDK platform found. Minimum version is $${API_VERSION_TO_USE}.")
|
||||
}
|
||||
JAVACLASSPATH += $$ANDROID_JAR_FILE
|
||||
|
57
mkspecs/features/file_copies.prf
Normal file
57
mkspecs/features/file_copies.prf
Normal file
@ -0,0 +1,57 @@
|
||||
isEmpty(COPIES): return()
|
||||
contains(TEMPLATE, .*subdirs): error("COPIES does not work with TEMPLATE=subdirs")
|
||||
|
||||
build_pass:build_all: \
|
||||
debug_and_release:debug {
|
||||
# Avoid that multiple build passes race with each other.
|
||||
# This will fail to copy anything if the user explicitly invokes
|
||||
# only the non-primary build. This is unfixable, as at qmake time
|
||||
# we cannot possibly know how make will be invoked, yet we must
|
||||
# predict it here.
|
||||
return()
|
||||
}
|
||||
|
||||
defineReplace(qtStripProPwd) {
|
||||
return($$relative_path($$1, $$_PRO_FILE_PWD_))
|
||||
}
|
||||
|
||||
for (cp, COPIES) {
|
||||
isEmpty($${cp}.files): next()
|
||||
pfx = copy_$${cp}
|
||||
notdir = false
|
||||
dir = false
|
||||
for (f, $${cp}.files) {
|
||||
fil = $$absolute_path($$f, $$_PRO_FILE_PWD_)
|
||||
tfiles = $$files($$fil/*)
|
||||
isEmpty(tfiles): \
|
||||
notdir = true
|
||||
else: \
|
||||
dir = true
|
||||
$${pfx}.files += $$fil
|
||||
}
|
||||
$$dir:$$notdir: \
|
||||
error("COPIES entry $$cp lists both files and directories.")
|
||||
path = $$eval($${cp}.path)
|
||||
isEmpty(path): error("COPIES entry $$cp defines no .path")
|
||||
base = $$eval($${cp}.base)
|
||||
isEmpty(base) {
|
||||
$${pfx}.output = $$path/${QMAKE_FILE_IN_NAME}
|
||||
} else: isEqual(base, $$_PRO_FILE_PWD_) {
|
||||
$${pfx}.output = $$path/${QMAKE_FUNC_FILE_IN_qtStripProPwd}
|
||||
} else {
|
||||
eval(defineReplace(qtStripSrcDir_$$cp) { \
|
||||
return(\$\$relative_path(\$\$1, $$val_escape(base))) \
|
||||
})
|
||||
$${pfx}.output = $$path/${QMAKE_FUNC_FILE_IN_qtStripSrcDir_$$cp}
|
||||
}
|
||||
$${pfx}.input = $${pfx}.files
|
||||
!$$dir: \
|
||||
$${pfx}.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT_PATH}
|
||||
else: !copy_dir_files: \
|
||||
$${pfx}.commands = $$QMAKE_COPY_DIR ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT_PATH}
|
||||
else: \
|
||||
$${pfx}.commands = $$QMAKE_COPY_DIR ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
|
||||
$${pfx}.name = COPY ${QMAKE_FILE_IN}
|
||||
$${pfx}.CONFIG = no_link no_clean target_predeps
|
||||
QMAKE_EXTRA_COMPILERS += $${pfx}
|
||||
}
|
@ -1,25 +1,6 @@
|
||||
TEMPLATE = lib
|
||||
android {
|
||||
API_VERSION_TO_USE = $$(ANDROID_API_VERSION)
|
||||
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = $$API_VERSION
|
||||
isEmpty(API_VERSION_TO_USE): API_VERSION_TO_USE = android-16
|
||||
|
||||
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar
|
||||
!exists($$ANDROID_JAR_FILE) {
|
||||
ANDROID_API_VERSION = $$section(API_VERSION_TO_USE, -, 1, 1) # Get version number from android-XY to ensure numeric comparison
|
||||
ANDROID_API_VERSIONS = $$files($$ANDROID_SDK_ROOT/platforms/*)
|
||||
for (VERSION, ANDROID_API_VERSIONS) {
|
||||
BASENAME = $$basename(VERSION)
|
||||
BASENAME = $$section(BASENAME, -, 1, 1)
|
||||
greaterThan(BASENAME, $$ANDROID_API_VERSION): ANDROID_API_VERSION = $$BASENAME
|
||||
}
|
||||
API_VERSION_TO_USE = android-$$ANDROID_API_VERSION
|
||||
ANDROID_JAR_FILE = $$ANDROID_SDK_ROOT/platforms/$$API_VERSION_TO_USE/android.jar
|
||||
}
|
||||
!exists($$ANDROID_JAR_FILE) {
|
||||
error("No suitable Android SDK platform found. Minimum version is $${API_VERSION_TO_USE}.")
|
||||
}
|
||||
JAVACLASSPATH += $$ANDROID_JAR_FILE
|
||||
load(sdk)
|
||||
|
||||
# FIXME: This is a hack to work around some hardcoded values in the android.prf. The
|
||||
# android.prf should be fixed and this should be removed.
|
||||
|
@ -18,9 +18,6 @@ fq_qml_files = $$qmldir_file
|
||||
|
||||
for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
|
||||
|
||||
# Only for Qt Creator's project view
|
||||
OTHER_FILES += $$fq_qml_files
|
||||
|
||||
qml1_target: \
|
||||
instbase = $$[QT_INSTALL_IMPORTS]
|
||||
else: \
|
||||
@ -28,24 +25,6 @@ else: \
|
||||
|
||||
!qml1_target:static: CONFIG += builtin_resources
|
||||
|
||||
!force_independent:if(!debug_and_release|!build_all|CONFIG(release, debug|release)) {
|
||||
# These bizarre rules copy the files to the qtbase build directory
|
||||
|
||||
defineReplace(qmlModStripSrcDir) {
|
||||
return($$relative_path($$1, $$_PRO_FILE_PWD_))
|
||||
}
|
||||
|
||||
!builtin_resources: qmlfiles2build.input = fq_qml_files
|
||||
else: qmlfiles2build.input = qmldir_file
|
||||
qmlfiles2build.output = $$instbase/$$TARGETPATH/${QMAKE_FUNC_FILE_IN_qmlModStripSrcDir}
|
||||
!contains(TEMPLATE, vc.*): qmlfiles2build.variable_out = PRE_TARGETDEPS
|
||||
qmlfiles2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
|
||||
qmlfiles2build.name = COPY ${QMAKE_FILE_IN}
|
||||
qmlfiles2build.CONFIG = no_link no_clean
|
||||
|
||||
QMAKE_EXTRA_COMPILERS += qmlfiles2build
|
||||
}
|
||||
|
||||
builtin_resources {
|
||||
URITARGET = $$replace(URI, "\\.", "_")
|
||||
# Ensure the qml files are included in the resources
|
||||
@ -61,3 +40,5 @@ qmldir.base = $$_PRO_FILE_PWD_
|
||||
else: qmldir.files = $$qmldir_file
|
||||
qmldir.path = $$instbase/$$TARGETPATH
|
||||
INSTALLS += qmldir
|
||||
|
||||
!prefix_build: COPIES += qmldir
|
||||
|
@ -44,6 +44,10 @@ contains(TEMPLATE, .*lib) {
|
||||
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||
}
|
||||
|
||||
# The remainder of this file must not apply to bootstrapped tools,
|
||||
# as the host compiler's version and capabilities are not checked.
|
||||
host_build:force_bootstrap: return()
|
||||
|
||||
# Extra warnings for Qt non-example code, to ensure cleanliness of the sources.
|
||||
# The block below may turn these warnings into errors for some Qt targets.
|
||||
# -Wdate-time: warn if we use __DATE__ or __TIME__ (we want to be able to reproduce the exact same binary)
|
||||
@ -65,16 +69,16 @@ warnings_are_errors:warning_clean {
|
||||
# compiler.
|
||||
clang:!ios {
|
||||
# Apple clang 4.0-4.2,5.0-5.1,6.0-6.4
|
||||
# Regular clang 3.3-3.7
|
||||
# Regular clang 3.3-3.8
|
||||
apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION}
|
||||
reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION}
|
||||
contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-7]") {
|
||||
contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-8]") {
|
||||
QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR
|
||||
}
|
||||
} else:intel_icc:linux {
|
||||
# Intel CC 13.0 - 16.0, on Linux only
|
||||
# Intel CC 13.0 - 17.0, on Linux only
|
||||
ver = $${QT_ICC_MAJOR_VERSION}.$${QT_ICC_MINOR_VERSION}
|
||||
linux:contains(ver, "(1[345]\\.|16\\.0)") {
|
||||
linux:contains(ver, "(1[3456]\\.|17\\.0)") {
|
||||
# 177: function "entity" was declared but never referenced
|
||||
# (too aggressive; ICC reports even for functions created due to template instantiation)
|
||||
# 1224: #warning directive
|
||||
|
@ -47,8 +47,13 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
||||
sourcefiles += $$resrc
|
||||
}
|
||||
}
|
||||
sourcefiles += \
|
||||
$$ANDROID_PACKAGE_SOURCE_DIR \
|
||||
$$QMAKE_INFO_PLIST \
|
||||
$$DISTFILES
|
||||
extras = \
|
||||
$$_PRO_FILE_PWD_/README \
|
||||
$$_PRO_FILE_PWD_/README.TXT \
|
||||
$$files($$_PRO_FILE_PWD_/*.pri) \
|
||||
$$replace(_PRO_FILE_, \\.pro$, .qmlproject) \
|
||||
$$replace(_PRO_FILE_, \\.pro$, .json) \
|
||||
|
@ -28,7 +28,7 @@ win32 {
|
||||
}
|
||||
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}$${TARGET_VERSION_EXT}$${TARGET_EXT}
|
||||
} else {
|
||||
contains(TEMPLATE, .*lib):LIBPREFIX = lib
|
||||
contains(TEMPLATE, .*lib):!if(plugin:no_plugin_name_prefix): LIBPREFIX = lib
|
||||
|
||||
mac {
|
||||
equals(TEMPLATE, lib) {
|
||||
|
@ -51,5 +51,5 @@ equals(QMAKE_HOST.os, Windows) {
|
||||
QMAKE_SH = sh
|
||||
}
|
||||
|
||||
CONFIG = qt warn_on release link_prl
|
||||
CONFIG = file_copies qt warn_on release link_prl
|
||||
QT = core gui
|
||||
|
@ -8,6 +8,12 @@ xcodebuild {
|
||||
|
||||
load(resolve_config)
|
||||
|
||||
# Legacy exclusive build configurations for backwards compatibility
|
||||
CONFIG($${device.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \
|
||||
CONFIG += device
|
||||
else: CONFIG($${simulator.CONFIG}, $${device.CONFIG}|$${simulator.CONFIG}): \
|
||||
CONFIG += simulator
|
||||
|
||||
CONFIG(simulator, simulator|device): \
|
||||
CONFIG -= device $${device.CONFIG}
|
||||
else: \
|
||||
|
@ -1,5 +1,13 @@
|
||||
|
||||
have_target:!static:!isEmpty(QMAKE_OBJCOPY) {
|
||||
have_target:!static:if(darwin|!isEmpty(QMAKE_OBJCOPY)) {
|
||||
darwin {
|
||||
debug_info_copy_bin = $$QMAKE_DSYMUTIL
|
||||
debug_info_strip_bin = $$QMAKE_STRIP
|
||||
debug_info_suffix = dSYM
|
||||
debug_info_out = --flat -o
|
||||
debug_info_strip = -S
|
||||
} else {
|
||||
debug_info_copy_bin = $$QMAKE_OBJCOPY
|
||||
debug_info_strip_bin = $$QMAKE_OBJCOPY
|
||||
qnx {
|
||||
debug_info_suffix = sym
|
||||
debug_info_keep = --keep-file-symbols
|
||||
@ -9,21 +17,61 @@ have_target:!static:!isEmpty(QMAKE_OBJCOPY) {
|
||||
debug_info_keep = --only-keep-debug
|
||||
debug_info_strip = --strip-debug
|
||||
}
|
||||
}
|
||||
load(resolve_target)
|
||||
debug_info_target = $$QMAKE_RESOLVED_TARGET
|
||||
|
||||
darwin {
|
||||
!isEmpty(QMAKE_RESOLVED_BUNDLE) {
|
||||
debug_info_target = $$QMAKE_RESOLVED_BUNDLE
|
||||
CONFIG += any_bundle
|
||||
}
|
||||
|
||||
debug_info_target_dir = $${debug_info_target}.$$debug_info_suffix/Contents/Resources/DWARF
|
||||
!isEmpty(QMAKE_RESOLVED_BUNDLE): \
|
||||
QMAKE_TARGET_DEBUG_INFO = $$debug_info_target_dir/$$TARGET
|
||||
else: \
|
||||
QMAKE_TARGET_DEBUG_INFO = $$debug_info_target_dir/$$section(QMAKE_RESOLVED_TARGET, /, -1, -1)
|
||||
|
||||
if(any_bundle:!build_pass)|if(!any_bundle:if(build_pass|isEmpty(BUILDS))) {
|
||||
equals(TEMPLATE, lib):lib_bundle:!isEmpty(QMAKE_FRAMEWORK_BUNDLE_NAME): \
|
||||
BUNDLEIDENTIFIER = $$replace(QMAKE_FRAMEWORK_BUNDLE_NAME, \\.framework$, )
|
||||
else: equals(TEMPLATE, app):app_bundle:!isEmpty(QMAKE_APPLICATION_BUNDLE_NAME): \
|
||||
BUNDLEIDENTIFIER = $$replace(QMAKE_APPLICATION_BUNDLE_NAME, \\.app$, )
|
||||
else: \
|
||||
BUNDLEIDENTIFIER = $${TARGET}
|
||||
|
||||
!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
|
||||
BUNDLEIDENTIFIER = $$replace(QMAKE_TARGET_BUNDLE_PREFIX, \\.$, ).$${BUNDLEIDENTIFIER}
|
||||
else: \
|
||||
BUNDLEIDENTIFIER = com.yourcompany.$${BUNDLEIDENTIFIER}
|
||||
|
||||
BUNDLEIDENTIFIER ~= s,_,-,
|
||||
|
||||
debug_info_plist.input = $$QMAKESPEC/Info.plist.dSYM.in
|
||||
debug_info_plist.output = $${debug_info_target}.$$debug_info_suffix/Contents/Info.plist
|
||||
QMAKE_SUBSTITUTES += debug_info_plist
|
||||
}
|
||||
} else {
|
||||
QMAKE_TARGET_DEBUG_INFO = $${QMAKE_RESOLVED_TARGET}.$$debug_info_suffix
|
||||
}
|
||||
|
||||
shell_target = $$shell_quote($$relative_path($$QMAKE_RESOLVED_TARGET, $$OUT_PWD))
|
||||
shell_target_debug_info = $$shell_quote($$relative_path($$QMAKE_TARGET_DEBUG_INFO, $$OUT_PWD))
|
||||
copy_debug_info = $$QMAKE_OBJCOPY $$debug_info_keep $$shell_target $$shell_target_debug_info
|
||||
strip_debug_info = $$QMAKE_OBJCOPY $$debug_info_strip $$shell_target
|
||||
link_debug_info = $$QMAKE_OBJCOPY --add-gnu-debuglink=$$shell_target_debug_info $$shell_target
|
||||
chmod_debug_info = chmod -x $$shell_target_debug_info
|
||||
copy_debug_info = $$debug_info_copy_bin $$debug_info_keep $$shell_target $$debug_info_out $$shell_target_debug_info
|
||||
strip_debug_info = $$debug_info_strip_bin $$debug_info_strip $$shell_target
|
||||
|
||||
!isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
|
||||
darwin {
|
||||
mkdir_debug_info = $$QMAKE_MKDIR $$shell_quote($$debug_info_target_dir)
|
||||
QMAKE_POST_LINK = $$mkdir_debug_info && $$copy_debug_info && $$strip_debug_info $$QMAKE_POST_LINK
|
||||
} else {
|
||||
link_debug_info = $$QMAKE_OBJCOPY --add-gnu-debuglink=$$shell_target_debug_info $$shell_target
|
||||
chmod_debug_info = chmod -x $$shell_target_debug_info
|
||||
QMAKE_POST_LINK = $$copy_debug_info && $$strip_debug_info && $$link_debug_info && $$chmod_debug_info $$QMAKE_POST_LINK
|
||||
}
|
||||
silent:QMAKE_POST_LINK = @echo creating $@.$$debug_info_suffix && $$QMAKE_POST_LINK
|
||||
|
||||
target.targets += $$QMAKE_TARGET_DEBUG_INFO
|
||||
QMAKE_DISTCLEAN += $$QMAKE_TARGET_DEBUG_INFO
|
||||
}
|
||||
|
||||
|
18
mkspecs/macx-clang-32/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-clang-32/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-clang/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-clang/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-g++-32/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-g++-32/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-g++/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-g++/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-g++40/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-g++40/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-g++42/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-g++42/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-icc/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-icc/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-ios-clang/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-ios-clang/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
18
mkspecs/macx-llvm/Info.plist.dSYM.in
Normal file
18
mkspecs/macx-llvm/Info.plist.dSYM.in
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
|
||||
<plist version=\"1.0\">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.xcode.dsym.$${BUNDLEIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>dSYM</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
!!IF !isEmpty(VERSION)
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$${VER_MAJ}.$${VER_MIN}.$${VER_PAT}</string>
|
||||
!!ENDIF
|
||||
</dict>
|
||||
</plist>
|
@ -266,7 +266,7 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", grp_it.key().section(Option::dir_sep, -1)) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
}
|
||||
|
||||
@ -694,7 +694,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("children", grp_it.value(), SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", grp_it.key().section(Option::dir_sep, -1)) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
}
|
||||
|
||||
@ -1032,7 +1032,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_LIBRARIES"), SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", grp) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
}
|
||||
}
|
||||
@ -1146,7 +1146,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("children", bundle_file_refs, SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", "Bundle Data") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
}
|
||||
|
||||
@ -1231,7 +1231,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_PRODUCTS"), SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", "Products") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
}
|
||||
|
||||
@ -1241,7 +1241,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||
<< "\t\t\t" << writeSettings("children", project->values("QMAKE_PBX_GROUPS"), SettingsAsList, 4) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("isa", "PBXGroup", SettingsNoQuote) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("name", project->first("QMAKE_ORIG_TARGET")) << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<Group>") << ";\n"
|
||||
<< "\t\t\t" << writeSettings("sourceTree", "<group>") << ";\n"
|
||||
<< "\t\t};\n";
|
||||
|
||||
{
|
||||
|
@ -1612,7 +1612,7 @@ MakefileGenerator::replaceExtraCompilerVariables(
|
||||
const ProKey funcname = var.mid(19).toKey();
|
||||
val += project->expand(funcname, QList<ProStringList>() << ProStringList(in));
|
||||
} else if(var == QLatin1String("QMAKE_FILE_BASE") || var == QLatin1String("QMAKE_FILE_IN_BASE")) {
|
||||
//filePath = true;
|
||||
filePath = true;
|
||||
for(int i = 0; i < in.size(); ++i) {
|
||||
QFileInfo fi(fileInfo(Option::normalizePath(in.at(i))));
|
||||
QString base = fi.completeBaseName();
|
||||
@ -1620,7 +1620,7 @@ MakefileGenerator::replaceExtraCompilerVariables(
|
||||
base = fi.fileName();
|
||||
val += base;
|
||||
}
|
||||
} else if(var == QLatin1String("QMAKE_FILE_EXT")) {
|
||||
} else if (var == QLatin1String("QMAKE_FILE_EXT") || var == QLatin1String("QMAKE_FILE_IN_EXT")) {
|
||||
filePath = true;
|
||||
for(int i = 0; i < in.size(); ++i) {
|
||||
QFileInfo fi(fileInfo(Option::normalizePath(in.at(i))));
|
||||
@ -1633,6 +1633,10 @@ MakefileGenerator::replaceExtraCompilerVariables(
|
||||
ext = fi.fileName().remove(0, baseLen);
|
||||
val += ext;
|
||||
}
|
||||
} else if (var == QLatin1String("QMAKE_FILE_IN_NAME")) {
|
||||
filePath = true;
|
||||
for (int i = 0; i < in.size(); ++i)
|
||||
val += fileInfo(Option::normalizePath(in.at(i))).fileName();
|
||||
} else if(var == QLatin1String("QMAKE_FILE_PATH") || var == QLatin1String("QMAKE_FILE_IN_PATH")) {
|
||||
filePath = true;
|
||||
for(int i = 0; i < in.size(); ++i)
|
||||
@ -1649,12 +1653,16 @@ MakefileGenerator::replaceExtraCompilerVariables(
|
||||
filePath = true;
|
||||
const ProKey funcname = var.mid(20).toKey();
|
||||
val += project->expand(funcname, QList<ProStringList>() << ProStringList(out));
|
||||
} else if (var == QLatin1String("QMAKE_FILE_OUT_PATH")) {
|
||||
filePath = true;
|
||||
for (int i = 0; i < out.size(); ++i)
|
||||
val += fileInfo(Option::normalizePath(out.at(i))).path();
|
||||
} else if(var == QLatin1String("QMAKE_FILE_OUT")) {
|
||||
filePath = true;
|
||||
for(int i = 0; i < out.size(); ++i)
|
||||
val += fileInfo(Option::normalizePath(out.at(i))).filePath();
|
||||
} else if(var == QLatin1String("QMAKE_FILE_OUT_BASE")) {
|
||||
//filePath = true;
|
||||
filePath = true;
|
||||
for(int i = 0; i < out.size(); ++i) {
|
||||
QFileInfo fi(fileInfo(Option::normalizePath(out.at(i))));
|
||||
QString base = fi.completeBaseName();
|
||||
|
@ -405,9 +405,9 @@ static bool matchWhileUnsplitting(const char *buffer, int buffer_len, int start,
|
||||
int *matchlen, int *lines)
|
||||
{
|
||||
int x = start;
|
||||
for (int n = 0; n < needle_len && x < buffer_len;
|
||||
for (int n = 0; n < needle_len;
|
||||
n++, x = skipEscapedLineEnds(buffer, buffer_len, x + 1, lines)) {
|
||||
if (buffer[x] != needle[n])
|
||||
if (x >= buffer_len || buffer[x] != needle[n])
|
||||
return false;
|
||||
}
|
||||
// That also skipped any remaining BSNLs immediately after the match.
|
||||
@ -550,7 +550,14 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
InCode // after directive, parsing non-#include directive or in actual code
|
||||
} cpp_state = AtStart;
|
||||
|
||||
for(int x = 0; x < buffer_len; ++x) {
|
||||
int x = 0;
|
||||
if (buffer_len >= 3) {
|
||||
const unsigned char *p = (unsigned char *)buffer;
|
||||
// skip UTF-8 BOM, if present
|
||||
if (p[0] == 0xEF && p[1] == 0xBB && p[2] == 0xBF)
|
||||
x += 3;
|
||||
}
|
||||
for (; x < buffer_len; ++x) {
|
||||
bool try_local = true;
|
||||
char *inc = 0;
|
||||
if(file->type == QMakeSourceFileInfo::TYPE_UI) {
|
||||
@ -561,24 +568,29 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
++x;
|
||||
if (buffer_len >= x + 12 && !strncmp(buffer + x, "includehint", 11) &&
|
||||
(buffer[x + 11] == ' ' || buffer[x + 11] == '>')) {
|
||||
for (x += 11; buffer[x] != '>'; ++x) {} // skip
|
||||
for (x += 11; x < buffer_len && buffer[x] != '>'; ++x) {} // skip
|
||||
int inc_len = 0;
|
||||
for (x += 1 ; buffer[x + inc_len] != '<'; ++inc_len) {} // skip
|
||||
for (++x; x + inc_len < buffer_len && buffer[x + inc_len] != '<'; ++inc_len) {} // skip
|
||||
if (x + inc_len < buffer_len) {
|
||||
buffer[x + inc_len] = '\0';
|
||||
inc = buffer + x;
|
||||
}
|
||||
} else if (buffer_len >= x + 13 && !strncmp(buffer + x, "customwidget", 12) &&
|
||||
(buffer[x + 12] == ' ' || buffer[x + 12] == '>')) {
|
||||
for (x += 13; buffer[x] != '>'; ++x) {} // skip up to >
|
||||
for (x += 13; x < buffer_len && buffer[x] != '>'; ++x) {} // skip up to >
|
||||
while(x < buffer_len) {
|
||||
for (x++; buffer[x] != '<'; ++x) {} // skip up to <
|
||||
while (++x < buffer_len && buffer[x] != '<') {} // skip up to <
|
||||
x++;
|
||||
if(buffer_len >= x + 7 && !strncmp(buffer+x, "header", 6) &&
|
||||
(buffer[x + 6] == ' ' || buffer[x + 6] == '>')) {
|
||||
for (x += 7; buffer[x] != '>'; ++x) {} // skip up to >
|
||||
for (x += 7; x < buffer_len && buffer[x] != '>'; ++x) {} // skip up to >
|
||||
int inc_len = 0;
|
||||
for (x += 1 ; buffer[x + inc_len] != '<'; ++inc_len) {} // skip
|
||||
for (++x; x + inc_len < buffer_len && buffer[x + inc_len] != '<';
|
||||
++inc_len) {} // skip
|
||||
if (x + inc_len < buffer_len) {
|
||||
buffer[x + inc_len] = '\0';
|
||||
inc = buffer + x;
|
||||
}
|
||||
break;
|
||||
} else if(buffer_len >= x + 14 && !strncmp(buffer+x, "/customwidget", 13) &&
|
||||
(buffer[x + 13] == ' ' || buffer[x + 13] == '>')) {
|
||||
@ -588,20 +600,18 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
}
|
||||
} else if(buffer_len >= x + 8 && !strncmp(buffer + x, "include", 7) &&
|
||||
(buffer[x + 7] == ' ' || buffer[x + 7] == '>')) {
|
||||
for (x += 8; buffer[x] != '>'; ++x) {
|
||||
for (x += 8; x < buffer_len && buffer[x] != '>'; ++x) {
|
||||
if (buffer_len >= x + 9 && buffer[x] == 'i' &&
|
||||
!strncmp(buffer + x, "impldecl", 8)) {
|
||||
for (x += 8; buffer[x] != '='; ++x) {} // skip
|
||||
if (buffer[x] != '=')
|
||||
continue;
|
||||
for (++x; buffer[x] == '\t' || buffer[x] == ' '; ++x) {} // skip
|
||||
for (x += 8; x < buffer_len && buffer[x] != '='; ++x) {} // skip
|
||||
while (++x < buffer_len && (buffer[x] == '\t' || buffer[x] == ' ')) {} // skip
|
||||
char quote = 0;
|
||||
if (buffer[x] == '\'' || buffer[x] == '"') {
|
||||
if (x < buffer_len && (buffer[x] == '\'' || buffer[x] == '"')) {
|
||||
quote = buffer[x];
|
||||
++x;
|
||||
}
|
||||
int val_len;
|
||||
for(val_len = 0; true; ++val_len) {
|
||||
for (val_len = 0; x + val_len < buffer_len; ++val_len) {
|
||||
if(quote) {
|
||||
if (buffer[x + val_len] == quote)
|
||||
break;
|
||||
@ -611,18 +621,24 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
}
|
||||
}
|
||||
//? char saved = buffer[x + val_len];
|
||||
if (x + val_len < buffer_len) {
|
||||
buffer[x + val_len] = '\0';
|
||||
if(!strcmp(buffer+x, "in implementation")) {
|
||||
if (!strcmp(buffer + x, "in implementation")) {
|
||||
//### do this
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int inc_len = 0;
|
||||
for (x += 1 ; buffer[x + inc_len] != '<'; ++inc_len) {} // skip
|
||||
for (++x; x + inc_len < buffer_len && buffer[x + inc_len] != '<';
|
||||
++inc_len) {} // skip
|
||||
|
||||
if (x + inc_len < buffer_len) {
|
||||
buffer[x + inc_len] = '\0';
|
||||
inc = buffer + x;
|
||||
}
|
||||
}
|
||||
}
|
||||
//read past new line now..
|
||||
for (; x < buffer_len && !qmake_endOfLine(buffer[x]); ++x) {} // skip
|
||||
++line_count;
|
||||
@ -634,14 +650,16 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
#define SKIP_BSNL(pos) skipEscapedLineEnds(buffer, buffer_len, (pos), &line_count)
|
||||
|
||||
// Seek code or directive, skipping comments and space:
|
||||
for(; x < buffer_len; ++x) {
|
||||
x = SKIP_BSNL(x);
|
||||
for (; (x = SKIP_BSNL(x)) < buffer_len; ++x) {
|
||||
if (buffer[x] == ' ' || buffer[x] == '\t') {
|
||||
// keep going
|
||||
} else if (buffer[x] == '/') {
|
||||
int extralines = 0;
|
||||
int y = skipEscapedLineEnds(buffer, buffer_len, x + 1, &extralines);
|
||||
if (buffer[y] == '/') { // C++-style comment
|
||||
if (y >= buffer_len) {
|
||||
x = y;
|
||||
break;
|
||||
} else if (buffer[y] == '/') { // C++-style comment
|
||||
line_count += extralines;
|
||||
x = SKIP_BSNL(y + 1);
|
||||
while (x < buffer_len && !qmake_endOfLine(buffer[x]))
|
||||
@ -652,8 +670,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
|
||||
} else if (buffer[y] == '*') { // C-style comment
|
||||
line_count += extralines;
|
||||
x = y;
|
||||
while (++x < buffer_len) {
|
||||
x = SKIP_BSNL(x);
|
||||
while ((x = SKIP_BSNL(++x)) < buffer_len) {
|
||||
if (buffer[x] == '*') {
|
||||
extralines = 0;
|
||||
y = skipEscapedLineEnds(buffer, buffer_len,
|
||||
|
@ -225,9 +225,7 @@ MakefileGenerator
|
||||
build_proj->setExtraVars(basevars);
|
||||
build_proj->setExtraConfigs(basecfgs);
|
||||
|
||||
build_proj->read(project->projectFile());
|
||||
|
||||
//done
|
||||
if (build_proj->read(project->projectFile()))
|
||||
return createMakefileGenerator(build_proj);
|
||||
}
|
||||
return 0;
|
||||
|
1
src/3rdparty/angle/AUTHORS
vendored
1
src/3rdparty/angle/AUTHORS
vendored
@ -41,3 +41,4 @@ Aitor Moreno
|
||||
Yuri O'Donnell
|
||||
Josh Soref
|
||||
Maks Naumov
|
||||
Jinyoung Hur
|
||||
|
3
src/3rdparty/angle/CONTRIBUTORS
vendored
3
src/3rdparty/angle/CONTRIBUTORS
vendored
@ -90,6 +90,7 @@ Microsoft Corporation
|
||||
Cooper Partin
|
||||
Austin Kinross
|
||||
Minmin Gong
|
||||
Shawn Hargreaves
|
||||
|
||||
Microsoft Open Technologies, Inc.
|
||||
Cooper Partin
|
||||
@ -99,6 +100,8 @@ NVIDIA Corporation
|
||||
Olli Etuaho
|
||||
Arun Patole
|
||||
Qingqing Deng
|
||||
Kimmo Kinnunen
|
||||
|
||||
Opera Software ASA
|
||||
Daniel Bratell
|
||||
Tomasz Moniuszko
|
||||
|
6
src/3rdparty/angle/include/EGL/egl.h
vendored
6
src/3rdparty/angle/include/EGL/egl.h
vendored
@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2015 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@ -33,12 +33,12 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 29318 $ on $Date: 2015-01-02 03:16:10 -0800 (Fri, 02 Jan 2015) $
|
||||
** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
/* Generated on date 20150102 */
|
||||
/* Generated on date 20150623 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
|
236
src/3rdparty/angle/include/EGL/eglext.h
vendored
236
src/3rdparty/angle/include/EGL/eglext.h
vendored
@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2015 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@ -33,12 +33,12 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 27018 $ on $Date: 2014-06-10 08:06:12 -0700 (Tue, 10 Jun 2014) $
|
||||
** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20140610
|
||||
#define EGL_EGLEXT_VERSION 20150623
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@ -94,12 +94,28 @@ EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type,
|
||||
#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
|
||||
#endif /* EGL_KHR_create_context */
|
||||
|
||||
#ifndef EGL_KHR_create_context_no_error
|
||||
#define EGL_KHR_create_context_no_error 1
|
||||
#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
|
||||
#endif /* EGL_KHR_create_context_no_error */
|
||||
|
||||
#ifndef EGL_KHR_fence_sync
|
||||
#define EGL_KHR_fence_sync 1
|
||||
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
|
||||
#ifdef KHRONOS_SUPPORT_INT64
|
||||
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
|
||||
#define EGL_SYNC_CONDITION_KHR 0x30F8
|
||||
#define EGL_SYNC_FENCE_KHR 0x30F9
|
||||
typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
|
||||
typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
|
||||
EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
|
||||
#endif
|
||||
#endif /* KHRONOS_SUPPORT_INT64 */
|
||||
#endif /* EGL_KHR_fence_sync */
|
||||
|
||||
@ -207,6 +223,15 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface s
|
||||
#endif
|
||||
#endif /* EGL_KHR_lock_surface3 */
|
||||
|
||||
#ifndef EGL_KHR_partial_update
|
||||
#define EGL_KHR_partial_update 1
|
||||
#define EGL_BUFFER_AGE_KHR 0x313D
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
|
||||
#endif
|
||||
#endif /* EGL_KHR_partial_update */
|
||||
|
||||
#ifndef EGL_KHR_platform_android
|
||||
#define EGL_KHR_platform_android 1
|
||||
#define EGL_PLATFORM_ANDROID_KHR 0x3141
|
||||
@ -230,7 +255,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface s
|
||||
|
||||
#ifndef EGL_KHR_reusable_sync
|
||||
#define EGL_KHR_reusable_sync 1
|
||||
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
|
||||
#ifdef KHRONOS_SUPPORT_INT64
|
||||
#define EGL_SYNC_STATUS_KHR 0x30F1
|
||||
#define EGL_SIGNALED_KHR 0x30F2
|
||||
@ -242,17 +266,9 @@ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
|
||||
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
|
||||
#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
|
||||
#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0)
|
||||
typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
|
||||
typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
|
||||
EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
|
||||
#endif
|
||||
#endif /* KHRONOS_SUPPORT_INT64 */
|
||||
#endif /* EGL_KHR_reusable_sync */
|
||||
@ -354,6 +370,14 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy,
|
||||
#define EGL_KHR_surfaceless_context 1
|
||||
#endif /* EGL_KHR_surfaceless_context */
|
||||
|
||||
#ifndef EGL_KHR_swap_buffers_with_damage
|
||||
#define EGL_KHR_swap_buffers_with_damage 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
|
||||
#endif
|
||||
#endif /* EGL_KHR_swap_buffers_with_damage */
|
||||
|
||||
#ifndef EGL_KHR_vg_parent_image
|
||||
#define EGL_KHR_vg_parent_image 1
|
||||
#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
|
||||
@ -410,10 +434,16 @@ EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR
|
||||
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
|
||||
#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
|
||||
|
||||
#ifndef EGL_ANGLE_window_fixed_size
|
||||
#define EGL_ANGLE_window_fixed_size 1
|
||||
#define EGL_FIXED_SIZE_ANGLE 0x3201
|
||||
#endif /* EGL_ANGLE_window_fixed_size */
|
||||
#ifndef EGL_ANGLE_device_d3d
|
||||
#define EGL_ANGLE_device_d3d 1
|
||||
#define EGL_D3D9_DEVICE_ANGLE 0x33A0
|
||||
#define EGL_D3D11_DEVICE_ANGLE 0x33A1
|
||||
#endif /* EGL_ANGLE_device_d3d */
|
||||
|
||||
#ifndef EGL_ANGLE_keyed_mutex
|
||||
#define EGL_ANGLE_keyed_mutex 1
|
||||
#define EGL_DXGI_KEYED_MUTEX_ANGLE 0x33A2
|
||||
#endif /* EGL_ANGLE_keyed_mutex */
|
||||
|
||||
#ifndef EGL_ANGLE_query_surface_pointer
|
||||
#define EGL_ANGLE_query_surface_pointer 1
|
||||
@ -438,6 +468,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
|
||||
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
|
||||
#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
|
||||
|
||||
#ifndef EGL_ANGLE_direct_composition
|
||||
#define EGL_ANGLE_direct_composition 1
|
||||
#define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5
|
||||
#endif /* EGL_ANGLE_direct_composition */
|
||||
|
||||
#ifndef EGL_ANGLE_platform_angle
|
||||
#define EGL_ANGLE_platform_angle 1
|
||||
#define EGL_PLATFORM_ANGLE_ANGLE 0x3202
|
||||
@ -464,6 +499,36 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
|
||||
#define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E
|
||||
#endif /* EGL_ANGLE_platform_angle_opengl */
|
||||
|
||||
#ifndef EGL_ANGLE_window_fixed_size
|
||||
#define EGL_ANGLE_window_fixed_size 1
|
||||
#define EGL_FIXED_SIZE_ANGLE 0x3201
|
||||
#endif /* EGL_ANGLE_window_fixed_size */
|
||||
|
||||
#ifndef EGL_ANGLE_x11_visual
|
||||
#define EGL_ANGLE_x11_visual
|
||||
#define EGL_X11_VISUAL_ID_ANGLE 0x33A3
|
||||
#endif /* EGL_ANGLE_x11_visual */
|
||||
|
||||
#ifndef EGL_ANGLE_flexible_surface_compatibility
|
||||
#define EGL_ANGLE_flexible_surface_compatibility 1
|
||||
#define EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6
|
||||
#endif /* EGL_ANGLE_flexible_surface_compatibility */
|
||||
|
||||
#ifndef EGL_ANGLE_surface_orientation
|
||||
#define EGL_ANGLE_surface_orientation
|
||||
#define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7
|
||||
#define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8
|
||||
#define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001
|
||||
#define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002
|
||||
#endif /* EGL_ANGLE_surface_orientation */
|
||||
|
||||
#ifndef EGL_ANGLE_experimental_present_path
|
||||
#define EGL_ANGLE_experimental_present_path
|
||||
#define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4
|
||||
#define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9
|
||||
#define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA
|
||||
#endif /* EGL_ANGLE_experimental_present_path */
|
||||
|
||||
#ifndef EGL_ARM_pixmap_multisample_discard
|
||||
#define EGL_ARM_pixmap_multisample_discard 1
|
||||
#define EGL_DISCARD_SAMPLES_ARM 0x3286
|
||||
@ -504,6 +569,34 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#endif
|
||||
#endif /* EGL_EXT_device_base */
|
||||
|
||||
#ifndef EGL_ANGLE_device_creation
|
||||
#define EGL_ANGLE_device_creation 1
|
||||
typedef EGLDeviceEXT (EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE (EGLint device_type, void *native_device, const EGLAttrib *attrib_list);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE (EGLDeviceEXT device);
|
||||
#endif
|
||||
#endif /* EGL_ANGLE_device_creation */
|
||||
|
||||
#ifndef EGL_EXT_device_drm
|
||||
#define EGL_EXT_device_drm 1
|
||||
#define EGL_DRM_DEVICE_FILE_EXT 0x3233
|
||||
#endif /* EGL_EXT_device_drm */
|
||||
|
||||
#ifndef EGL_EXT_device_enumeration
|
||||
#define EGL_EXT_device_enumeration 1
|
||||
#endif /* EGL_EXT_device_enumeration */
|
||||
|
||||
#ifndef EGL_EXT_device_openwf
|
||||
#define EGL_EXT_device_openwf 1
|
||||
#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
|
||||
#endif /* EGL_EXT_device_openwf */
|
||||
|
||||
#ifndef EGL_EXT_device_query
|
||||
#define EGL_EXT_device_query 1
|
||||
#endif /* EGL_EXT_device_query */
|
||||
|
||||
#ifndef EGL_EXT_image_dma_buf_import
|
||||
#define EGL_EXT_image_dma_buf_import 1
|
||||
#define EGL_LINUX_DMA_BUF_EXT 0x3270
|
||||
@ -535,6 +628,48 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
|
||||
#endif /* EGL_EXT_multiview_window */
|
||||
|
||||
#ifndef EGL_EXT_output_base
|
||||
#define EGL_EXT_output_base 1
|
||||
typedef void *EGLOutputLayerEXT;
|
||||
typedef void *EGLOutputPortEXT;
|
||||
#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0)
|
||||
#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0)
|
||||
#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
|
||||
#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
|
||||
#define EGL_SWAP_INTERVAL_EXT 0x322F
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
|
||||
typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
|
||||
typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
|
||||
EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
|
||||
EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
|
||||
#endif
|
||||
#endif /* EGL_EXT_output_base */
|
||||
|
||||
#ifndef EGL_EXT_output_drm
|
||||
#define EGL_EXT_output_drm 1
|
||||
#define EGL_DRM_CRTC_EXT 0x3234
|
||||
#define EGL_DRM_PLANE_EXT 0x3235
|
||||
#define EGL_DRM_CONNECTOR_EXT 0x3236
|
||||
#endif /* EGL_EXT_output_drm */
|
||||
|
||||
#ifndef EGL_EXT_output_openwf
|
||||
#define EGL_EXT_output_openwf 1
|
||||
#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
|
||||
#define EGL_OPENWF_PORT_ID_EXT 0x3239
|
||||
#endif /* EGL_EXT_output_openwf */
|
||||
|
||||
#ifndef EGL_EXT_platform_base
|
||||
#define EGL_EXT_platform_base 1
|
||||
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
|
||||
@ -568,6 +703,14 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
|
||||
#define EGL_PROTECTED_CONTENT_EXT 0x32C0
|
||||
#endif /* EGL_EXT_protected_surface */
|
||||
|
||||
#ifndef EGL_EXT_stream_consumer_egloutput
|
||||
#define EGL_EXT_stream_consumer_egloutput 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
|
||||
#endif
|
||||
#endif /* EGL_EXT_stream_consumer_egloutput */
|
||||
|
||||
#ifndef EGL_EXT_swap_buffers_with_damage
|
||||
#define EGL_EXT_swap_buffers_with_damage 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
|
||||
@ -576,6 +719,35 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSu
|
||||
#endif
|
||||
#endif /* EGL_EXT_swap_buffers_with_damage */
|
||||
|
||||
#ifndef EGL_EXT_yuv_surface
|
||||
#define EGL_EXT_yuv_surface 1
|
||||
#define EGL_YUV_ORDER_EXT 0x3301
|
||||
#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
|
||||
#define EGL_YUV_SUBSAMPLE_EXT 0x3312
|
||||
#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
|
||||
#define EGL_YUV_CSC_STANDARD_EXT 0x330A
|
||||
#define EGL_YUV_PLANE_BPP_EXT 0x331A
|
||||
#define EGL_YUV_BUFFER_EXT 0x3300
|
||||
#define EGL_YUV_ORDER_YUV_EXT 0x3302
|
||||
#define EGL_YUV_ORDER_YVU_EXT 0x3303
|
||||
#define EGL_YUV_ORDER_YUYV_EXT 0x3304
|
||||
#define EGL_YUV_ORDER_UYVY_EXT 0x3305
|
||||
#define EGL_YUV_ORDER_YVYU_EXT 0x3306
|
||||
#define EGL_YUV_ORDER_VYUY_EXT 0x3307
|
||||
#define EGL_YUV_ORDER_AYUV_EXT 0x3308
|
||||
#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
|
||||
#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
|
||||
#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
|
||||
#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
|
||||
#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
|
||||
#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
|
||||
#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
|
||||
#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
|
||||
#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
|
||||
#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
|
||||
#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
|
||||
#endif /* EGL_EXT_yuv_surface */
|
||||
|
||||
#ifndef EGL_HI_clientpixmap
|
||||
#define EGL_HI_clientpixmap 1
|
||||
struct EGLClientPixmapHI {
|
||||
@ -624,6 +796,16 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR
|
||||
#endif
|
||||
#endif /* EGL_MESA_drm_image */
|
||||
|
||||
#ifndef EGL_MESA_image_dma_buf_export
|
||||
#define EGL_MESA_image_dma_buf_export 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
|
||||
#endif
|
||||
#endif /* EGL_MESA_image_dma_buf_export */
|
||||
|
||||
#ifndef EGL_MESA_platform_gbm
|
||||
#define EGL_MESA_platform_gbm 1
|
||||
#define EGL_PLATFORM_GBM_MESA 0x31D7
|
||||
@ -668,6 +850,13 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurfa
|
||||
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
|
||||
#endif /* EGL_NV_coverage_sample_resolve */
|
||||
|
||||
#ifndef EGL_NV_cuda_event
|
||||
#define EGL_NV_cuda_event 1
|
||||
#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
|
||||
#define EGL_SYNC_CUDA_EVENT_NV 0x323C
|
||||
#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
|
||||
#endif /* EGL_NV_cuda_event */
|
||||
|
||||
#ifndef EGL_NV_depth_nonlinear
|
||||
#define EGL_NV_depth_nonlinear 1
|
||||
#define EGL_DEPTH_ENCODING_NV 0x30E2
|
||||
@ -675,6 +864,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurfa
|
||||
#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
|
||||
#endif /* EGL_NV_depth_nonlinear */
|
||||
|
||||
#ifndef EGL_NV_device_cuda
|
||||
#define EGL_NV_device_cuda 1
|
||||
#define EGL_CUDA_DEVICE_NV 0x323A
|
||||
#endif /* EGL_NV_device_cuda */
|
||||
|
||||
#ifndef EGL_NV_native_query
|
||||
#define EGL_NV_native_query 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
|
||||
@ -757,6 +951,16 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
|
||||
#endif /* KHRONOS_SUPPORT_INT64 */
|
||||
#endif /* EGL_NV_system_time */
|
||||
|
||||
#ifndef EGL_TIZEN_image_native_buffer
|
||||
#define EGL_TIZEN_image_native_buffer 1
|
||||
#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
|
||||
#endif /* EGL_TIZEN_image_native_buffer */
|
||||
|
||||
#ifndef EGL_TIZEN_image_native_surface
|
||||
#define EGL_TIZEN_image_native_surface 1
|
||||
#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
|
||||
#endif /* EGL_TIZEN_image_native_surface */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
16
src/3rdparty/angle/include/EGL/eglplatform.h
vendored
16
src/3rdparty/angle/include/EGL/eglplatform.h
vendored
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
/* Platform-specific types and definitions for egl.h
|
||||
* $Revision: 23432 $ on $Date: 2013-10-09 00:57:24 -0700 (Wed, 09 Oct 2013) $
|
||||
* $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $
|
||||
*
|
||||
* Adopters may modify khrplatform.h and this file to suit their platform.
|
||||
* You are encouraged to submit all modifications to the Khronos group so that
|
||||
@ -99,6 +99,12 @@ typedef struct ANativeWindow* EGLNativeWindowType;
|
||||
typedef struct egl_native_pixmap_t* EGLNativePixmapType;
|
||||
typedef void* EGLNativeDisplayType;
|
||||
|
||||
#elif defined(USE_OZONE)
|
||||
|
||||
typedef intptr_t EGLNativeDisplayType;
|
||||
typedef intptr_t EGLNativeWindowType;
|
||||
typedef intptr_t EGLNativePixmapType;
|
||||
|
||||
#elif defined(__unix__)
|
||||
|
||||
/* X11 (tentative) */
|
||||
@ -111,11 +117,15 @@ typedef Window EGLNativeWindowType;
|
||||
|
||||
#elif defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
|
||||
|
||||
// TODO(jmadill): native implementation for OSX
|
||||
#if defined(__OBJC__)
|
||||
@class CALayer;
|
||||
#else
|
||||
class CALayer;
|
||||
#endif
|
||||
|
||||
typedef void *EGLNativeDisplayType;
|
||||
typedef void *EGLNativePixmapType;
|
||||
typedef void *EGLNativeWindowType;
|
||||
typedef CALayer *EGLNativeWindowType;
|
||||
|
||||
#else
|
||||
#error "Platform not recognized"
|
||||
|
537
src/3rdparty/angle/include/GLES2/gl2.h
vendored
537
src/3rdparty/angle/include/GLES2/gl2.h
vendored
@ -1,56 +1,87 @@
|
||||
#ifndef __gl2_h_
|
||||
#define __gl2_h_
|
||||
|
||||
/* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */
|
||||
|
||||
#include <GLES2/gl2platform.h>
|
||||
#define __gl2_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||
** Copyright (c) 2013-2015 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are 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 Materials.
|
||||
**
|
||||
** THE MATERIALS ARE 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
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 31811 $ on $Date: 2015-08-10 00:01:11 -0700 (Mon, 10 Aug 2015) $
|
||||
*/
|
||||
|
||||
#include <GLES2/gl2platform.h>
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20150809 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
* Profile: common
|
||||
* Versions considered: 2\.[0-9]
|
||||
* Versions emitted: .*
|
||||
* Default extensions included: None
|
||||
* Additional extensions included: _nomatch_^
|
||||
* Extensions removed: _nomatch_^
|
||||
*/
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Data type definitions
|
||||
*-----------------------------------------------------------------------*/
|
||||
|
||||
typedef void GLvoid;
|
||||
typedef char GLchar;
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef unsigned int GLbitfield;
|
||||
#ifndef GL_ES_VERSION_2_0
|
||||
#define GL_ES_VERSION_2_0 1
|
||||
#include <KHR/khrplatform.h>
|
||||
typedef khronos_int8_t GLbyte;
|
||||
typedef short GLshort;
|
||||
typedef int GLint;
|
||||
typedef int GLsizei;
|
||||
typedef khronos_uint8_t GLubyte;
|
||||
typedef unsigned short GLushort;
|
||||
typedef unsigned int GLuint;
|
||||
typedef khronos_float_t GLfloat;
|
||||
typedef khronos_float_t GLclampf;
|
||||
typedef khronos_int32_t GLfixed;
|
||||
|
||||
/* GL types for handling large vertex buffer objects */
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
typedef short GLshort;
|
||||
typedef unsigned short GLushort;
|
||||
typedef void GLvoid;
|
||||
typedef struct __GLsync *GLsync;
|
||||
typedef khronos_int64_t GLint64;
|
||||
typedef khronos_uint64_t GLuint64;
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned int GLuint;
|
||||
typedef char GLchar;
|
||||
typedef khronos_float_t GLfloat;
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
|
||||
/* OpenGL ES core versions */
|
||||
#define GL_ES_VERSION_2_0 1
|
||||
|
||||
/* ClearBufferMask */
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef int GLint;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef int GLsizei;
|
||||
typedef khronos_uint8_t GLubyte;
|
||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||
#define GL_STENCIL_BUFFER_BIT 0x00000400
|
||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||
|
||||
/* Boolean */
|
||||
#define GL_FALSE 0
|
||||
#define GL_TRUE 1
|
||||
|
||||
/* BeginMode */
|
||||
#define GL_POINTS 0x0000
|
||||
#define GL_LINES 0x0001
|
||||
#define GL_LINE_LOOP 0x0002
|
||||
@ -58,18 +89,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_TRIANGLES 0x0004
|
||||
#define GL_TRIANGLE_STRIP 0x0005
|
||||
#define GL_TRIANGLE_FAN 0x0006
|
||||
|
||||
/* AlphaFunction (not supported in ES20) */
|
||||
/* GL_NEVER */
|
||||
/* GL_LESS */
|
||||
/* GL_EQUAL */
|
||||
/* GL_LEQUAL */
|
||||
/* GL_GREATER */
|
||||
/* GL_NOTEQUAL */
|
||||
/* GL_GEQUAL */
|
||||
/* GL_ALWAYS */
|
||||
|
||||
/* BlendingFactorDest */
|
||||
#define GL_ZERO 0
|
||||
#define GL_ONE 1
|
||||
#define GL_SRC_COLOR 0x0300
|
||||
@ -78,29 +97,15 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||
#define GL_DST_ALPHA 0x0304
|
||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||
|
||||
/* BlendingFactorSrc */
|
||||
/* GL_ZERO */
|
||||
/* GL_ONE */
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
/* GL_SRC_ALPHA */
|
||||
/* GL_ONE_MINUS_SRC_ALPHA */
|
||||
/* GL_DST_ALPHA */
|
||||
/* GL_ONE_MINUS_DST_ALPHA */
|
||||
|
||||
/* BlendEquationSeparate */
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009
|
||||
#define GL_BLEND_EQUATION_ALPHA 0x883D
|
||||
|
||||
/* BlendSubtract */
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
|
||||
/* Separate Blend Functions */
|
||||
#define GL_BLEND_DST_RGB 0x80C8
|
||||
#define GL_BLEND_SRC_RGB 0x80C9
|
||||
#define GL_BLEND_DST_ALPHA 0x80CA
|
||||
@ -110,38 +115,19 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
|
||||
/* Buffer Objects */
|
||||
#define GL_ARRAY_BUFFER 0x8892
|
||||
#define GL_ELEMENT_ARRAY_BUFFER 0x8893
|
||||
#define GL_ARRAY_BUFFER_BINDING 0x8894
|
||||
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
|
||||
|
||||
#define GL_STREAM_DRAW 0x88E0
|
||||
#define GL_STATIC_DRAW 0x88E4
|
||||
#define GL_DYNAMIC_DRAW 0x88E8
|
||||
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
|
||||
#define GL_CURRENT_VERTEX_ATTRIB 0x8626
|
||||
|
||||
/* CullFaceMode */
|
||||
#define GL_FRONT 0x0404
|
||||
#define GL_BACK 0x0405
|
||||
#define GL_FRONT_AND_BACK 0x0408
|
||||
|
||||
/* DepthFunction */
|
||||
/* GL_NEVER */
|
||||
/* GL_LESS */
|
||||
/* GL_EQUAL */
|
||||
/* GL_LEQUAL */
|
||||
/* GL_GREATER */
|
||||
/* GL_NOTEQUAL */
|
||||
/* GL_GEQUAL */
|
||||
/* GL_ALWAYS */
|
||||
|
||||
/* EnableCap */
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
#define GL_CULL_FACE 0x0B44
|
||||
#define GL_BLEND 0x0BE2
|
||||
@ -152,19 +138,13 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_POLYGON_OFFSET_FILL 0x8037
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
|
||||
/* ErrorCode */
|
||||
#define GL_NO_ERROR 0
|
||||
#define GL_INVALID_ENUM 0x0500
|
||||
#define GL_INVALID_VALUE 0x0501
|
||||
#define GL_INVALID_OPERATION 0x0502
|
||||
#define GL_OUT_OF_MEMORY 0x0505
|
||||
|
||||
/* FrontFaceDirection */
|
||||
#define GL_CW 0x0900
|
||||
#define GL_CCW 0x0901
|
||||
|
||||
/* GetPName */
|
||||
#define GL_LINE_WIDTH 0x0B21
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
@ -191,7 +171,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
|
||||
#define GL_VIEWPORT 0x0BA2
|
||||
#define GL_SCISSOR_BOX 0x0C10
|
||||
/* GL_SCISSOR_TEST */
|
||||
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||
#define GL_COLOR_WRITEMASK 0x0C23
|
||||
#define GL_UNPACK_ALIGNMENT 0x0CF5
|
||||
@ -206,32 +185,18 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_DEPTH_BITS 0x0D56
|
||||
#define GL_STENCIL_BITS 0x0D57
|
||||
#define GL_POLYGON_OFFSET_UNITS 0x2A00
|
||||
/* GL_POLYGON_OFFSET_FILL */
|
||||
#define GL_POLYGON_OFFSET_FACTOR 0x8038
|
||||
#define GL_TEXTURE_BINDING_2D 0x8069
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
|
||||
/* GetTextureParameter */
|
||||
/* GL_TEXTURE_MAG_FILTER */
|
||||
/* GL_TEXTURE_MIN_FILTER */
|
||||
/* GL_TEXTURE_WRAP_S */
|
||||
/* GL_TEXTURE_WRAP_T */
|
||||
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
|
||||
/* HintMode */
|
||||
#define GL_DONT_CARE 0x1100
|
||||
#define GL_FASTEST 0x1101
|
||||
#define GL_NICEST 0x1102
|
||||
|
||||
/* HintTarget */
|
||||
#define GL_GENERATE_MIPMAP_HINT 0x8192
|
||||
|
||||
/* DataType */
|
||||
#define GL_BYTE 0x1400
|
||||
#define GL_UNSIGNED_BYTE 0x1401
|
||||
#define GL_SHORT 0x1402
|
||||
@ -240,22 +205,15 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_UNSIGNED_INT 0x1405
|
||||
#define GL_FLOAT 0x1406
|
||||
#define GL_FIXED 0x140C
|
||||
|
||||
/* PixelFormat */
|
||||
#define GL_DEPTH_COMPONENT 0x1902
|
||||
#define GL_ALPHA 0x1906
|
||||
#define GL_RGB 0x1907
|
||||
#define GL_RGBA 0x1908
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_LUMINANCE_ALPHA 0x190A
|
||||
|
||||
/* PixelType */
|
||||
/* GL_UNSIGNED_BYTE */
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
|
||||
/* Shaders */
|
||||
#define GL_FRAGMENT_SHADER 0x8B30
|
||||
#define GL_VERTEX_SHADER 0x8B31
|
||||
#define GL_MAX_VERTEX_ATTRIBS 0x8869
|
||||
@ -276,8 +234,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
|
||||
#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
|
||||
#define GL_CURRENT_PROGRAM 0x8B8D
|
||||
|
||||
/* StencilFunction */
|
||||
#define GL_NEVER 0x0200
|
||||
#define GL_LESS 0x0201
|
||||
#define GL_EQUAL 0x0202
|
||||
@ -286,9 +242,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_NOTEQUAL 0x0205
|
||||
#define GL_GEQUAL 0x0206
|
||||
#define GL_ALWAYS 0x0207
|
||||
|
||||
/* StencilOp */
|
||||
/* GL_ZERO */
|
||||
#define GL_KEEP 0x1E00
|
||||
#define GL_REPLACE 0x1E01
|
||||
#define GL_INCR 0x1E02
|
||||
@ -296,35 +249,21 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_INVERT 0x150A
|
||||
#define GL_INCR_WRAP 0x8507
|
||||
#define GL_DECR_WRAP 0x8508
|
||||
|
||||
/* StringName */
|
||||
#define GL_VENDOR 0x1F00
|
||||
#define GL_RENDERER 0x1F01
|
||||
#define GL_VERSION 0x1F02
|
||||
#define GL_EXTENSIONS 0x1F03
|
||||
|
||||
/* TextureMagFilter */
|
||||
#define GL_NEAREST 0x2600
|
||||
#define GL_LINEAR 0x2601
|
||||
|
||||
/* TextureMinFilter */
|
||||
/* GL_NEAREST */
|
||||
/* GL_LINEAR */
|
||||
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
|
||||
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
|
||||
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
|
||||
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
|
||||
|
||||
/* TextureParameterName */
|
||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||
#define GL_TEXTURE_WRAP_S 0x2802
|
||||
#define GL_TEXTURE_WRAP_T 0x2803
|
||||
|
||||
/* TextureTarget */
|
||||
/* GL_TEXTURE_2D */
|
||||
#define GL_TEXTURE 0x1702
|
||||
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
@ -334,8 +273,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
|
||||
/* TextureUnit */
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
@ -369,13 +306,9 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
|
||||
/* TextureWrapMode */
|
||||
#define GL_REPEAT 0x2901
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MIRRORED_REPEAT 0x8370
|
||||
|
||||
/* Uniform Types */
|
||||
#define GL_FLOAT_VEC2 0x8B50
|
||||
#define GL_FLOAT_VEC3 0x8B51
|
||||
#define GL_FLOAT_VEC4 0x8B52
|
||||
@ -391,8 +324,6 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_FLOAT_MAT4 0x8B5C
|
||||
#define GL_SAMPLER_2D 0x8B5E
|
||||
#define GL_SAMPLER_CUBE 0x8B60
|
||||
|
||||
/* Vertex Arrays */
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
|
||||
@ -400,39 +331,27 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
|
||||
|
||||
/* Read Format */
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
|
||||
|
||||
/* Shader Source */
|
||||
#define GL_COMPILE_STATUS 0x8B81
|
||||
#define GL_INFO_LOG_LENGTH 0x8B84
|
||||
#define GL_SHADER_SOURCE_LENGTH 0x8B88
|
||||
#define GL_SHADER_COMPILER 0x8DFA
|
||||
|
||||
/* Shader Binary */
|
||||
#define GL_SHADER_BINARY_FORMATS 0x8DF8
|
||||
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
|
||||
|
||||
/* Shader Precision-Specified Types */
|
||||
#define GL_LOW_FLOAT 0x8DF0
|
||||
#define GL_MEDIUM_FLOAT 0x8DF1
|
||||
#define GL_HIGH_FLOAT 0x8DF2
|
||||
#define GL_LOW_INT 0x8DF3
|
||||
#define GL_MEDIUM_INT 0x8DF4
|
||||
#define GL_HIGH_INT 0x8DF5
|
||||
|
||||
/* Framebuffer Object. */
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
#define GL_RENDERBUFFER 0x8D41
|
||||
|
||||
#define GL_RGBA4 0x8056
|
||||
#define GL_RGB5_A1 0x8057
|
||||
#define GL_RGB565 0x8D62
|
||||
#define GL_DEPTH_COMPONENT16 0x81A5
|
||||
#define GL_STENCIL_INDEX8 0x8D48
|
||||
|
||||
#define GL_RENDERBUFFER_WIDTH 0x8D42
|
||||
#define GL_RENDERBUFFER_HEIGHT 0x8D43
|
||||
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
|
||||
@ -442,76 +361,208 @@ typedef khronos_ssize_t GLsizeiptr;
|
||||
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
|
||||
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
|
||||
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
|
||||
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
|
||||
|
||||
#define GL_COLOR_ATTACHMENT0 0x8CE0
|
||||
#define GL_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
|
||||
#define GL_NONE 0
|
||||
|
||||
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
|
||||
|
||||
#define GL_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* GL core functions.
|
||||
*-----------------------------------------------------------------------*/
|
||||
|
||||
typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
|
||||
typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
|
||||
typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
|
||||
typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
|
||||
typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
|
||||
typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
|
||||
typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
|
||||
typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
|
||||
typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
|
||||
typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
|
||||
typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
|
||||
typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
|
||||
typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
|
||||
typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
|
||||
GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
|
||||
GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode );
|
||||
GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
|
||||
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
|
||||
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
|
||||
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
|
||||
GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth);
|
||||
GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d);
|
||||
GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
|
||||
GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
|
||||
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
|
||||
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
|
||||
GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
|
||||
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
|
||||
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glFinish (void);
|
||||
@ -519,37 +570,37 @@ GL_APICALL void GL_APIENTRY glFlush (void);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
|
||||
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
|
||||
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
|
||||
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
|
||||
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL GLenum GL_APIENTRY glGetError (void);
|
||||
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
|
||||
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
|
||||
GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
|
||||
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
|
||||
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
|
||||
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
|
||||
GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
|
||||
@ -562,59 +613,61 @@ GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
|
||||
GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
|
||||
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
|
||||
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
|
||||
GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
|
||||
GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
|
||||
GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
|
||||
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
|
||||
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
|
||||
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
|
||||
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x);
|
||||
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x);
|
||||
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
|
||||
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
|
||||
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
|
||||
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
|
||||
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
#endif /* GL_ES_VERSION_2_0 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __gl2_h_ */
|
||||
#endif
|
||||
|
4223
src/3rdparty/angle/include/GLES2/gl2ext.h
vendored
4223
src/3rdparty/angle/include/GLES2/gl2ext.h
vendored
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
#ifndef __gl2platform_h_
|
||||
#define __gl2platform_h_
|
||||
|
||||
/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
|
||||
/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
|
898
src/3rdparty/angle/include/GLES3/gl3.h
vendored
898
src/3rdparty/angle/include/GLES3/gl3.h
vendored
File diff suppressed because it is too large
Load Diff
1524
src/3rdparty/angle/include/GLES3/gl31.h
vendored
Normal file
1524
src/3rdparty/angle/include/GLES3/gl31.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1825
src/3rdparty/angle/include/GLES3/gl32.h
vendored
Normal file
1825
src/3rdparty/angle/include/GLES3/gl32.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
#ifndef __gl3platform_h_
|
||||
#define __gl3platform_h_
|
||||
|
||||
/* $Revision: 18437 $ on $Date:: 2012-07-08 23:31:39 -0700 #$ */
|
||||
/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
|
66
src/3rdparty/angle/include/GLSLANG/ShaderLang.h
vendored
66
src/3rdparty/angle/include/GLSLANG/ShaderLang.h
vendored
@ -48,7 +48,7 @@ typedef unsigned int GLenum;
|
||||
|
||||
// Version number for shader translation API.
|
||||
// It is incremented every time the API changes.
|
||||
#define ANGLE_SH_VERSION 134
|
||||
#define ANGLE_SH_VERSION 143
|
||||
|
||||
typedef enum {
|
||||
SH_GLES2_SPEC = 0x8B40,
|
||||
@ -80,17 +80,35 @@ typedef enum {
|
||||
SH_CSS_SHADERS_SPEC = 0x8B42
|
||||
} ShShaderSpec;
|
||||
|
||||
typedef enum {
|
||||
typedef enum
|
||||
{
|
||||
// ESSL output only supported in some configurations.
|
||||
SH_ESSL_OUTPUT = 0x8B45,
|
||||
// SH_GLSL_OUTPUT is deprecated. This is to not break the build.
|
||||
SH_GLSL_OUTPUT = 0x8B46,
|
||||
|
||||
// GLSL output only supported in some configurations.
|
||||
SH_GLSL_COMPATIBILITY_OUTPUT = 0x8B46,
|
||||
SH_GLSL_CORE_OUTPUT = 0x8B47,
|
||||
// Note: GL introduced core profiles in 1.5.
|
||||
SH_GLSL_130_OUTPUT = 0x8B47,
|
||||
SH_GLSL_140_OUTPUT = 0x8B80,
|
||||
SH_GLSL_150_CORE_OUTPUT = 0x8B81,
|
||||
SH_GLSL_330_CORE_OUTPUT = 0x8B82,
|
||||
SH_GLSL_400_CORE_OUTPUT = 0x8B83,
|
||||
SH_GLSL_410_CORE_OUTPUT = 0x8B84,
|
||||
SH_GLSL_420_CORE_OUTPUT = 0x8B85,
|
||||
SH_GLSL_430_CORE_OUTPUT = 0x8B86,
|
||||
SH_GLSL_440_CORE_OUTPUT = 0x8B87,
|
||||
SH_GLSL_450_CORE_OUTPUT = 0x8B88,
|
||||
|
||||
// HLSL output only supported in some configurations.
|
||||
// Deprecated:
|
||||
SH_HLSL_OUTPUT = 0x8B48,
|
||||
SH_HLSL9_OUTPUT = 0x8B48,
|
||||
SH_HLSL11_OUTPUT = 0x8B49
|
||||
SH_HLSL11_OUTPUT = 0x8B49,
|
||||
|
||||
// Prefer using these to specify HLSL output type:
|
||||
SH_HLSL_3_0_OUTPUT = 0x8B48, // D3D 9
|
||||
SH_HLSL_4_1_OUTPUT = 0x8B49, // D3D 11
|
||||
SH_HLSL_4_0_FL9_3_OUTPUT = 0x8B4A // D3D 11 feature level 9_3
|
||||
} ShShaderOutput;
|
||||
|
||||
// Compile options.
|
||||
@ -177,6 +195,19 @@ typedef enum {
|
||||
// It is intended as a workaround for drivers that do not handle
|
||||
// struct scopes correctly, including all Mac drivers and Linux AMD.
|
||||
SH_REGENERATE_STRUCT_NAMES = 0x80000,
|
||||
|
||||
// This flag makes the compiler not prune unused function early in the
|
||||
// compilation process. Pruning coupled with SH_LIMIT_CALL_STACK_DEPTH
|
||||
// helps avoid bad shaders causing stack overflows.
|
||||
SH_DONT_PRUNE_UNUSED_FUNCTIONS = 0x100000,
|
||||
|
||||
// This flag works around a bug in NVIDIA 331 series drivers related
|
||||
// to pow(x, y) where y is a constant vector.
|
||||
SH_REMOVE_POW_WITH_CONSTANT_EXPONENT = 0x200000,
|
||||
|
||||
// This flag works around bugs in Mac drivers related to do-while by
|
||||
// transforming them into an other construct.
|
||||
SH_REWRITE_DO_WHILE_LOOPS = 0x400000,
|
||||
} ShCompileOptions;
|
||||
|
||||
// Defines alternate strategies for implementing array index clamping.
|
||||
@ -225,6 +256,7 @@ typedef struct
|
||||
int OES_standard_derivatives;
|
||||
int OES_EGL_image_external;
|
||||
int ARB_texture_rectangle;
|
||||
int EXT_blend_func_extended;
|
||||
int EXT_draw_buffers;
|
||||
int EXT_frag_depth;
|
||||
int EXT_shader_texture_lod;
|
||||
@ -239,7 +271,9 @@ typedef struct
|
||||
// function. This applies to Tegra K1 devices.
|
||||
int NV_draw_buffers;
|
||||
|
||||
// Set to 1 if highp precision is supported in the fragment language.
|
||||
// Set to 1 if highp precision is supported in the ESSL 1.00 version of the
|
||||
// fragment language. Does not affect versions of the language where highp
|
||||
// support is mandatory.
|
||||
// Default is 0.
|
||||
int FragmentPrecisionHigh;
|
||||
|
||||
@ -249,6 +283,13 @@ typedef struct
|
||||
int MinProgramTexelOffset;
|
||||
int MaxProgramTexelOffset;
|
||||
|
||||
// Extension constants.
|
||||
|
||||
// Value of GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT for OpenGL ES output context.
|
||||
// Value of GL_MAX_DUAL_SOURCE_DRAW_BUFFERS for OpenGL output context.
|
||||
// GLES SL version 100 gl_MaxDualSourceDrawBuffersEXT value for EXT_blend_func_extended.
|
||||
int MaxDualSourceDrawBuffers;
|
||||
|
||||
// Name Hashing.
|
||||
// Set a 64 bit hash function to enable user-defined name hashing.
|
||||
// Default is NULL.
|
||||
@ -298,9 +339,9 @@ COMPILER_EXPORT const std::string &ShGetBuiltInResourcesString(const ShHandle ha
|
||||
// type: Specifies the type of shader - GL_FRAGMENT_SHADER or GL_VERTEX_SHADER.
|
||||
// spec: Specifies the language spec the compiler must conform to -
|
||||
// SH_GLES2_SPEC or SH_WEBGL_SPEC.
|
||||
// output: Specifies the output code type - SH_ESSL_OUTPUT, SH_GLSL_OUTPUT,
|
||||
// SH_HLSL9_OUTPUT or SH_HLSL11_OUTPUT. Note: HLSL output is only
|
||||
// supported in some configurations.
|
||||
// output: Specifies the output code type - for example SH_ESSL_OUTPUT, SH_GLSL_OUTPUT,
|
||||
// SH_HLSL_3_0_OUTPUT or SH_HLSL_4_1_OUTPUT. Note: Each output type may only
|
||||
// be supported in some configurations.
|
||||
// resources: Specifies the built-in resources.
|
||||
COMPILER_EXPORT ShHandle ShConstructCompiler(
|
||||
sh::GLenum type,
|
||||
@ -339,6 +380,9 @@ COMPILER_EXPORT bool ShCompile(
|
||||
size_t numStrings,
|
||||
int compileOptions);
|
||||
|
||||
// Clears the results from the previous compilation.
|
||||
COMPILER_EXPORT void ShClearResults(const ShHandle handle);
|
||||
|
||||
// Return the version of the shader language.
|
||||
COMPILER_EXPORT int ShGetShaderVersion(const ShHandle handle);
|
||||
|
||||
@ -373,7 +417,7 @@ COMPILER_EXPORT const std::map<std::string, std::string> *ShGetNameHashingMap(
|
||||
COMPILER_EXPORT const std::vector<sh::Uniform> *ShGetUniforms(const ShHandle handle);
|
||||
COMPILER_EXPORT const std::vector<sh::Varying> *ShGetVaryings(const ShHandle handle);
|
||||
COMPILER_EXPORT const std::vector<sh::Attribute> *ShGetAttributes(const ShHandle handle);
|
||||
COMPILER_EXPORT const std::vector<sh::Attribute> *ShGetOutputVariables(const ShHandle handle);
|
||||
COMPILER_EXPORT const std::vector<sh::OutputVariable> *ShGetOutputVariables(const ShHandle handle);
|
||||
COMPILER_EXPORT const std::vector<sh::InterfaceBlock> *ShGetInterfaceBlocks(const ShHandle handle);
|
||||
|
||||
typedef struct
|
||||
|
46
src/3rdparty/angle/include/GLSLANG/ShaderVars.h
vendored
46
src/3rdparty/angle/include/GLSLANG/ShaderVars.h
vendored
@ -70,6 +70,8 @@ struct COMPILER_EXPORT ShaderVariable
|
||||
const ShaderVariable **leafVar,
|
||||
std::string* originalFullName) const;
|
||||
|
||||
bool isBuiltIn() const { return name.compare(0, 3, "gl_") == 0; }
|
||||
|
||||
GLenum type;
|
||||
GLenum precision;
|
||||
std::string name;
|
||||
@ -108,19 +110,39 @@ struct COMPILER_EXPORT Uniform : public ShaderVariable
|
||||
bool isSameUniformAtLinkTime(const Uniform &other) const;
|
||||
};
|
||||
|
||||
struct COMPILER_EXPORT Attribute : public ShaderVariable
|
||||
// An interface variable is a variable which passes data between the GL data structures and the
|
||||
// shader execution: either vertex shader inputs or fragment shader outputs. These variables can
|
||||
// have integer locations to pass back to the GL API.
|
||||
struct COMPILER_EXPORT InterfaceVariable : public ShaderVariable
|
||||
{
|
||||
InterfaceVariable();
|
||||
~InterfaceVariable();
|
||||
InterfaceVariable(const InterfaceVariable &other);
|
||||
InterfaceVariable &operator=(const InterfaceVariable &other);
|
||||
bool operator==(const InterfaceVariable &other) const;
|
||||
bool operator!=(const InterfaceVariable &other) const { return !operator==(other); }
|
||||
|
||||
int location;
|
||||
};
|
||||
|
||||
struct COMPILER_EXPORT Attribute : public InterfaceVariable
|
||||
{
|
||||
Attribute();
|
||||
~Attribute();
|
||||
Attribute(const Attribute &other);
|
||||
Attribute &operator=(const Attribute &other);
|
||||
bool operator==(const Attribute &other) const;
|
||||
bool operator!=(const Attribute &other) const
|
||||
{
|
||||
return !operator==(other);
|
||||
}
|
||||
bool operator!=(const Attribute &other) const { return !operator==(other); }
|
||||
};
|
||||
|
||||
int location;
|
||||
struct COMPILER_EXPORT OutputVariable : public InterfaceVariable
|
||||
{
|
||||
OutputVariable();
|
||||
~OutputVariable();
|
||||
OutputVariable(const OutputVariable &other);
|
||||
OutputVariable &operator=(const OutputVariable &other);
|
||||
bool operator==(const OutputVariable &other) const;
|
||||
bool operator!=(const OutputVariable &other) const { return !operator==(other); }
|
||||
};
|
||||
|
||||
struct COMPILER_EXPORT InterfaceBlockField : public ShaderVariable
|
||||
@ -159,7 +181,12 @@ struct COMPILER_EXPORT Varying : public ShaderVariable
|
||||
|
||||
// Decide whether two varyings are the same at shader link time,
|
||||
// assuming one from vertex shader and the other from fragment shader.
|
||||
// See GLSL ES Spec 3.00.3, sec 4.3.9.
|
||||
// Invariance needs to match only in ESSL1. Relevant spec sections:
|
||||
// GLSL ES 3.00.4, sections 4.6.1 and 4.3.9.
|
||||
// GLSL ES 1.00.17, section 4.6.4.
|
||||
bool isSameVaryingAtLinkTime(const Varying &other, int shaderVersion) const;
|
||||
|
||||
// Deprecated version of isSameVaryingAtLinkTime, which assumes ESSL1.
|
||||
bool isSameVaryingAtLinkTime(const Varying &other) const;
|
||||
|
||||
InterpolationType interpolation;
|
||||
@ -173,6 +200,9 @@ struct COMPILER_EXPORT InterfaceBlock
|
||||
InterfaceBlock(const InterfaceBlock &other);
|
||||
InterfaceBlock &operator=(const InterfaceBlock &other);
|
||||
|
||||
// Fields from blocks with non-empty instance names are prefixed with the block name.
|
||||
std::string fieldPrefix() const;
|
||||
|
||||
std::string name;
|
||||
std::string mappedName;
|
||||
std::string instanceName;
|
||||
@ -183,6 +213,6 @@ struct COMPILER_EXPORT InterfaceBlock
|
||||
std::vector<InterfaceBlockField> fields;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace sh
|
||||
|
||||
#endif // GLSLANG_SHADERVARS_H_
|
||||
|
3
src/3rdparty/angle/include/angle_gl.h
vendored
3
src/3rdparty/angle/include/angle_gl.h
vendored
@ -13,7 +13,8 @@
|
||||
#include "GLES2/gl2.h"
|
||||
#include "GLES2/gl2ext.h"
|
||||
#include "GLES3/gl3.h"
|
||||
#include "GLES3/gl3ext.h"
|
||||
#include "GLES3/gl31.h"
|
||||
#include "GLES3/gl32.h"
|
||||
|
||||
// The following enum is used in ANGLE, but is from desktop GL
|
||||
#ifndef GL_SAMPLER_2D_RECT_ARB
|
||||
|
14
src/3rdparty/angle/include/angle_windowsstore.h
vendored
14
src/3rdparty/angle/include/angle_windowsstore.h
vendored
@ -28,10 +28,24 @@ const wchar_t EGLNativeWindowTypeProperty[] = L"EGLNativeWindowTypeProperty";
|
||||
// Description: Set this property to specify a preferred size in pixels of the render surface.
|
||||
// The render surface size width and height must be greater than 0.
|
||||
// If this property is set, then the render surface size is fixed.
|
||||
// The render surface will then be scaled to the window dimensions.
|
||||
// If this property is missing, a default behavior will be provided.
|
||||
// The default behavior uses the window size if a CoreWindow is specified or
|
||||
// the size of the SwapChainPanel control if one is specified.
|
||||
//
|
||||
const wchar_t EGLRenderSurfaceSizeProperty[] = L"EGLRenderSurfaceSizeProperty";
|
||||
|
||||
//
|
||||
// Property: EGLRenderResolutionScaleProperty
|
||||
// Type: Single
|
||||
// Description: Use this to specify a preferred scale for the render surface compared to the window.
|
||||
// For example, if the window is 800x480, and:
|
||||
// - scale is set to 0.5f then the surface will be 400x240
|
||||
// - scale is set to 1.2f then the surface will be 960x576
|
||||
// If the window resizes or rotates then the surface will resize accordingly.
|
||||
// EGLRenderResolutionScaleProperty and EGLRenderSurfaceSizeProperty cannot both be set.
|
||||
// The scale factor should be > 0.0f.
|
||||
//
|
||||
const wchar_t EGLRenderResolutionScaleProperty[] = L"EGLRenderResolutionScaleProperty";
|
||||
|
||||
#endif // ANGLE_WINDOWSSTORE_H_
|
||||
|
78
src/3rdparty/angle/include/platform/Platform.h
vendored
78
src/3rdparty/angle/include/platform/Platform.h
vendored
@ -11,7 +11,24 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "../export.h"
|
||||
#if defined(_WIN32)
|
||||
# if !defined(LIBANGLE_IMPLEMENTATION)
|
||||
# define ANGLE_PLATFORM_EXPORT __declspec(dllimport)
|
||||
# endif
|
||||
#elif defined(__GNUC__)
|
||||
# if defined(LIBANGLE_IMPLEMENTATION)
|
||||
# define ANGLE_PLATFORM_EXPORT __attribute__((visibility ("default")))
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(ANGLE_PLATFORM_EXPORT)
|
||||
# define ANGLE_PLATFORM_EXPORT
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
# define ANGLE_APIENTRY __stdcall
|
||||
#else
|
||||
# define ANGLE_APIENTRY
|
||||
#endif
|
||||
|
||||
namespace angle
|
||||
{
|
||||
@ -20,8 +37,39 @@ class Platform
|
||||
{
|
||||
public:
|
||||
|
||||
// System --------------------------------------------------------------
|
||||
|
||||
// Wall clock time in seconds since the epoch.
|
||||
// TODO(jmadill): investigate using an ANGLE internal time library
|
||||
virtual double currentTime() { return 0; }
|
||||
|
||||
// Monotonically increasing time in seconds from an arbitrary fixed point in the past.
|
||||
// This function is expected to return at least millisecond-precision values. For this reason,
|
||||
// it is recommended that the fixed point be no further in the past than the epoch.
|
||||
virtual double monotonicallyIncreasingTime() { return 0; }
|
||||
|
||||
// Logging ------------------------------------------------------------
|
||||
|
||||
// Log an error message within the platform implementation.
|
||||
virtual void logError(const char *errorMessage) {}
|
||||
|
||||
// Log a warning message within the platform implementation.
|
||||
virtual void logWarning(const char *warningMessage) {}
|
||||
|
||||
// Log an info message within the platform implementation.
|
||||
virtual void logInfo(const char *infoMessage) {}
|
||||
|
||||
// Tracing --------
|
||||
|
||||
// Get a pointer to the enabled state of the given trace category. The
|
||||
// embedder can dynamically change the enabled state as trace event
|
||||
// recording is started and stopped by the application. Only long-lived
|
||||
// literal strings should be given as the category name. The implementation
|
||||
// expects the returned pointer to be held permanently in a local static. If
|
||||
// the unsigned char is non-zero, tracing is enabled. If tracing is enabled,
|
||||
// addTraceEvent is expected to be called by the trace event macros.
|
||||
virtual const unsigned char *getTraceCategoryEnabledFlag(const char *categoryName) { return 0; }
|
||||
|
||||
typedef uint64_t TraceEventHandle;
|
||||
|
||||
// Add a trace event to the platform tracing system. Depending on the actual
|
||||
@ -47,6 +95,7 @@ class Platform
|
||||
// - id optionally allows events of the same name to be distinguished from
|
||||
// each other. For example, to trace the consutruction and destruction of
|
||||
// objects, specify the pointer as the id parameter.
|
||||
// - timestamp should be a time value returned from monotonicallyIncreasingTime.
|
||||
// - numArgs specifies the number of elements in argNames, argTypes, and
|
||||
// argValues.
|
||||
// - argNames is the array of argument names. Use long-lived literal strings
|
||||
@ -84,15 +133,17 @@ class Platform
|
||||
}
|
||||
|
||||
// Set the duration field of a COMPLETE trace event.
|
||||
virtual void updateTraceEventDuration(const unsigned char* categoryEnabledFlag, const char* name, TraceEventHandle) { }
|
||||
virtual void updateTraceEventDuration(const unsigned char *categoryEnabledFlag, const char *name, TraceEventHandle eventHandle) { }
|
||||
|
||||
// Callbacks for reporting histogram data.
|
||||
// CustomCounts histogram has exponential bucket sizes, so that min=1, max=1000000, bucketCount=50 would do.
|
||||
virtual void histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount) { }
|
||||
virtual void histogramCustomCounts(const char *name, int sample, int min, int max, int bucketCount) { }
|
||||
// Enumeration histogram buckets are linear, boundaryValue should be larger than any possible sample value.
|
||||
virtual void histogramEnumeration(const char* name, int sample, int boundaryValue) { }
|
||||
virtual void histogramEnumeration(const char *name, int sample, int boundaryValue) { }
|
||||
// Unlike enumeration histograms, sparse histograms only allocate memory for non-empty buckets.
|
||||
virtual void histogramSparse(const char* name, int sample) { }
|
||||
virtual void histogramSparse(const char *name, int sample) { }
|
||||
// Boolean histograms track two-state variables.
|
||||
virtual void histogramBoolean(const char *name, bool sample) { }
|
||||
|
||||
protected:
|
||||
virtual ~Platform() { }
|
||||
@ -100,13 +151,18 @@ class Platform
|
||||
|
||||
}
|
||||
|
||||
typedef void(*ANGLEPlatformInitializeFunc)(angle::Platform*);
|
||||
ANGLE_EXPORT void ANGLEPlatformInitialize(angle::Platform*);
|
||||
extern "C"
|
||||
{
|
||||
|
||||
typedef void (*ANGLEPlatformShutdownFunc)();
|
||||
ANGLE_EXPORT void ANGLEPlatformShutdown();
|
||||
typedef void (ANGLE_APIENTRY *ANGLEPlatformInitializeFunc)(angle::Platform*);
|
||||
ANGLE_PLATFORM_EXPORT void ANGLE_APIENTRY ANGLEPlatformInitialize(angle::Platform*);
|
||||
|
||||
typedef angle::Platform *(*ANGLEPlatformCurrentFunc)();
|
||||
ANGLE_EXPORT angle::Platform *ANGLEPlatformCurrent();
|
||||
typedef void (ANGLE_APIENTRY *ANGLEPlatformShutdownFunc)();
|
||||
ANGLE_PLATFORM_EXPORT void ANGLE_APIENTRY ANGLEPlatformShutdown();
|
||||
|
||||
typedef angle::Platform *(ANGLE_APIENTRY *ANGLEPlatformCurrentFunc)();
|
||||
ANGLE_PLATFORM_EXPORT angle::Platform *ANGLE_APIENTRY ANGLEPlatformCurrent();
|
||||
|
||||
}
|
||||
|
||||
#endif // ANGLE_PLATFORM_H
|
||||
|
156
src/3rdparty/angle/src/common/BitSetIterator.h
vendored
Normal file
156
src/3rdparty/angle/src/common/BitSetIterator.h
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
//
|
||||
// Copyright 2015 The ANGLE Project Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
//
|
||||
// BitSetIterator:
|
||||
// A helper class to quickly bitscan bitsets for set bits.
|
||||
//
|
||||
|
||||
#ifndef COMMON_BITSETITERATOR_H_
|
||||
#define COMMON_BITSETITERATOR_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <bitset>
|
||||
|
||||
#include "common/angleutils.h"
|
||||
#include "common/debug.h"
|
||||
#include "common/mathutil.h"
|
||||
#include "common/platform.h"
|
||||
|
||||
namespace angle
|
||||
{
|
||||
template <size_t N>
|
||||
class BitSetIterator final
|
||||
{
|
||||
public:
|
||||
BitSetIterator(const std::bitset<N> &bitset);
|
||||
BitSetIterator(const BitSetIterator &other);
|
||||
BitSetIterator &operator=(const BitSetIterator &other);
|
||||
|
||||
class Iterator final
|
||||
{
|
||||
public:
|
||||
Iterator(const std::bitset<N> &bits);
|
||||
Iterator &operator++();
|
||||
|
||||
bool operator==(const Iterator &other) const;
|
||||
bool operator!=(const Iterator &other) const;
|
||||
unsigned long operator*() const { return mCurrentBit; }
|
||||
|
||||
private:
|
||||
unsigned long getNextBit();
|
||||
|
||||
static const size_t BitsPerWord = sizeof(unsigned long) * 8;
|
||||
std::bitset<N> mBits;
|
||||
unsigned long mCurrentBit;
|
||||
unsigned long mOffset;
|
||||
};
|
||||
|
||||
Iterator begin() const { return Iterator(mBits); }
|
||||
Iterator end() const { return Iterator(std::bitset<N>(0)); }
|
||||
|
||||
private:
|
||||
const std::bitset<N> mBits;
|
||||
};
|
||||
|
||||
template <size_t N>
|
||||
BitSetIterator<N>::BitSetIterator(const std::bitset<N> &bitset)
|
||||
: mBits(bitset)
|
||||
{
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
BitSetIterator<N>::BitSetIterator(const BitSetIterator &other)
|
||||
: mBits(other.mBits)
|
||||
{
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
BitSetIterator<N> &BitSetIterator<N>::operator=(const BitSetIterator &other)
|
||||
{
|
||||
mBits = other.mBits;
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
BitSetIterator<N>::Iterator::Iterator(const std::bitset<N> &bits)
|
||||
: mBits(bits), mCurrentBit(0), mOffset(0)
|
||||
{
|
||||
if (bits.any())
|
||||
{
|
||||
mCurrentBit = getNextBit();
|
||||
}
|
||||
else
|
||||
{
|
||||
mOffset = static_cast<unsigned long>(rx::roundUp(N, BitsPerWord));
|
||||
}
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
typename BitSetIterator<N>::Iterator &BitSetIterator<N>::Iterator::operator++()
|
||||
{
|
||||
ASSERT(mBits.any());
|
||||
mBits.set(mCurrentBit - mOffset, 0);
|
||||
mCurrentBit = getNextBit();
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline unsigned long ScanForward(unsigned long bits)
|
||||
{
|
||||
ASSERT(bits != 0);
|
||||
#if defined(ANGLE_PLATFORM_WINDOWS)
|
||||
unsigned long firstBitIndex = 0ul;
|
||||
unsigned char ret = _BitScanForward(&firstBitIndex, bits);
|
||||
ASSERT(ret != 0);
|
||||
UNUSED_ASSERTION_VARIABLE(ret);
|
||||
return firstBitIndex;
|
||||
#elif defined(ANGLE_PLATFORM_POSIX)
|
||||
return static_cast<unsigned long>(__builtin_ctzl(bits));
|
||||
#else
|
||||
#error Please implement bit-scan-forward for your platform!
|
||||
#endif
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
bool BitSetIterator<N>::Iterator::operator==(const Iterator &other) const
|
||||
{
|
||||
return mOffset == other.mOffset && mBits == other.mBits;
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
bool BitSetIterator<N>::Iterator::operator!=(const Iterator &other) const
|
||||
{
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
template <size_t N>
|
||||
unsigned long BitSetIterator<N>::Iterator::getNextBit()
|
||||
{
|
||||
static std::bitset<N> wordMask(std::numeric_limits<unsigned long>::max());
|
||||
|
||||
while (mOffset < N)
|
||||
{
|
||||
unsigned long wordBits = (mBits & wordMask).to_ulong();
|
||||
if (wordBits != 0ul)
|
||||
{
|
||||
return ScanForward(wordBits) + mOffset;
|
||||
}
|
||||
|
||||
mBits >>= BitsPerWord;
|
||||
mOffset += BitsPerWord;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Helper to avoid needing to specify the template parameter size
|
||||
template <size_t N>
|
||||
BitSetIterator<N> IterateBitSet(const std::bitset<N> &bitset)
|
||||
{
|
||||
return BitSetIterator<N>(bitset);
|
||||
}
|
||||
|
||||
} // angle
|
||||
|
||||
#endif // COMMON_BITSETITERATOR_H_
|
@ -6,6 +6,8 @@
|
||||
|
||||
// This file is automatically generated.
|
||||
|
||||
#include "common/mathutil.h"
|
||||
|
||||
namespace gl
|
||||
{
|
||||
|
||||
@ -2197,7 +2199,7 @@ const static unsigned g_offset[64] = {
|
||||
float float16ToFloat32(unsigned short h)
|
||||
{
|
||||
unsigned i32 = g_mantissa[g_offset[h >> 10] + (h & 0x3ff)] + g_exponent[h >> 10];
|
||||
return *(float*) &i32;
|
||||
return bitCast<float>(i32);
|
||||
}
|
||||
}
|
||||
|
20
src/3rdparty/angle/src/common/Optional.h
vendored
20
src/3rdparty/angle/src/common/Optional.h
vendored
@ -35,11 +35,27 @@ struct Optional
|
||||
return *this;
|
||||
}
|
||||
|
||||
static Optional None()
|
||||
Optional &operator=(const T &value)
|
||||
{
|
||||
return Optional();
|
||||
mValue = value;
|
||||
mValid = true;
|
||||
return *this;
|
||||
}
|
||||
|
||||
Optional &operator=(T &&value)
|
||||
{
|
||||
mValue = std::move(value);
|
||||
mValid = true;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
mValid = false;
|
||||
}
|
||||
|
||||
static Optional Invalid() { return Optional(); }
|
||||
|
||||
bool valid() const { return mValid; }
|
||||
const T &value() const { return mValue; }
|
||||
|
||||
|
7
src/3rdparty/angle/src/common/angleutils.cpp
vendored
7
src/3rdparty/angle/src/common/angleutils.cpp
vendored
@ -8,8 +8,15 @@
|
||||
#include "common/debug.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
namespace angle
|
||||
{
|
||||
const uintptr_t DirtyPointer = std::numeric_limits<uintptr_t>::max();
|
||||
}
|
||||
|
||||
size_t FormatStringIntoVector(const char *fmt, va_list vararg, std::vector<char>& outBuffer)
|
||||
{
|
||||
// Attempt to just print to the current buffer
|
||||
|
7
src/3rdparty/angle/src/common/angleutils.h
vendored
7
src/3rdparty/angle/src/common/angleutils.h
vendored
@ -25,16 +25,15 @@ namespace angle
|
||||
|
||||
class NonCopyable
|
||||
{
|
||||
#if !defined(_MSC_VER) || (_MSC_VER >= 1800)
|
||||
public:
|
||||
NonCopyable() = default;
|
||||
~NonCopyable() = default;
|
||||
protected:
|
||||
NonCopyable(const NonCopyable&) = delete;
|
||||
void operator=(const NonCopyable&) = delete;
|
||||
#endif
|
||||
};
|
||||
|
||||
extern const uintptr_t DirtyPointer;
|
||||
}
|
||||
|
||||
template <typename T, size_t N>
|
||||
@ -72,9 +71,9 @@ void SafeDelete(T*& resource)
|
||||
template <typename T>
|
||||
void SafeDeleteContainer(T& resource)
|
||||
{
|
||||
for (typename T::iterator i = resource.begin(); i != resource.end(); i++)
|
||||
for (auto &element : resource)
|
||||
{
|
||||
SafeDelete(*i);
|
||||
SafeDelete(element);
|
||||
}
|
||||
resource.clear();
|
||||
}
|
||||
|
6
src/3rdparty/angle/src/common/debug.cpp
vendored
6
src/3rdparty/angle/src/common/debug.cpp
vendored
@ -44,16 +44,16 @@ void output(bool traceInDebugOnly, MessageType messageType, DebugTraceOutputType
|
||||
case DebugTraceOutputTypeNone:
|
||||
break;
|
||||
case DebugTraceOutputTypeBeginEvent:
|
||||
g_debugAnnotator->beginEvent(formattedWideMessage);
|
||||
g_debugAnnotator->beginEvent(formattedWideMessage.c_str());
|
||||
break;
|
||||
case DebugTraceOutputTypeSetMarker:
|
||||
g_debugAnnotator->setMarker(formattedWideMessage);
|
||||
g_debugAnnotator->setMarker(formattedWideMessage.c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
std::string formattedMessage;
|
||||
UNUSED_TRACE_VARIABLE(formattedMessage);
|
||||
UNUSED_VARIABLE(formattedMessage);
|
||||
|
||||
#if !defined(NDEBUG) && defined(_MSC_VER)
|
||||
if (messageType == MESSAGE_ERR)
|
||||
|
37
src/3rdparty/angle/src/common/debug.h
vendored
37
src/3rdparty/angle/src/common/debug.h
vendored
@ -16,7 +16,7 @@
|
||||
#include "common/angleutils.h"
|
||||
|
||||
#if !defined(TRACE_OUTPUT_FILE)
|
||||
#define TRACE_OUTPUT_FILE "debug.txt"
|
||||
#define TRACE_OUTPUT_FILE "angle_debug.txt"
|
||||
#endif
|
||||
|
||||
namespace gl
|
||||
@ -47,9 +47,9 @@ class DebugAnnotator : angle::NonCopyable
|
||||
public:
|
||||
DebugAnnotator() { };
|
||||
virtual ~DebugAnnotator() { };
|
||||
virtual void beginEvent(const std::wstring &eventName) = 0;
|
||||
virtual void beginEvent(const wchar_t *eventName) = 0;
|
||||
virtual void endEvent() = 0;
|
||||
virtual void setMarker(const std::wstring &markerName) = 0;
|
||||
virtual void setMarker(const wchar_t *markerName) = 0;
|
||||
virtual bool getStatus() = 0;
|
||||
};
|
||||
|
||||
@ -63,6 +63,8 @@ bool DebugAnnotationsActive();
|
||||
#define ANGLE_TRACE_ENABLED
|
||||
#endif
|
||||
|
||||
#define ANGLE_EMPTY_STATEMENT for (;;) break
|
||||
|
||||
// A macro to output a trace of a function call and its arguments to the debugging log
|
||||
#if defined(ANGLE_TRACE_ENABLED)
|
||||
#define TRACE(message, ...) gl::trace(true, gl::MESSAGE_TRACE, "trace: %s(%d): " message "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
@ -89,7 +91,7 @@ bool DebugAnnotationsActive();
|
||||
#if defined(_MSC_VER)
|
||||
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper ## __LINE__("%s" message "\n", __FUNCTION__, __VA_ARGS__);
|
||||
#else
|
||||
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper(message "\n", ##__VA_ARGS__);
|
||||
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper("%s" message "\n", __FUNCTION__, ##__VA_ARGS__);
|
||||
#endif // _MSC_VER
|
||||
#else
|
||||
#define EVENT(message, ...) (void(0))
|
||||
@ -101,22 +103,18 @@ bool DebugAnnotationsActive();
|
||||
|
||||
// A macro asserting a condition and outputting failures to the debug log
|
||||
#if !defined(NDEBUG)
|
||||
#define ASSERT(expression) do { \
|
||||
#define ASSERT(expression) { \
|
||||
if(!(expression)) \
|
||||
ERR("\t! Assert failed in %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
|
||||
ERR("\t! Assert failed in %s(%d): %s\n", __FUNCTION__, __LINE__, #expression); \
|
||||
assert(expression); \
|
||||
} while(0)
|
||||
} ANGLE_EMPTY_STATEMENT
|
||||
#define UNUSED_ASSERTION_VARIABLE(variable)
|
||||
#else
|
||||
#define ASSERT(expression) (void(0))
|
||||
#define UNUSED_ASSERTION_VARIABLE(variable) ((void)variable)
|
||||
#endif
|
||||
|
||||
#ifndef ANGLE_ENABLE_DEBUG_TRACE
|
||||
#define UNUSED_TRACE_VARIABLE(variable) ((void)variable)
|
||||
#else
|
||||
#define UNUSED_TRACE_VARIABLE(variable)
|
||||
#endif
|
||||
#define UNUSED_VARIABLE(variable) ((void)variable)
|
||||
|
||||
// A macro to indicate unimplemented functionality
|
||||
|
||||
@ -131,29 +129,22 @@ bool DebugAnnotationsActive();
|
||||
#endif
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#define UNIMPLEMENTED() do { \
|
||||
#define UNIMPLEMENTED() { \
|
||||
FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__); \
|
||||
assert(NOASSERT_UNIMPLEMENTED); \
|
||||
} while(0)
|
||||
} ANGLE_EMPTY_STATEMENT
|
||||
#else
|
||||
#define UNIMPLEMENTED() FIXME("\t! Unimplemented: %s(%d)\n", __FUNCTION__, __LINE__)
|
||||
#endif
|
||||
|
||||
// A macro for code which is not expected to be reached under valid assumptions
|
||||
#if !defined(NDEBUG)
|
||||
#define UNREACHABLE() do { \
|
||||
#define UNREACHABLE() { \
|
||||
ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
|
||||
assert(false); \
|
||||
} while(0)
|
||||
} ANGLE_EMPTY_STATEMENT
|
||||
#else
|
||||
#define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
|
||||
#endif
|
||||
|
||||
// A macro that determines whether an object has a given runtime type.
|
||||
#if !defined(NDEBUG) && (!defined(_MSC_VER) || defined(_CPPRTTI)) && (!defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || defined(__GXX_RTTI))
|
||||
#define HAS_DYNAMIC_TYPE(type, obj) (dynamic_cast<type >(obj) != NULL)
|
||||
#else
|
||||
#define HAS_DYNAMIC_TYPE(type, obj) true
|
||||
#endif
|
||||
|
||||
#endif // COMMON_DEBUG_H_
|
||||
|
48
src/3rdparty/angle/src/common/event_tracer.cpp
vendored
48
src/3rdparty/angle/src/common/event_tracer.cpp
vendored
@ -4,35 +4,53 @@
|
||||
|
||||
#include "common/event_tracer.h"
|
||||
|
||||
namespace gl
|
||||
#include "common/debug.h"
|
||||
|
||||
namespace angle
|
||||
{
|
||||
|
||||
GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
|
||||
AddTraceEventFunc g_addTraceEvent;
|
||||
|
||||
} // namespace gl
|
||||
|
||||
namespace gl
|
||||
const unsigned char *GetTraceCategoryEnabledFlag(const char *name)
|
||||
{
|
||||
angle::Platform *platform = ANGLEPlatformCurrent();
|
||||
ASSERT(platform);
|
||||
|
||||
const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
|
||||
{
|
||||
if (g_getCategoryEnabledFlag)
|
||||
const unsigned char *categoryEnabledFlag = platform->getTraceCategoryEnabledFlag(name);
|
||||
if (categoryEnabledFlag != nullptr)
|
||||
{
|
||||
return g_getCategoryEnabledFlag(name);
|
||||
return categoryEnabledFlag;
|
||||
}
|
||||
|
||||
static unsigned char disabled = 0;
|
||||
return &disabled;
|
||||
}
|
||||
|
||||
void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
Platform::TraceEventHandle AddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
const unsigned long long* argValues, unsigned char flags)
|
||||
{
|
||||
if (g_addTraceEvent)
|
||||
angle::Platform *platform = ANGLEPlatformCurrent();
|
||||
ASSERT(platform);
|
||||
|
||||
double timestamp = platform->monotonicallyIncreasingTime();
|
||||
|
||||
if (timestamp != 0)
|
||||
{
|
||||
g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
|
||||
angle::Platform::TraceEventHandle handle =
|
||||
platform->addTraceEvent(phase,
|
||||
categoryGroupEnabled,
|
||||
name,
|
||||
id,
|
||||
timestamp,
|
||||
numArgs,
|
||||
argNames,
|
||||
argTypes,
|
||||
argValues,
|
||||
flags);
|
||||
ASSERT(handle != 0);
|
||||
return handle;
|
||||
}
|
||||
|
||||
return static_cast<Platform::TraceEventHandle>(0);
|
||||
}
|
||||
|
||||
} // namespace gl
|
||||
} // namespace angle
|
||||
|
22
src/3rdparty/angle/src/common/event_tracer.h
vendored
22
src/3rdparty/angle/src/common/event_tracer.h
vendored
@ -6,29 +6,17 @@
|
||||
#define COMMON_EVENT_TRACER_H_
|
||||
|
||||
#include "common/platform.h"
|
||||
#include "platform/Platform.h"
|
||||
|
||||
extern "C" {
|
||||
namespace angle
|
||||
{
|
||||
|
||||
typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
|
||||
typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name,
|
||||
const unsigned char *GetTraceCategoryEnabledFlag(const char* name);
|
||||
Platform::TraceEventHandle AddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name,
|
||||
unsigned long long id, int numArgs, const char** argNames,
|
||||
const unsigned char* argTypes, const unsigned long long* argValues,
|
||||
unsigned char flags);
|
||||
|
||||
}
|
||||
|
||||
namespace gl
|
||||
{
|
||||
|
||||
extern GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
|
||||
extern AddTraceEventFunc g_addTraceEvent;
|
||||
|
||||
const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name);
|
||||
|
||||
void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
|
||||
int numArgs, const char** argNames, const unsigned char* argTypes,
|
||||
const unsigned long long* argValues, unsigned char flags);
|
||||
|
||||
}
|
||||
|
||||
#endif // COMMON_EVENT_TRACER_H_
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user