Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts: .qmake.conf src/gui/painting/qdrawhelper.cpp src/network/ssl/qsslsocket_openssl.cpp src/widgets/styles/qstylesheetstyle.cpp Change-Id: Ibe1cd40f46a823c9e5edbe0a3cd16be1e1686b17
This commit is contained in:
commit
bd9959bde2
83
dist/changes-5.12.4
vendored
Normal file
83
dist/changes-5.12.4
vendored
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
Qt 5.12.4 is a bug-fix release. It maintains both forward and backward
|
||||||
|
compatibility (source and binary) with Qt 5.12.0 through 5.12.3.
|
||||||
|
|
||||||
|
For more details, refer to the online documentation included in this
|
||||||
|
distribution. The documentation is also available online:
|
||||||
|
|
||||||
|
https://doc.qt.io/qt-5/index.html
|
||||||
|
|
||||||
|
The Qt version 5.12 series is binary compatible with the 5.11.x series.
|
||||||
|
Applications compiled for 5.11 will continue to run with 5.12.
|
||||||
|
|
||||||
|
Some of the changes listed in this file include issue tracking numbers
|
||||||
|
corresponding to tasks in the Qt Bug Tracker:
|
||||||
|
|
||||||
|
https://bugreports.qt.io/
|
||||||
|
|
||||||
|
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||||
|
information about a particular change.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Platform Specific Changes *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- X11 / XCB:
|
||||||
|
* [QTBUG-45375] QTabletEvent coordinates now come from AbsX/AbsY
|
||||||
|
valuators in the X11 event, in more precise 32.32 fixed-point format,
|
||||||
|
scaled to fit the virtual desktop. It's possible to revert to using
|
||||||
|
the legacy 16.16-format event_x/event_y coordinates as in previous
|
||||||
|
releases by setting the QT_XCB_TABLET_LEGACY_COORDINATES environment
|
||||||
|
variable.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtCore *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- Global:
|
||||||
|
* [QTBUG-72073] Added the QT_NO_FLOAT16_OPERATORS macro in order to work
|
||||||
|
around a Microsoft <= VS2017 compiler bug that is exposed when using
|
||||||
|
std::bitset along with any Qt header that includes <qfloat16.h>.
|
||||||
|
|
||||||
|
- QDeadlineTimer:
|
||||||
|
* [QTBUG-69750] Fixed integer overflows leading to immediate timeouts.
|
||||||
|
|
||||||
|
- QFile:
|
||||||
|
* Made QFile::copy() issue a filesystem-synchronization system call,
|
||||||
|
which would make it less likely to result in incomplete or corrupt
|
||||||
|
files if the system reboots or uncleanly shuts down soon after the
|
||||||
|
function returns. New code is advised to use QSaveFile instead, which
|
||||||
|
also allows to display a progress report while copying.
|
||||||
|
|
||||||
|
- QFileInfo:
|
||||||
|
* [QTBUG-63970][QTBUG-30401][QTBUG-20791] Fixed resolving of symbolic
|
||||||
|
links to UNC shares on NTFS file systems.
|
||||||
|
|
||||||
|
- QMetaObject:
|
||||||
|
* Non-copyable lambdas can now be used with invokeMethod(). For
|
||||||
|
consistency reasons, the functor object is now always moved.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtGui *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- [QTBUG-73231] QWindow::mapToGlobal()/mapFromGlobal() now handle windows
|
||||||
|
spanning screens correctly.
|
||||||
|
|
||||||
|
- [QTBUG-75522] QBezier: Fix possible endless loop when stroking curves
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtWidgets *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- QMenu:
|
||||||
|
* Shortcuts are again shown by default in context menus, except on
|
||||||
|
macOS. They can be forced off by setting
|
||||||
|
AA_DontShowShortcutsInContextMenus to true.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Third-Party Code *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- libpng was updated to version 1.6.37
|
||||||
|
- Updated QLocale to CLDR v35.1
|
||||||
|
- Updated bundled SQLite to version 3.28.0
|
@ -30,7 +30,7 @@
|
|||||||
\title Class Wizard Example
|
\title Class Wizard Example
|
||||||
\ingroup examples-dialogs
|
\ingroup examples-dialogs
|
||||||
|
|
||||||
\brief The License Wizard example shows how to implement linear
|
\brief The Class Wizard example shows how to implement linear
|
||||||
wizards using QWizard.
|
wizards using QWizard.
|
||||||
|
|
||||||
\image classwizard.png Screenshot of the Class Wizard example
|
\image classwizard.png Screenshot of the Class Wizard example
|
||||||
|
@ -28,7 +28,10 @@ CONFIG(release, debug|release) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
load(link_ltcg)
|
load(link_ltcg)
|
||||||
QMAKE_CFLAGS *= $$QMAKE_CFLAGS_LTCG
|
QMAKE_CFLAGS -= $$QMAKE_CFLAGS_LTCG
|
||||||
QMAKE_CXXFLAGS *= $$QMAKE_CXXFLAGS_LTCG
|
QMAKE_CFLAGS += $$QMAKE_CFLAGS_LTCG
|
||||||
QMAKE_LFLAGS *= $$QMAKE_LFLAGS_LTCG
|
QMAKE_CXXFLAGS -= $$QMAKE_CXXFLAGS_LTCG
|
||||||
|
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_LTCG
|
||||||
|
QMAKE_LFLAGS -= $$QMAKE_LFLAGS_LTCG
|
||||||
|
QMAKE_LFLAGS += $$QMAKE_LFLAGS_LTCG
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ headersclean:!internal_module {
|
|||||||
hcleanFLAGS += -std=c++98
|
hcleanFLAGS += -std=c++98
|
||||||
}
|
}
|
||||||
|
|
||||||
hcleanCOMMAND = $$QMAKE_CXX -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -xc++ ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
|
hcleanCOMMAND = $(CXX) -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -xc++ ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
|
||||||
} else: msvc:!intel_icl {
|
} else: msvc:!intel_icl {
|
||||||
# 4180: qualifier applied to function type has no meaning; ignored
|
# 4180: qualifier applied to function type has no meaning; ignored
|
||||||
# 4458: declaration of 'identifier' hides class member
|
# 4458: declaration of 'identifier' hides class member
|
||||||
@ -284,7 +284,7 @@ headersclean:!internal_module {
|
|||||||
# 4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
|
# 4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc
|
||||||
greaterThan(QMAKE_MSC_VER, 18): hcleanFLAGS += -wd4577
|
greaterThan(QMAKE_MSC_VER, 18): hcleanFLAGS += -wd4577
|
||||||
|
|
||||||
hcleanCOMMAND = $$QMAKE_CXX -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -FI${QMAKE_FILE_IN} -Fo${QMAKE_FILE_OUT} \
|
hcleanCOMMAND = $(CXX) -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -FI${QMAKE_FILE_IN} -Fo${QMAKE_FILE_OUT} \
|
||||||
$$[QT_INSTALL_DATA/src]/mkspecs/features/data/dummy.cpp
|
$$[QT_INSTALL_DATA/src]/mkspecs/features/data/dummy.cpp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
142
src/3rdparty/angle/src/libEGL/libEGL_mingw32.def
vendored
142
src/3rdparty/angle/src/libEGL/libEGL_mingw32.def
vendored
@ -1,77 +1,77 @@
|
|||||||
LIBRARY libEGL
|
LIBRARY libEGL
|
||||||
EXPORTS
|
EXPORTS
|
||||||
eglBindAPI @14
|
eglBindAPI@4 @14
|
||||||
eglBindTexImage @20
|
eglBindTexImage@12 @20
|
||||||
eglChooseConfig @7
|
eglChooseConfig@20 @7
|
||||||
eglCopyBuffers @33
|
eglCopyBuffers@12 @33
|
||||||
eglCreateContext @23
|
eglCreateContext@16 @23
|
||||||
eglCreatePbufferFromClientBuffer @18
|
eglCreatePbufferFromClientBuffer@20 @18
|
||||||
eglCreatePbufferSurface @10
|
eglCreatePbufferSurface@12 @10
|
||||||
eglCreatePixmapSurface @11
|
eglCreatePixmapSurface@16 @11
|
||||||
eglCreateWindowSurface @9
|
eglCreateWindowSurface@16 @9
|
||||||
eglDestroyContext @24
|
eglDestroyContext@8 @24
|
||||||
eglDestroySurface @12
|
eglDestroySurface@8 @12
|
||||||
eglGetConfigAttrib @8
|
eglGetConfigAttrib@16 @8
|
||||||
eglGetConfigs @6
|
eglGetConfigs@16 @6
|
||||||
eglGetCurrentContext @26
|
eglGetCurrentContext@0 @26
|
||||||
eglGetCurrentDisplay @28
|
eglGetCurrentDisplay@0 @28
|
||||||
eglGetCurrentSurface @27
|
eglGetCurrentSurface@4 @27
|
||||||
eglGetDisplay @2
|
eglGetDisplay@4 @2
|
||||||
eglGetError @1
|
eglGetError@0 @1
|
||||||
eglGetProcAddress @34
|
eglGetProcAddress@4 @34
|
||||||
eglInitialize @3
|
eglInitialize@12 @3
|
||||||
eglMakeCurrent @25
|
eglMakeCurrent@16 @25
|
||||||
eglQueryAPI @15
|
eglQueryAPI@0 @15
|
||||||
eglQueryContext @29
|
eglQueryContext@16 @29
|
||||||
eglQueryString @5
|
eglQueryString@8 @5
|
||||||
eglQuerySurface @13
|
eglQuerySurface@16 @13
|
||||||
eglReleaseTexImage @21
|
eglReleaseTexImage@12 @21
|
||||||
eglReleaseThread @17
|
eglReleaseThread@0 @17
|
||||||
eglSurfaceAttrib @19
|
eglSurfaceAttrib@16 @19
|
||||||
eglSwapBuffers @32
|
eglSwapBuffers@8 @32
|
||||||
eglSwapInterval @22
|
eglSwapInterval@8 @22
|
||||||
eglTerminate @4
|
eglTerminate@4 @4
|
||||||
eglWaitClient @16
|
eglWaitClient@0 @16
|
||||||
eglWaitGL @30
|
eglWaitGL@0 @30
|
||||||
eglWaitNative @31
|
eglWaitNative@4 @31
|
||||||
|
|
||||||
; Extensions
|
; Extensions
|
||||||
eglGetPlatformDisplayEXT @35
|
eglGetPlatformDisplayEXT@12 @35
|
||||||
eglQuerySurfacePointerANGLE @36
|
eglQuerySurfacePointerANGLE@16 @36
|
||||||
eglPostSubBufferNV @37
|
eglPostSubBufferNV@24 @37
|
||||||
eglQueryDisplayAttribEXT @48
|
eglQueryDisplayAttribEXT@12 @48
|
||||||
eglQueryDeviceAttribEXT @49
|
eglQueryDeviceAttribEXT@12 @49
|
||||||
eglQueryDeviceStringEXT @50
|
eglQueryDeviceStringEXT@8 @50
|
||||||
eglCreateImageKHR @51
|
eglCreateImageKHR@20 @51
|
||||||
eglDestroyImageKHR @52
|
eglDestroyImageKHR@8 @52
|
||||||
eglCreateDeviceANGLE @53
|
eglCreateDeviceANGLE@12 @53
|
||||||
eglReleaseDeviceANGLE @54
|
eglReleaseDeviceANGLE@4 @54
|
||||||
eglCreateStreamKHR @55
|
eglCreateStreamKHR@8 @55
|
||||||
eglDestroyStreamKHR @56
|
eglDestroyStreamKHR@8 @56
|
||||||
eglStreamAttribKHR @57
|
eglStreamAttribKHR@16 @57
|
||||||
eglQueryStreamKHR @58
|
eglQueryStreamKHR@16 @58
|
||||||
eglQueryStreamu64KHR @59
|
eglQueryStreamu64KHR@16 @59
|
||||||
eglStreamConsumerGLTextureExternalKHR @60
|
eglStreamConsumerGLTextureExternalKHR@8 @60
|
||||||
eglStreamConsumerAcquireKHR @61
|
eglStreamConsumerAcquireKHR@8 @61
|
||||||
eglStreamConsumerReleaseKHR @62
|
eglStreamConsumerReleaseKHR@8 @62
|
||||||
eglStreamConsumerGLTextureExternalAttribsNV @63
|
eglStreamConsumerGLTextureExternalAttribsNV@12 @63
|
||||||
eglCreateStreamProducerD3DTextureNV12ANGLE @64
|
eglCreateStreamProducerD3DTextureNV12ANGLE@12 @64
|
||||||
eglStreamPostD3DTextureNV12ANGLE @65
|
eglStreamPostD3DTextureNV12ANGLE@16 @65
|
||||||
eglGetSyncValuesCHROMIUM @66
|
eglGetSyncValuesCHROMIUM@20 @66
|
||||||
eglSwapBuffersWithDamageEXT @67
|
eglSwapBuffersWithDamageEXT@16 @67
|
||||||
eglProgramCacheGetAttribANGLE @68
|
eglProgramCacheGetAttribANGLE@8 @68
|
||||||
eglProgramCachePopulateANGLE @69
|
eglProgramCachePopulateANGLE@20 @69
|
||||||
eglProgramCacheQueryANGLE @70
|
eglProgramCacheQueryANGLE@24 @70
|
||||||
eglProgramCacheResizeANGLE @71
|
eglProgramCacheResizeANGLE@12 @71
|
||||||
|
|
||||||
; 1.5 entry points
|
; 1.5 entry points
|
||||||
eglCreateSync @38
|
eglCreateSync@12 @38
|
||||||
eglDestroySync @39
|
eglDestroySync@8 @39
|
||||||
eglClientWaitSync @40
|
eglClientWaitSync@20 @40
|
||||||
eglGetSyncAttrib @41
|
eglGetSyncAttrib@16 @41
|
||||||
eglCreateImage @42
|
eglCreateImage@20 @42
|
||||||
eglDestroyImage @43
|
eglDestroyImage@8 @43
|
||||||
eglGetPlatformDisplay @44
|
eglGetPlatformDisplay@12 @44
|
||||||
eglCreatePlatformWindowSurface @45
|
eglCreatePlatformWindowSurface@16 @45
|
||||||
eglCreatePlatformPixmapSurface @46
|
eglCreatePlatformPixmapSurface@16 @46
|
||||||
eglWaitSync @47
|
eglWaitSync@12 @47
|
||||||
|
142
src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def
vendored
142
src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def
vendored
@ -1,77 +1,77 @@
|
|||||||
LIBRARY libEGL
|
LIBRARY libEGL
|
||||||
EXPORTS
|
EXPORTS
|
||||||
eglBindAPI @14
|
eglBindAPI@4 @14
|
||||||
eglBindTexImage @20
|
eglBindTexImage@12 @20
|
||||||
eglChooseConfig @7
|
eglChooseConfig@20 @7
|
||||||
eglCopyBuffers @33
|
eglCopyBuffers@12 @33
|
||||||
eglCreateContext @23
|
eglCreateContext@16 @23
|
||||||
eglCreatePbufferFromClientBuffer @18
|
eglCreatePbufferFromClientBuffer@20 @18
|
||||||
eglCreatePbufferSurface @10
|
eglCreatePbufferSurface@12 @10
|
||||||
eglCreatePixmapSurface @11
|
eglCreatePixmapSurface@16 @11
|
||||||
eglCreateWindowSurface @9
|
eglCreateWindowSurface@16 @9
|
||||||
eglDestroyContext @24
|
eglDestroyContext@8 @24
|
||||||
eglDestroySurface @12
|
eglDestroySurface@8 @12
|
||||||
eglGetConfigAttrib @8
|
eglGetConfigAttrib@16 @8
|
||||||
eglGetConfigs @6
|
eglGetConfigs@16 @6
|
||||||
eglGetCurrentContext @26
|
eglGetCurrentContext@0 @26
|
||||||
eglGetCurrentDisplay @28
|
eglGetCurrentDisplay@0 @28
|
||||||
eglGetCurrentSurface @27
|
eglGetCurrentSurface@4 @27
|
||||||
eglGetDisplay @2
|
eglGetDisplay@4 @2
|
||||||
eglGetError @1
|
eglGetError@0 @1
|
||||||
eglGetProcAddress @34
|
eglGetProcAddress@4 @34
|
||||||
eglInitialize @3
|
eglInitialize@12 @3
|
||||||
eglMakeCurrent @25
|
eglMakeCurrent@16 @25
|
||||||
eglQueryAPI @15
|
eglQueryAPI@0 @15
|
||||||
eglQueryContext @29
|
eglQueryContext@16 @29
|
||||||
eglQueryString @5
|
eglQueryString@8 @5
|
||||||
eglQuerySurface @13
|
eglQuerySurface@16 @13
|
||||||
eglReleaseTexImage @21
|
eglReleaseTexImage@12 @21
|
||||||
eglReleaseThread @17
|
eglReleaseThread@0 @17
|
||||||
eglSurfaceAttrib @19
|
eglSurfaceAttrib@16 @19
|
||||||
eglSwapBuffers @32
|
eglSwapBuffers@8 @32
|
||||||
eglSwapInterval @22
|
eglSwapInterval@8 @22
|
||||||
eglTerminate @4
|
eglTerminate@4 @4
|
||||||
eglWaitClient @16
|
eglWaitClient@0 @16
|
||||||
eglWaitGL @30
|
eglWaitGL@0 @30
|
||||||
eglWaitNative @31
|
eglWaitNative@4 @31
|
||||||
|
|
||||||
; Extensions
|
; Extensions
|
||||||
eglGetPlatformDisplayEXT @35
|
eglGetPlatformDisplayEXT@12 @35
|
||||||
eglQuerySurfacePointerANGLE @36
|
eglQuerySurfacePointerANGLE@16 @36
|
||||||
eglPostSubBufferNV @37
|
eglPostSubBufferNV@24 @37
|
||||||
eglQueryDisplayAttribEXT @48
|
eglQueryDisplayAttribEXT@12 @48
|
||||||
eglQueryDeviceAttribEXT @49
|
eglQueryDeviceAttribEXT@12 @49
|
||||||
eglQueryDeviceStringEXT @50
|
eglQueryDeviceStringEXT@8 @50
|
||||||
eglCreateImageKHR @51
|
eglCreateImageKHR@20 @51
|
||||||
eglDestroyImageKHR @52
|
eglDestroyImageKHR@8 @52
|
||||||
eglCreateDeviceANGLE @53
|
eglCreateDeviceANGLE@12 @53
|
||||||
eglReleaseDeviceANGLE @54
|
eglReleaseDeviceANGLE@4 @54
|
||||||
eglCreateStreamKHR @55
|
eglCreateStreamKHR@8 @55
|
||||||
eglDestroyStreamKHR @56
|
eglDestroyStreamKHR@8 @56
|
||||||
eglStreamAttribKHR @57
|
eglStreamAttribKHR@16 @57
|
||||||
eglQueryStreamKHR @58
|
eglQueryStreamKHR@16 @58
|
||||||
eglQueryStreamu64KHR @59
|
eglQueryStreamu64KHR@16 @59
|
||||||
eglStreamConsumerGLTextureExternalKHR @60
|
eglStreamConsumerGLTextureExternalKHR@8 @60
|
||||||
eglStreamConsumerAcquireKHR @61
|
eglStreamConsumerAcquireKHR@8 @61
|
||||||
eglStreamConsumerReleaseKHR @62
|
eglStreamConsumerReleaseKHR@8 @62
|
||||||
eglStreamConsumerGLTextureExternalAttribsNV @63
|
eglStreamConsumerGLTextureExternalAttribsNV@12 @63
|
||||||
eglCreateStreamProducerD3DTextureNV12ANGLE @64
|
eglCreateStreamProducerD3DTextureNV12ANGLE@12 @64
|
||||||
eglStreamPostD3DTextureNV12ANGLE @65
|
eglStreamPostD3DTextureNV12ANGLE@16 @65
|
||||||
eglGetSyncValuesCHROMIUM @66
|
eglGetSyncValuesCHROMIUM@20 @66
|
||||||
eglSwapBuffersWithDamageEXT @67
|
eglSwapBuffersWithDamageEXT@16 @67
|
||||||
eglProgramCacheGetAttribANGLE @68
|
eglProgramCacheGetAttribANGLE@8 @68
|
||||||
eglProgramCachePopulateANGLE @69
|
eglProgramCachePopulateANGLE@20 @69
|
||||||
eglProgramCacheQueryANGLE @70
|
eglProgramCacheQueryANGLE@24 @70
|
||||||
eglProgramCacheResizeANGLE @71
|
eglProgramCacheResizeANGLE@12 @71
|
||||||
|
|
||||||
; 1.5 entry points
|
; 1.5 entry points
|
||||||
eglCreateSync @38
|
eglCreateSync@12 @38
|
||||||
eglDestroySync @39
|
eglDestroySync@8 @39
|
||||||
eglClientWaitSync @40
|
eglClientWaitSync@20 @40
|
||||||
eglGetSyncAttrib @41
|
eglGetSyncAttrib@16 @41
|
||||||
eglCreateImage @42
|
eglCreateImage@20 @42
|
||||||
eglDestroyImage @43
|
eglDestroyImage@8 @43
|
||||||
eglGetPlatformDisplay @44
|
eglGetPlatformDisplay@12 @44
|
||||||
eglCreatePlatformWindowSurface @45
|
eglCreatePlatformWindowSurface@16 @45
|
||||||
eglCreatePlatformPixmapSurface @46
|
eglCreatePlatformPixmapSurface@16 @46
|
||||||
eglWaitSync @47
|
eglWaitSync@12 @47
|
||||||
|
@ -1,412 +1,411 @@
|
|||||||
LIBRARY libGLESv2
|
LIBRARY libGLESv2
|
||||||
EXPORTS
|
EXPORTS
|
||||||
glActiveTexture @1
|
glActiveTexture@4 @1
|
||||||
glAttachShader @2
|
glAttachShader@8 @2
|
||||||
glBindAttribLocation @3
|
glBindAttribLocation@12 @3
|
||||||
glBindBuffer @4
|
glBindBuffer@8 @4
|
||||||
glBindFramebuffer @5
|
glBindFramebuffer@8 @5
|
||||||
glBindRenderbuffer @6
|
glBindRenderbuffer@8 @6
|
||||||
glBindTexture @7
|
glBindTexture@8 @7
|
||||||
glBlendColor @8
|
glBlendColor@16 @8
|
||||||
glBlendEquation @9
|
glBlendEquation@4 @9
|
||||||
glBlendEquationSeparate @10
|
glBlendEquationSeparate@8 @10
|
||||||
glBlendFunc @11
|
glBlendFunc@8 @11
|
||||||
glBlendFuncSeparate @12
|
glBlendFuncSeparate@16 @12
|
||||||
glBufferData @13
|
glBufferData@16 @13
|
||||||
glBufferSubData @14
|
glBufferSubData@16 @14
|
||||||
glCheckFramebufferStatus @15
|
glCheckFramebufferStatus@4 @15
|
||||||
glClear @16
|
glClear@4 @16
|
||||||
glClearColor @17
|
glClearColor@16 @17
|
||||||
glClearDepthf @18
|
glClearDepthf@4 @18
|
||||||
glClearStencil @19
|
glClearStencil@4 @19
|
||||||
glColorMask @20
|
glColorMask@16 @20
|
||||||
glCompileShader @21
|
glCompileShader@4 @21
|
||||||
glCompressedTexImage2D @22
|
glCompressedTexImage2D@32 @22
|
||||||
glCompressedTexSubImage2D @23
|
glCompressedTexSubImage2D@36 @23
|
||||||
glCopyTexImage2D @24
|
glCopyTexImage2D@32 @24
|
||||||
glCopyTexSubImage2D @25
|
glCopyTexSubImage2D@32 @25
|
||||||
glCreateProgram @26
|
glCreateProgram@0 @26
|
||||||
glCreateShader @27
|
glCreateShader@4 @27
|
||||||
glCullFace @28
|
glCullFace@4 @28
|
||||||
glDeleteBuffers @29
|
glDeleteBuffers@8 @29
|
||||||
glDeleteFramebuffers @30
|
glDeleteFramebuffers@8 @30
|
||||||
glDeleteProgram @32
|
glDeleteProgram@4 @32
|
||||||
glDeleteRenderbuffers @33
|
glDeleteRenderbuffers@8 @33
|
||||||
glDeleteShader @34
|
glDeleteShader@4 @34
|
||||||
glDeleteTextures @31
|
glDeleteTextures@8 @31
|
||||||
glDepthFunc @36
|
glDepthFunc@4 @36
|
||||||
glDepthMask @37
|
glDepthMask@4 @37
|
||||||
glDepthRangef @38
|
glDepthRangef@8 @38
|
||||||
glDetachShader @35
|
glDetachShader@8 @35
|
||||||
glDisable @39
|
glDisable@4 @39
|
||||||
glDisableVertexAttribArray @40
|
glDisableVertexAttribArray@4 @40
|
||||||
glDrawArrays @41
|
glDrawArrays@12 @41
|
||||||
glDrawElements @42
|
glDrawElements@16 @42
|
||||||
glEnable @43
|
glEnable@4 @43
|
||||||
glEnableVertexAttribArray @44
|
glEnableVertexAttribArray@4 @44
|
||||||
glFinish @45
|
glFinish@0 @45
|
||||||
glFlush @46
|
glFlush@0 @46
|
||||||
glFramebufferRenderbuffer @47
|
glFramebufferRenderbuffer@16 @47
|
||||||
glFramebufferTexture2D @48
|
glFramebufferTexture2D@20 @48
|
||||||
glFrontFace @49
|
glFrontFace@4 @49
|
||||||
glGenBuffers @50
|
glGenBuffers@8 @50
|
||||||
glGenFramebuffers @52
|
glGenFramebuffers@8 @52
|
||||||
glGenRenderbuffers @53
|
glGenRenderbuffers@8 @53
|
||||||
glGenTextures @54
|
glGenTextures@8 @54
|
||||||
glGenerateMipmap @51
|
glGenerateMipmap@4 @51
|
||||||
glGetActiveAttrib @55
|
glGetActiveAttrib@28 @55
|
||||||
glGetActiveUniform @56
|
glGetActiveUniform@28 @56
|
||||||
glGetAttachedShaders @57
|
glGetAttachedShaders@16 @57
|
||||||
glGetAttribLocation @58
|
glGetAttribLocation@8 @58
|
||||||
glGetBooleanv @59
|
glGetBooleanv@8 @59
|
||||||
glGetBufferParameteriv @60
|
glGetBufferParameteriv@12 @60
|
||||||
glGetError @61
|
glGetError@0 @61
|
||||||
glGetFloatv @62
|
glGetFloatv@8 @62
|
||||||
glGetFramebufferAttachmentParameteriv @63
|
glGetFramebufferAttachmentParameteriv@16 @63
|
||||||
glGetIntegerv @64
|
glGetIntegerv@8 @64
|
||||||
glGetProgramInfoLog @66
|
glGetProgramInfoLog@16 @66
|
||||||
glGetProgramiv @65
|
glGetProgramiv@12 @65
|
||||||
glGetRenderbufferParameteriv @67
|
glGetRenderbufferParameteriv@12 @67
|
||||||
glGetShaderInfoLog @69
|
glGetShaderInfoLog@16 @69
|
||||||
glGetShaderPrecisionFormat @70
|
glGetShaderPrecisionFormat@16 @70
|
||||||
glGetShaderSource @71
|
glGetShaderSource@16 @71
|
||||||
glGetShaderiv @68
|
glGetShaderiv@12 @68
|
||||||
glGetString @72
|
glGetString@4 @72
|
||||||
glGetTexParameterfv @73
|
glGetTexParameterfv@12 @73
|
||||||
glGetTexParameteriv @74
|
glGetTexParameteriv@12 @74
|
||||||
glGetUniformLocation @77
|
glGetUniformLocation@8 @77
|
||||||
glGetUniformfv @75
|
glGetUniformfv@12 @75
|
||||||
glGetUniformiv @76
|
glGetUniformiv@12 @76
|
||||||
glGetVertexAttribPointerv @80
|
glGetVertexAttribPointerv@12 @80
|
||||||
glGetVertexAttribfv @78
|
glGetVertexAttribfv@12 @78
|
||||||
glGetVertexAttribiv @79
|
glGetVertexAttribiv@12 @79
|
||||||
glHint @81
|
glHint@8 @81
|
||||||
glIsBuffer @82
|
glIsBuffer@4 @82
|
||||||
glIsEnabled @83
|
glIsEnabled@4 @83
|
||||||
glIsFramebuffer @84
|
glIsFramebuffer@4 @84
|
||||||
glIsProgram @85
|
glIsProgram@4 @85
|
||||||
glIsRenderbuffer @86
|
glIsRenderbuffer@4 @86
|
||||||
glIsShader @87
|
glIsShader@4 @87
|
||||||
glIsTexture @88
|
glIsTexture@4 @88
|
||||||
glLineWidth @89
|
glLineWidth@4 @89
|
||||||
glLinkProgram @90
|
glLinkProgram@4 @90
|
||||||
glPixelStorei @91
|
glPixelStorei@8 @91
|
||||||
glPolygonOffset @92
|
glPolygonOffset@8 @92
|
||||||
glReadPixels @93
|
glReadPixels@28 @93
|
||||||
glReleaseShaderCompiler @94
|
glReleaseShaderCompiler@0 @94
|
||||||
glRenderbufferStorage @95
|
glRenderbufferStorage@16 @95
|
||||||
glSampleCoverage @96
|
glSampleCoverage@8 @96
|
||||||
glScissor @97
|
glScissor@16 @97
|
||||||
glShaderBinary @98
|
glShaderBinary@20 @98
|
||||||
glShaderSource @99
|
glShaderSource@16 @99
|
||||||
glStencilFunc @100
|
glStencilFunc@12 @100
|
||||||
glStencilFuncSeparate @101
|
glStencilFuncSeparate@16 @101
|
||||||
glStencilMask @102
|
glStencilMask@4 @102
|
||||||
glStencilMaskSeparate @103
|
glStencilMaskSeparate@8 @103
|
||||||
glStencilOp @104
|
glStencilOp@12 @104
|
||||||
glStencilOpSeparate @105
|
glStencilOpSeparate@16 @105
|
||||||
glTexImage2D @106
|
glTexImage2D@36 @106
|
||||||
glTexParameterf @107
|
glTexParameterf@12 @107
|
||||||
glTexParameterfv @108
|
glTexParameterfv@12 @108
|
||||||
glTexParameteri @109
|
glTexParameteri@12 @109
|
||||||
glTexParameteriv @110
|
glTexParameteriv@12 @110
|
||||||
glTexSubImage2D @111
|
glTexSubImage2D@36 @111
|
||||||
glUniform1f @112
|
glUniform1f@8 @112
|
||||||
glUniform1fv @113
|
glUniform1fv@12 @113
|
||||||
glUniform1i @114
|
glUniform1i@8 @114
|
||||||
glUniform1iv @115
|
glUniform1iv@12 @115
|
||||||
glUniform2f @116
|
glUniform2f@12 @116
|
||||||
glUniform2fv @117
|
glUniform2fv@12 @117
|
||||||
glUniform2i @118
|
glUniform2i@12 @118
|
||||||
glUniform2iv @119
|
glUniform2iv@12 @119
|
||||||
glUniform3f @120
|
glUniform3f@16 @120
|
||||||
glUniform3fv @121
|
glUniform3fv@12 @121
|
||||||
glUniform3i @122
|
glUniform3i@16 @122
|
||||||
glUniform3iv @123
|
glUniform3iv@12 @123
|
||||||
glUniform4f @124
|
glUniform4f@20 @124
|
||||||
glUniform4fv @125
|
glUniform4fv@12 @125
|
||||||
glUniform4i @126
|
glUniform4i@20 @126
|
||||||
glUniform4iv @127
|
glUniform4iv@12 @127
|
||||||
glUniformMatrix2fv @128
|
glUniformMatrix2fv@16 @128
|
||||||
glUniformMatrix3fv @129
|
glUniformMatrix3fv@16 @129
|
||||||
glUniformMatrix4fv @130
|
glUniformMatrix4fv@16 @130
|
||||||
glUseProgram @131
|
glUseProgram@4 @131
|
||||||
glValidateProgram @132
|
glValidateProgram@4 @132
|
||||||
glVertexAttrib1f @133
|
glVertexAttrib1f@8 @133
|
||||||
glVertexAttrib1fv @134
|
glVertexAttrib1fv@8 @134
|
||||||
glVertexAttrib2f @135
|
glVertexAttrib2f@12 @135
|
||||||
glVertexAttrib2fv @136
|
glVertexAttrib2fv@8 @136
|
||||||
glVertexAttrib3f @137
|
glVertexAttrib3f@16 @137
|
||||||
glVertexAttrib3fv @138
|
glVertexAttrib3fv@8 @138
|
||||||
glVertexAttrib4f @139
|
glVertexAttrib4f@20 @139
|
||||||
glVertexAttrib4fv @140
|
glVertexAttrib4fv@8 @140
|
||||||
glVertexAttribPointer @141
|
glVertexAttribPointer@24 @141
|
||||||
glViewport @142
|
glViewport@16 @142
|
||||||
|
|
||||||
; Extensions
|
; Extensions
|
||||||
glBlitFramebufferANGLE @149
|
glBlitFramebufferANGLE@40 @149
|
||||||
glRenderbufferStorageMultisampleANGLE @150
|
glRenderbufferStorageMultisampleANGLE@20 @150
|
||||||
glDeleteFencesNV @151
|
glDeleteFencesNV@8 @151
|
||||||
glFinishFenceNV @152
|
glFinishFenceNV@4 @152
|
||||||
glGenFencesNV @153
|
glGenFencesNV@8 @153
|
||||||
glGetFenceivNV @154
|
glGetFenceivNV@12 @154
|
||||||
glIsFenceNV @155
|
glIsFenceNV@4 @155
|
||||||
glSetFenceNV @156
|
glSetFenceNV@8 @156
|
||||||
glTestFenceNV @157
|
glTestFenceNV@4 @157
|
||||||
glGetTranslatedShaderSourceANGLE @159
|
glGetTranslatedShaderSourceANGLE@16 @159
|
||||||
glTexStorage2DEXT @160
|
glTexStorage2DEXT@20 @160
|
||||||
glGetGraphicsResetStatusEXT @161
|
glGetGraphicsResetStatusEXT@0 @161
|
||||||
glReadnPixelsEXT @162
|
glReadnPixelsEXT@32 @162
|
||||||
glGetnUniformfvEXT @163
|
glGetnUniformfvEXT@16 @163
|
||||||
glGetnUniformivEXT @164
|
glGetnUniformivEXT@16 @164
|
||||||
glGenQueriesEXT @165
|
glGenQueriesEXT@8 @165
|
||||||
glDeleteQueriesEXT @166
|
glDeleteQueriesEXT@8 @166
|
||||||
glIsQueryEXT @167
|
glIsQueryEXT@4 @167
|
||||||
glBeginQueryEXT @168
|
glBeginQueryEXT@8 @168
|
||||||
glEndQueryEXT @169
|
glEndQueryEXT@4 @169
|
||||||
glGetQueryivEXT @170
|
glGetQueryivEXT@12 @170
|
||||||
glGetQueryObjectuivEXT @171
|
glGetQueryObjectuivEXT@12 @171
|
||||||
glVertexAttribDivisorANGLE @172
|
glVertexAttribDivisorANGLE@8 @172
|
||||||
glDrawArraysInstancedANGLE @173
|
glDrawArraysInstancedANGLE@16 @173
|
||||||
glDrawElementsInstancedANGLE @174
|
glDrawElementsInstancedANGLE@20 @174
|
||||||
glProgramBinaryOES @175
|
glProgramBinaryOES@16 @175
|
||||||
glGetProgramBinaryOES @176
|
glGetProgramBinaryOES@20 @176
|
||||||
glDrawBuffersEXT @179
|
glDrawBuffersEXT@8 @179
|
||||||
glMapBufferOES @285
|
glMapBufferOES@8 @285
|
||||||
glUnmapBufferOES @286
|
glUnmapBufferOES@4 @286
|
||||||
glGetBufferPointervOES @287
|
glGetBufferPointervOES@12 @287
|
||||||
glMapBufferRangeEXT @288
|
glMapBufferRangeEXT@16 @288
|
||||||
glFlushMappedBufferRangeEXT @289
|
glFlushMappedBufferRangeEXT@12 @289
|
||||||
glDiscardFramebufferEXT @293
|
glDiscardFramebufferEXT@12 @293
|
||||||
glInsertEventMarkerEXT @294
|
glInsertEventMarkerEXT@8 @294
|
||||||
glPushGroupMarkerEXT @295
|
glPushGroupMarkerEXT@8 @295
|
||||||
glPopGroupMarkerEXT @296
|
glPopGroupMarkerEXT@0 @296
|
||||||
glEGLImageTargetTexture2DOES @297
|
glEGLImageTargetTexture2DOES@8 @297
|
||||||
glEGLImageTargetRenderbufferStorageOES @298
|
glEGLImageTargetRenderbufferStorageOES@8 @298
|
||||||
glBindVertexArrayOES @299
|
glBindVertexArrayOES@4 @299
|
||||||
glDeleteVertexArraysOES @300
|
glDeleteVertexArraysOES@8 @300
|
||||||
glGenVertexArraysOES @301
|
glGenVertexArraysOES@8 @301
|
||||||
glIsVertexArrayOES @302
|
glIsVertexArrayOES@4 @302
|
||||||
glDebugMessageControlKHR @303
|
glDebugMessageControlKHR@24 @303
|
||||||
glDebugMessageInsertKHR @304
|
glDebugMessageInsertKHR@24 @304
|
||||||
glDebugMessageCallbackKHR @305
|
glDebugMessageCallbackKHR@8 @305
|
||||||
glGetDebugMessageLogKHR @306
|
glGetDebugMessageLogKHR@32 @306
|
||||||
glPushDebugGroupKHR @307
|
glPushDebugGroupKHR@16 @307
|
||||||
glPopDebugGroupKHR @308
|
glPopDebugGroupKHR@0 @308
|
||||||
glObjectLabelKHR @309
|
glObjectLabelKHR@16 @309
|
||||||
glGetObjectLabelKHR @310
|
glGetObjectLabelKHR@20 @310
|
||||||
glObjectPtrLabelKHR @311
|
glObjectPtrLabelKHR@12 @311
|
||||||
glGetObjectPtrLabelKHR @312
|
glGetObjectPtrLabelKHR@16 @312
|
||||||
glGetPointervKHR @313
|
glGetPointervKHR@8 @313
|
||||||
glQueryCounterEXT @314
|
glQueryCounterEXT@8 @314
|
||||||
glGetQueryObjectivEXT @315
|
glGetQueryObjectivEXT@12 @315
|
||||||
glGetQueryObjecti64vEXT @316
|
glGetQueryObjecti64vEXT@12 @316
|
||||||
glGetQueryObjectui64vEXT @317
|
glGetQueryObjectui64vEXT@12 @317
|
||||||
glBindUniformLocationCHROMIUM @318
|
glBindUniformLocationCHROMIUM@12 @318
|
||||||
glCoverageModulationCHROMIUM @319
|
glCoverageModulationCHROMIUM@4 @319
|
||||||
|
glMatrixLoadfCHROMIUM@8 @320
|
||||||
|
glMatrixLoadIdentityCHROMIUM@4 @321
|
||||||
|
glGenPathsCHROMIUM@4 @322
|
||||||
|
glDeletePathsCHROMIUM@8 @323
|
||||||
|
glIsPathCHROMIUM@4 @324
|
||||||
|
glPathCommandsCHROMIUM@24 @325
|
||||||
|
glPathParameterfCHROMIUM@12 @326
|
||||||
|
glPathParameteriCHROMIUM@12 @327
|
||||||
|
glGetPathParameterfvCHROMIUM@12 @328
|
||||||
|
glGetPathParameterivCHROMIUM@12 @329
|
||||||
|
glPathStencilFuncCHROMIUM@12 @330
|
||||||
|
glStencilFillPathCHROMIUM@12 @331
|
||||||
|
glStencilStrokePathCHROMIUM@12 @332
|
||||||
|
glCoverFillPathCHROMIUM@8 @333
|
||||||
|
glCoverStrokePathCHROMIUM@8 @334
|
||||||
|
glStencilThenCoverFillPathCHROMIUM@16 @335
|
||||||
|
glStencilThenCoverStrokePathCHROMIUM@16 @336
|
||||||
|
glCoverFillPathInstancedCHROMIUM@28 @337
|
||||||
|
glCoverStrokePathInstancedCHROMIUM@28 @338
|
||||||
|
glStencilStrokePathInstancedCHROMIUM@32 @339
|
||||||
|
glStencilFillPathInstancedCHROMIUM@32 @340
|
||||||
|
glStencilThenCoverFillPathInstancedCHROMIUM@36 @341
|
||||||
|
glStencilThenCoverStrokePathInstancedCHROMIUM@36 @342
|
||||||
|
glBindFragmentInputLocationCHROMIUM@12 @343
|
||||||
|
glProgramPathFragmentInputGenCHROMIUM@20 @344
|
||||||
|
|
||||||
glMatrixLoadfCHROMIUM @320
|
glFramebufferTextureMultiviewLayeredANGLE@24 @413
|
||||||
glMatrixLoadIdentityCHROMIUM @321
|
glFramebufferTextureMultiviewSideBySideANGLE@24 @414
|
||||||
glGenPathsCHROMIUM @322
|
glRequestExtensionANGLE@4 @415
|
||||||
glDeletePathsCHROMIUM @323
|
|
||||||
glIsPathCHROMIUM @324
|
|
||||||
glPathCommandsCHROMIUM @325
|
|
||||||
glPathParameterfCHROMIUM @326
|
|
||||||
glPathParameteriCHROMIUM @327
|
|
||||||
glGetPathParameterfvCHROMIUM @328
|
|
||||||
glGetPathParameterivCHROMIUM @329
|
|
||||||
glPathStencilFuncCHROMIUM @330
|
|
||||||
glStencilFillPathCHROMIUM @331
|
|
||||||
glStencilStrokePathCHROMIUM @332
|
|
||||||
glCoverFillPathCHROMIUM @333
|
|
||||||
glCoverStrokePathCHROMIUM @334
|
|
||||||
glStencilThenCoverFillPathCHROMIUM @335
|
|
||||||
glStencilThenCoverStrokePathCHROMIUM @336
|
|
||||||
glCoverFillPathInstancedCHROMIUM @337
|
|
||||||
glCoverStrokePathInstancedCHROMIUM @338
|
|
||||||
glStencilStrokePathInstancedCHROMIUM @339
|
|
||||||
glStencilFillPathInstancedCHROMIUM @340
|
|
||||||
glStencilThenCoverFillPathInstancedCHROMIUM @341
|
|
||||||
glStencilThenCoverStrokePathInstancedCHROMIUM @342
|
|
||||||
glBindFragmentInputLocationCHROMIUM @343
|
|
||||||
glProgramPathFragmentInputGenCHROMIUM @344
|
|
||||||
|
|
||||||
glFramebufferTextureMultiviewLayeredANGLE @413
|
|
||||||
glFramebufferTextureMultiviewSideBySideANGLE @414
|
|
||||||
glRequestExtensionANGLE @415
|
|
||||||
|
|
||||||
; GLES 3.0 Functions
|
; GLES 3.0 Functions
|
||||||
glReadBuffer @180
|
glReadBuffer@4 @180
|
||||||
glDrawRangeElements @181
|
glDrawRangeElements@24 @181
|
||||||
glTexImage3D @182
|
glTexImage3D@40 @182
|
||||||
glTexSubImage3D @183
|
glTexSubImage3D@44 @183
|
||||||
glCopyTexSubImage3D @184
|
glCopyTexSubImage3D@36 @184
|
||||||
glCompressedTexImage3D @185
|
glCompressedTexImage3D@36 @185
|
||||||
glCompressedTexSubImage3D @186
|
glCompressedTexSubImage3D@44 @186
|
||||||
glGenQueries @187
|
glGenQueries@8 @187
|
||||||
glDeleteQueries @188
|
glDeleteQueries@8 @188
|
||||||
glIsQuery @189
|
glIsQuery@4 @189
|
||||||
glBeginQuery @190
|
glBeginQuery@8 @190
|
||||||
glEndQuery @191
|
glEndQuery@4 @191
|
||||||
glGetQueryiv @192
|
glGetQueryiv@12 @192
|
||||||
glGetQueryObjectuiv @193
|
glGetQueryObjectuiv@12 @193
|
||||||
glUnmapBuffer @194
|
glUnmapBuffer@4 @194
|
||||||
glGetBufferPointerv @195
|
glGetBufferPointerv@12 @195
|
||||||
glDrawBuffers @196
|
glDrawBuffers@8 @196
|
||||||
glUniformMatrix2x3fv @197
|
glUniformMatrix2x3fv@16 @197
|
||||||
glUniformMatrix3x2fv @198
|
glUniformMatrix3x2fv@16 @198
|
||||||
glUniformMatrix2x4fv @199
|
glUniformMatrix2x4fv@16 @199
|
||||||
glUniformMatrix4x2fv @200
|
glUniformMatrix4x2fv@16 @200
|
||||||
glUniformMatrix3x4fv @201
|
glUniformMatrix3x4fv@16 @201
|
||||||
glUniformMatrix4x3fv @202
|
glUniformMatrix4x3fv@16 @202
|
||||||
glBlitFramebuffer @203
|
glBlitFramebuffer@40 @203
|
||||||
glRenderbufferStorageMultisample @204
|
glRenderbufferStorageMultisample@20 @204
|
||||||
glFramebufferTextureLayer @205
|
glFramebufferTextureLayer@20 @205
|
||||||
glMapBufferRange @206
|
glMapBufferRange@16 @206
|
||||||
glFlushMappedBufferRange @207
|
glFlushMappedBufferRange@12 @207
|
||||||
glBindVertexArray @208
|
glBindVertexArray@4 @208
|
||||||
glDeleteVertexArrays @209
|
glDeleteVertexArrays@8 @209
|
||||||
glGenVertexArrays @210
|
glGenVertexArrays@8 @210
|
||||||
glIsVertexArray @211
|
glIsVertexArray@4 @211
|
||||||
glGetIntegeri_v @212
|
glGetIntegeri_v@12 @212
|
||||||
glBeginTransformFeedback @213
|
glBeginTransformFeedback@4 @213
|
||||||
glEndTransformFeedback @214
|
glEndTransformFeedback@0 @214
|
||||||
glBindBufferRange @215
|
glBindBufferRange@20 @215
|
||||||
glBindBufferBase @216
|
glBindBufferBase@12 @216
|
||||||
glTransformFeedbackVaryings @217
|
glTransformFeedbackVaryings@16 @217
|
||||||
glGetTransformFeedbackVarying @218
|
glGetTransformFeedbackVarying@28 @218
|
||||||
glVertexAttribIPointer @219
|
glVertexAttribIPointer@20 @219
|
||||||
glGetVertexAttribIiv @220
|
glGetVertexAttribIiv@12 @220
|
||||||
glGetVertexAttribIuiv @221
|
glGetVertexAttribIuiv@12 @221
|
||||||
glVertexAttribI4i @222
|
glVertexAttribI4i@20 @222
|
||||||
glVertexAttribI4ui @223
|
glVertexAttribI4ui@20 @223
|
||||||
glVertexAttribI4iv @224
|
glVertexAttribI4iv@8 @224
|
||||||
glVertexAttribI4uiv @225
|
glVertexAttribI4uiv@8 @225
|
||||||
glGetUniformuiv @226
|
glGetUniformuiv@12 @226
|
||||||
glGetFragDataLocation @227
|
glGetFragDataLocation@8 @227
|
||||||
glUniform1ui @228
|
glUniform1ui@8 @228
|
||||||
glUniform2ui @229
|
glUniform2ui@12 @229
|
||||||
glUniform3ui @230
|
glUniform3ui@16 @230
|
||||||
glUniform4ui @231
|
glUniform4ui@20 @231
|
||||||
glUniform1uiv @232
|
glUniform1uiv@12 @232
|
||||||
glUniform2uiv @233
|
glUniform2uiv@12 @233
|
||||||
glUniform3uiv @234
|
glUniform3uiv@12 @234
|
||||||
glUniform4uiv @235
|
glUniform4uiv@12 @235
|
||||||
glClearBufferiv @236
|
glClearBufferiv@12 @236
|
||||||
glClearBufferuiv @237
|
glClearBufferuiv@12 @237
|
||||||
glClearBufferfv @238
|
glClearBufferfv@12 @238
|
||||||
glClearBufferfi @239
|
glClearBufferfi@16 @239
|
||||||
glGetStringi @240
|
glGetStringi@8 @240
|
||||||
glCopyBufferSubData @241
|
glCopyBufferSubData@20 @241
|
||||||
glGetUniformIndices @242
|
glGetUniformIndices@16 @242
|
||||||
glGetActiveUniformsiv @243
|
glGetActiveUniformsiv@20 @243
|
||||||
glGetUniformBlockIndex @244
|
glGetUniformBlockIndex@8 @244
|
||||||
glGetActiveUniformBlockiv @245
|
glGetActiveUniformBlockiv@16 @245
|
||||||
glGetActiveUniformBlockName @246
|
glGetActiveUniformBlockName@20 @246
|
||||||
glUniformBlockBinding @247
|
glUniformBlockBinding@12 @247
|
||||||
glDrawArraysInstanced @248
|
glDrawArraysInstanced@16 @248
|
||||||
glDrawElementsInstanced @249
|
glDrawElementsInstanced@20 @249
|
||||||
glFenceSync @250
|
glFenceSync@8 @250
|
||||||
glIsSync @251
|
glIsSync@4 @251
|
||||||
glDeleteSync @252
|
glDeleteSync@4 @252
|
||||||
glClientWaitSync @253
|
glClientWaitSync@16 @253
|
||||||
glWaitSync @254
|
glWaitSync@16 @254
|
||||||
glGetInteger64v @255
|
glGetInteger64v@8 @255
|
||||||
glGetSynciv @256
|
glGetSynciv@20 @256
|
||||||
glGetInteger64i_v @257
|
glGetInteger64i_v@12 @257
|
||||||
glGetBufferParameteri64v @258
|
glGetBufferParameteri64v@12 @258
|
||||||
glGenSamplers @259
|
glGenSamplers@8 @259
|
||||||
glDeleteSamplers @260
|
glDeleteSamplers@8 @260
|
||||||
glIsSampler @261
|
glIsSampler@4 @261
|
||||||
glBindSampler @262
|
glBindSampler@8 @262
|
||||||
glSamplerParameteri @263
|
glSamplerParameteri@12 @263
|
||||||
glSamplerParameteriv @264
|
glSamplerParameteriv@12 @264
|
||||||
glSamplerParameterf @265
|
glSamplerParameterf@12 @265
|
||||||
glSamplerParameterfv @266
|
glSamplerParameterfv@12 @266
|
||||||
glGetSamplerParameteriv @267
|
glGetSamplerParameteriv@12 @267
|
||||||
glGetSamplerParameterfv @268
|
glGetSamplerParameterfv@12 @268
|
||||||
glVertexAttribDivisor @269
|
glVertexAttribDivisor@8 @269
|
||||||
glBindTransformFeedback @270
|
glBindTransformFeedback@8 @270
|
||||||
glDeleteTransformFeedbacks @271
|
glDeleteTransformFeedbacks@8 @271
|
||||||
glGenTransformFeedbacks @272
|
glGenTransformFeedbacks@8 @272
|
||||||
glIsTransformFeedback @273
|
glIsTransformFeedback@4 @273
|
||||||
glPauseTransformFeedback @274
|
glPauseTransformFeedback@0 @274
|
||||||
glResumeTransformFeedback @275
|
glResumeTransformFeedback@0 @275
|
||||||
glGetProgramBinary @276
|
glGetProgramBinary@20 @276
|
||||||
glProgramBinary @277
|
glProgramBinary@16 @277
|
||||||
glProgramParameteri @278
|
glProgramParameteri@12 @278
|
||||||
glInvalidateFramebuffer @279
|
glInvalidateFramebuffer@12 @279
|
||||||
glInvalidateSubFramebuffer @280
|
glInvalidateSubFramebuffer@28 @280
|
||||||
glTexStorage2D @281
|
glTexStorage2D@20 @281
|
||||||
glTexStorage3D @282
|
glTexStorage3D@24 @282
|
||||||
glGetInternalformativ @283
|
glGetInternalformativ@20 @283
|
||||||
|
|
||||||
; GLES 3.1 Functions
|
; GLES 3.1 Functions
|
||||||
glDispatchCompute @345
|
glDispatchCompute@12 @345
|
||||||
glDispatchComputeIndirect @346
|
glDispatchComputeIndirect@4 @346
|
||||||
glDrawArraysIndirect @347
|
glDrawArraysIndirect@8 @347
|
||||||
glDrawElementsIndirect @348
|
glDrawElementsIndirect@12 @348
|
||||||
glFramebufferParameteri @349
|
glFramebufferParameteri@12 @349
|
||||||
glGetFramebufferParameteriv @350
|
glGetFramebufferParameteriv@12 @350
|
||||||
glGetProgramInterfaceiv @351
|
glGetProgramInterfaceiv@16 @351
|
||||||
glGetProgramResourceIndex @352
|
glGetProgramResourceIndex@12 @352
|
||||||
glGetProgramResourceName @353
|
glGetProgramResourceName@24 @353
|
||||||
glGetProgramResourceiv @354
|
glGetProgramResourceiv@32 @354
|
||||||
glGetProgramResourceLocation @355
|
glGetProgramResourceLocation@12 @355
|
||||||
glUseProgramStages @356
|
glUseProgramStages@12 @356
|
||||||
glActiveShaderProgram @357
|
glActiveShaderProgram@8 @357
|
||||||
glCreateShaderProgramv @358
|
glCreateShaderProgramv@12 @358
|
||||||
glBindProgramPipeline @359
|
glBindProgramPipeline@4 @359
|
||||||
glDeleteProgramPipelines @360
|
glDeleteProgramPipelines@8 @360
|
||||||
glGenProgramPipelines @361
|
glGenProgramPipelines@8 @361
|
||||||
glIsProgramPipeline @362
|
glIsProgramPipeline@4 @362
|
||||||
glGetProgramPipelineiv @363
|
glGetProgramPipelineiv@12 @363
|
||||||
glProgramUniform1i @364
|
glProgramUniform1i@12 @364
|
||||||
glProgramUniform2i @365
|
glProgramUniform2i@16 @365
|
||||||
glProgramUniform3i @366
|
glProgramUniform3i@20 @366
|
||||||
glProgramUniform4i @367
|
glProgramUniform4i@24 @367
|
||||||
glProgramUniform1ui @368
|
glProgramUniform1ui@12 @368
|
||||||
glProgramUniform2ui @369
|
glProgramUniform2ui@16 @369
|
||||||
glProgramUniform3ui @370
|
glProgramUniform3ui@20 @370
|
||||||
glProgramUniform4ui @371
|
glProgramUniform4ui@24 @371
|
||||||
glProgramUniform1f @372
|
glProgramUniform1f@12 @372
|
||||||
glProgramUniform2f @373
|
glProgramUniform2f@16 @373
|
||||||
glProgramUniform3f @374
|
glProgramUniform3f@20 @374
|
||||||
glProgramUniform4f @375
|
glProgramUniform4f@24 @375
|
||||||
glProgramUniform1iv @376
|
glProgramUniform1iv@16 @376
|
||||||
glProgramUniform2iv @377
|
glProgramUniform2iv@16 @377
|
||||||
glProgramUniform3iv @378
|
glProgramUniform3iv@16 @378
|
||||||
glProgramUniform4iv @379
|
glProgramUniform4iv@16 @379
|
||||||
glProgramUniform1uiv @380
|
glProgramUniform1uiv@16 @380
|
||||||
glProgramUniform2uiv @381
|
glProgramUniform2uiv@16 @381
|
||||||
glProgramUniform3uiv @382
|
glProgramUniform3uiv@16 @382
|
||||||
glProgramUniform4uiv @383
|
glProgramUniform4uiv@16 @383
|
||||||
glProgramUniform1fv @384
|
glProgramUniform1fv@16 @384
|
||||||
glProgramUniform2fv @385
|
glProgramUniform2fv@16 @385
|
||||||
glProgramUniform3fv @386
|
glProgramUniform3fv@16 @386
|
||||||
glProgramUniform4fv @387
|
glProgramUniform4fv@16 @387
|
||||||
glProgramUniformMatrix2fv @388
|
glProgramUniformMatrix2fv@20 @388
|
||||||
glProgramUniformMatrix3fv @389
|
glProgramUniformMatrix3fv@20 @389
|
||||||
glProgramUniformMatrix4fv @390
|
glProgramUniformMatrix4fv@20 @390
|
||||||
glProgramUniformMatrix2x3fv @391
|
glProgramUniformMatrix2x3fv@20 @391
|
||||||
glProgramUniformMatrix3x2fv @392
|
glProgramUniformMatrix3x2fv@20 @392
|
||||||
glProgramUniformMatrix2x4fv @393
|
glProgramUniformMatrix2x4fv@20 @393
|
||||||
glProgramUniformMatrix4x2fv @394
|
glProgramUniformMatrix4x2fv@20 @394
|
||||||
glProgramUniformMatrix3x4fv @395
|
glProgramUniformMatrix3x4fv@20 @395
|
||||||
glProgramUniformMatrix4x3fv @396
|
glProgramUniformMatrix4x3fv@20 @396
|
||||||
glValidateProgramPipeline @397
|
glValidateProgramPipeline@4 @397
|
||||||
glGetProgramPipelineInfoLog @398
|
glGetProgramPipelineInfoLog@16 @398
|
||||||
glBindImageTexture @399
|
glBindImageTexture@28 @399
|
||||||
glGetBooleani_v @400
|
glGetBooleani_v@12 @400
|
||||||
glMemoryBarrier @401
|
glMemoryBarrier@4 @401
|
||||||
glMemoryBarrierByRegion @402
|
glMemoryBarrierByRegion@4 @402
|
||||||
glTexStorage2DMultisample @403
|
glTexStorage2DMultisample@24 @403
|
||||||
glGetMultisamplefv @404
|
glGetMultisamplefv@12 @404
|
||||||
glSampleMaski @405
|
glSampleMaski@8 @405
|
||||||
glGetTexLevelParameteriv @406
|
glGetTexLevelParameteriv@16 @406
|
||||||
glGetTexLevelParameterfv @407
|
glGetTexLevelParameterfv@16 @407
|
||||||
glBindVertexBuffer @408
|
glBindVertexBuffer@16 @408
|
||||||
glVertexAttribFormat @409
|
glVertexAttribFormat@20 @409
|
||||||
glVertexAttribIFormat @410
|
glVertexAttribIFormat@16 @410
|
||||||
glVertexAttribBinding @411
|
glVertexAttribBinding@8 @411
|
||||||
glVertexBindingDivisor @412
|
glVertexBindingDivisor@8 @412
|
||||||
|
@ -1,412 +1,411 @@
|
|||||||
LIBRARY libGLESv2
|
LIBRARY libGLESv2
|
||||||
EXPORTS
|
EXPORTS
|
||||||
glActiveTexture @1
|
glActiveTexture@4 @1
|
||||||
glAttachShader @2
|
glAttachShader@8 @2
|
||||||
glBindAttribLocation @3
|
glBindAttribLocation@12 @3
|
||||||
glBindBuffer @4
|
glBindBuffer@8 @4
|
||||||
glBindFramebuffer @5
|
glBindFramebuffer@8 @5
|
||||||
glBindRenderbuffer @6
|
glBindRenderbuffer@8 @6
|
||||||
glBindTexture @7
|
glBindTexture@8 @7
|
||||||
glBlendColor @8
|
glBlendColor@16 @8
|
||||||
glBlendEquation @9
|
glBlendEquation@4 @9
|
||||||
glBlendEquationSeparate @10
|
glBlendEquationSeparate@8 @10
|
||||||
glBlendFunc @11
|
glBlendFunc@8 @11
|
||||||
glBlendFuncSeparate @12
|
glBlendFuncSeparate@16 @12
|
||||||
glBufferData @13
|
glBufferData@16 @13
|
||||||
glBufferSubData @14
|
glBufferSubData@16 @14
|
||||||
glCheckFramebufferStatus @15
|
glCheckFramebufferStatus@4 @15
|
||||||
glClear @16
|
glClear@4 @16
|
||||||
glClearColor @17
|
glClearColor@16 @17
|
||||||
glClearDepthf @18
|
glClearDepthf@4 @18
|
||||||
glClearStencil @19
|
glClearStencil@4 @19
|
||||||
glColorMask @20
|
glColorMask@16 @20
|
||||||
glCompileShader @21
|
glCompileShader@4 @21
|
||||||
glCompressedTexImage2D @22
|
glCompressedTexImage2D@32 @22
|
||||||
glCompressedTexSubImage2D @23
|
glCompressedTexSubImage2D@36 @23
|
||||||
glCopyTexImage2D @24
|
glCopyTexImage2D@32 @24
|
||||||
glCopyTexSubImage2D @25
|
glCopyTexSubImage2D@32 @25
|
||||||
glCreateProgram @26
|
glCreateProgram@0 @26
|
||||||
glCreateShader @27
|
glCreateShader@4 @27
|
||||||
glCullFace @28
|
glCullFace@4 @28
|
||||||
glDeleteBuffers @29
|
glDeleteBuffers@8 @29
|
||||||
glDeleteFramebuffers @30
|
glDeleteFramebuffers@8 @30
|
||||||
glDeleteProgram @32
|
glDeleteProgram@4 @32
|
||||||
glDeleteRenderbuffers @33
|
glDeleteRenderbuffers@8 @33
|
||||||
glDeleteShader @34
|
glDeleteShader@4 @34
|
||||||
glDeleteTextures @31
|
glDeleteTextures@8 @31
|
||||||
glDepthFunc @36
|
glDepthFunc@4 @36
|
||||||
glDepthMask @37
|
glDepthMask@4 @37
|
||||||
glDepthRangef @38
|
glDepthRangef@8 @38
|
||||||
glDetachShader @35
|
glDetachShader@8 @35
|
||||||
glDisable @39
|
glDisable@4 @39
|
||||||
glDisableVertexAttribArray @40
|
glDisableVertexAttribArray@4 @40
|
||||||
glDrawArrays @41
|
glDrawArrays@12 @41
|
||||||
glDrawElements @42
|
glDrawElements@16 @42
|
||||||
glEnable @43
|
glEnable@4 @43
|
||||||
glEnableVertexAttribArray @44
|
glEnableVertexAttribArray@4 @44
|
||||||
glFinish @45
|
glFinish@0 @45
|
||||||
glFlush @46
|
glFlush@0 @46
|
||||||
glFramebufferRenderbuffer @47
|
glFramebufferRenderbuffer@16 @47
|
||||||
glFramebufferTexture2D @48
|
glFramebufferTexture2D@20 @48
|
||||||
glFrontFace @49
|
glFrontFace@4 @49
|
||||||
glGenBuffers @50
|
glGenBuffers@8 @50
|
||||||
glGenFramebuffers @52
|
glGenFramebuffers@8 @52
|
||||||
glGenRenderbuffers @53
|
glGenRenderbuffers@8 @53
|
||||||
glGenTextures @54
|
glGenTextures@8 @54
|
||||||
glGenerateMipmap @51
|
glGenerateMipmap@4 @51
|
||||||
glGetActiveAttrib @55
|
glGetActiveAttrib@28 @55
|
||||||
glGetActiveUniform @56
|
glGetActiveUniform@28 @56
|
||||||
glGetAttachedShaders @57
|
glGetAttachedShaders@16 @57
|
||||||
glGetAttribLocation @58
|
glGetAttribLocation@8 @58
|
||||||
glGetBooleanv @59
|
glGetBooleanv@8 @59
|
||||||
glGetBufferParameteriv @60
|
glGetBufferParameteriv@12 @60
|
||||||
glGetError @61
|
glGetError@0 @61
|
||||||
glGetFloatv @62
|
glGetFloatv@8 @62
|
||||||
glGetFramebufferAttachmentParameteriv @63
|
glGetFramebufferAttachmentParameteriv@16 @63
|
||||||
glGetIntegerv @64
|
glGetIntegerv@8 @64
|
||||||
glGetProgramInfoLog @66
|
glGetProgramInfoLog@16 @66
|
||||||
glGetProgramiv @65
|
glGetProgramiv@12 @65
|
||||||
glGetRenderbufferParameteriv @67
|
glGetRenderbufferParameteriv@12 @67
|
||||||
glGetShaderInfoLog @69
|
glGetShaderInfoLog@16 @69
|
||||||
glGetShaderPrecisionFormat @70
|
glGetShaderPrecisionFormat@16 @70
|
||||||
glGetShaderSource @71
|
glGetShaderSource@16 @71
|
||||||
glGetShaderiv @68
|
glGetShaderiv@12 @68
|
||||||
glGetString @72
|
glGetString@4 @72
|
||||||
glGetTexParameterfv @73
|
glGetTexParameterfv@12 @73
|
||||||
glGetTexParameteriv @74
|
glGetTexParameteriv@12 @74
|
||||||
glGetUniformLocation @77
|
glGetUniformLocation@8 @77
|
||||||
glGetUniformfv @75
|
glGetUniformfv@12 @75
|
||||||
glGetUniformiv @76
|
glGetUniformiv@12 @76
|
||||||
glGetVertexAttribPointerv @80
|
glGetVertexAttribPointerv@12 @80
|
||||||
glGetVertexAttribfv @78
|
glGetVertexAttribfv@12 @78
|
||||||
glGetVertexAttribiv @79
|
glGetVertexAttribiv@12 @79
|
||||||
glHint @81
|
glHint@8 @81
|
||||||
glIsBuffer @82
|
glIsBuffer@4 @82
|
||||||
glIsEnabled @83
|
glIsEnabled@4 @83
|
||||||
glIsFramebuffer @84
|
glIsFramebuffer@4 @84
|
||||||
glIsProgram @85
|
glIsProgram@4 @85
|
||||||
glIsRenderbuffer @86
|
glIsRenderbuffer@4 @86
|
||||||
glIsShader @87
|
glIsShader@4 @87
|
||||||
glIsTexture @88
|
glIsTexture@4 @88
|
||||||
glLineWidth @89
|
glLineWidth@4 @89
|
||||||
glLinkProgram @90
|
glLinkProgram@4 @90
|
||||||
glPixelStorei @91
|
glPixelStorei@8 @91
|
||||||
glPolygonOffset @92
|
glPolygonOffset@8 @92
|
||||||
glReadPixels @93
|
glReadPixels@28 @93
|
||||||
glReleaseShaderCompiler @94
|
glReleaseShaderCompiler@0 @94
|
||||||
glRenderbufferStorage @95
|
glRenderbufferStorage@16 @95
|
||||||
glSampleCoverage @96
|
glSampleCoverage@8 @96
|
||||||
glScissor @97
|
glScissor@16 @97
|
||||||
glShaderBinary @98
|
glShaderBinary@20 @98
|
||||||
glShaderSource @99
|
glShaderSource@16 @99
|
||||||
glStencilFunc @100
|
glStencilFunc@12 @100
|
||||||
glStencilFuncSeparate @101
|
glStencilFuncSeparate@16 @101
|
||||||
glStencilMask @102
|
glStencilMask@4 @102
|
||||||
glStencilMaskSeparate @103
|
glStencilMaskSeparate@8 @103
|
||||||
glStencilOp @104
|
glStencilOp@12 @104
|
||||||
glStencilOpSeparate @105
|
glStencilOpSeparate@16 @105
|
||||||
glTexImage2D @106
|
glTexImage2D@36 @106
|
||||||
glTexParameterf @107
|
glTexParameterf@12 @107
|
||||||
glTexParameterfv @108
|
glTexParameterfv@12 @108
|
||||||
glTexParameteri @109
|
glTexParameteri@12 @109
|
||||||
glTexParameteriv @110
|
glTexParameteriv@12 @110
|
||||||
glTexSubImage2D @111
|
glTexSubImage2D@36 @111
|
||||||
glUniform1f @112
|
glUniform1f@8 @112
|
||||||
glUniform1fv @113
|
glUniform1fv@12 @113
|
||||||
glUniform1i @114
|
glUniform1i@8 @114
|
||||||
glUniform1iv @115
|
glUniform1iv@12 @115
|
||||||
glUniform2f @116
|
glUniform2f@12 @116
|
||||||
glUniform2fv @117
|
glUniform2fv@12 @117
|
||||||
glUniform2i @118
|
glUniform2i@12 @118
|
||||||
glUniform2iv @119
|
glUniform2iv@12 @119
|
||||||
glUniform3f @120
|
glUniform3f@16 @120
|
||||||
glUniform3fv @121
|
glUniform3fv@12 @121
|
||||||
glUniform3i @122
|
glUniform3i@16 @122
|
||||||
glUniform3iv @123
|
glUniform3iv@12 @123
|
||||||
glUniform4f @124
|
glUniform4f@20 @124
|
||||||
glUniform4fv @125
|
glUniform4fv@12 @125
|
||||||
glUniform4i @126
|
glUniform4i@20 @126
|
||||||
glUniform4iv @127
|
glUniform4iv@12 @127
|
||||||
glUniformMatrix2fv @128
|
glUniformMatrix2fv@16 @128
|
||||||
glUniformMatrix3fv @129
|
glUniformMatrix3fv@16 @129
|
||||||
glUniformMatrix4fv @130
|
glUniformMatrix4fv@16 @130
|
||||||
glUseProgram @131
|
glUseProgram@4 @131
|
||||||
glValidateProgram @132
|
glValidateProgram@4 @132
|
||||||
glVertexAttrib1f @133
|
glVertexAttrib1f@8 @133
|
||||||
glVertexAttrib1fv @134
|
glVertexAttrib1fv@8 @134
|
||||||
glVertexAttrib2f @135
|
glVertexAttrib2f@12 @135
|
||||||
glVertexAttrib2fv @136
|
glVertexAttrib2fv@8 @136
|
||||||
glVertexAttrib3f @137
|
glVertexAttrib3f@16 @137
|
||||||
glVertexAttrib3fv @138
|
glVertexAttrib3fv@8 @138
|
||||||
glVertexAttrib4f @139
|
glVertexAttrib4f@20 @139
|
||||||
glVertexAttrib4fv @140
|
glVertexAttrib4fv@8 @140
|
||||||
glVertexAttribPointer @141
|
glVertexAttribPointer@24 @141
|
||||||
glViewport @142
|
glViewport@16 @142
|
||||||
|
|
||||||
; Extensions
|
; Extensions
|
||||||
glBlitFramebufferANGLE @149
|
glBlitFramebufferANGLE@40 @149
|
||||||
glRenderbufferStorageMultisampleANGLE @150
|
glRenderbufferStorageMultisampleANGLE@20 @150
|
||||||
glDeleteFencesNV @151
|
glDeleteFencesNV@8 @151
|
||||||
glFinishFenceNV @152
|
glFinishFenceNV@4 @152
|
||||||
glGenFencesNV @153
|
glGenFencesNV@8 @153
|
||||||
glGetFenceivNV @154
|
glGetFenceivNV@12 @154
|
||||||
glIsFenceNV @155
|
glIsFenceNV@4 @155
|
||||||
glSetFenceNV @156
|
glSetFenceNV@8 @156
|
||||||
glTestFenceNV @157
|
glTestFenceNV@4 @157
|
||||||
glGetTranslatedShaderSourceANGLE @159
|
glGetTranslatedShaderSourceANGLE@16 @159
|
||||||
glTexStorage2DEXT @160
|
glTexStorage2DEXT@20 @160
|
||||||
glGetGraphicsResetStatusEXT @161
|
glGetGraphicsResetStatusEXT@0 @161
|
||||||
glReadnPixelsEXT @162
|
glReadnPixelsEXT@32 @162
|
||||||
glGetnUniformfvEXT @163
|
glGetnUniformfvEXT@16 @163
|
||||||
glGetnUniformivEXT @164
|
glGetnUniformivEXT@16 @164
|
||||||
glGenQueriesEXT @165
|
glGenQueriesEXT@8 @165
|
||||||
glDeleteQueriesEXT @166
|
glDeleteQueriesEXT@8 @166
|
||||||
glIsQueryEXT @167
|
glIsQueryEXT@4 @167
|
||||||
glBeginQueryEXT @168
|
glBeginQueryEXT@8 @168
|
||||||
glEndQueryEXT @169
|
glEndQueryEXT@4 @169
|
||||||
glGetQueryivEXT @170
|
glGetQueryivEXT@12 @170
|
||||||
glGetQueryObjectuivEXT @171
|
glGetQueryObjectuivEXT@12 @171
|
||||||
glVertexAttribDivisorANGLE @172
|
glVertexAttribDivisorANGLE@8 @172
|
||||||
glDrawArraysInstancedANGLE @173
|
glDrawArraysInstancedANGLE@16 @173
|
||||||
glDrawElementsInstancedANGLE @174
|
glDrawElementsInstancedANGLE@20 @174
|
||||||
glProgramBinaryOES @175
|
glProgramBinaryOES@16 @175
|
||||||
glGetProgramBinaryOES @176
|
glGetProgramBinaryOES@20 @176
|
||||||
glDrawBuffersEXT @179
|
glDrawBuffersEXT@8 @179
|
||||||
glMapBufferOES @285
|
glMapBufferOES@8 @285
|
||||||
glUnmapBufferOES @286
|
glUnmapBufferOES@4 @286
|
||||||
glGetBufferPointervOES @287
|
glGetBufferPointervOES@12 @287
|
||||||
glMapBufferRangeEXT @288
|
glMapBufferRangeEXT@16 @288
|
||||||
glFlushMappedBufferRangeEXT @289
|
glFlushMappedBufferRangeEXT@12 @289
|
||||||
glDiscardFramebufferEXT @293
|
glDiscardFramebufferEXT@12 @293
|
||||||
glInsertEventMarkerEXT @294
|
glInsertEventMarkerEXT@8 @294
|
||||||
glPushGroupMarkerEXT @295
|
glPushGroupMarkerEXT@8 @295
|
||||||
glPopGroupMarkerEXT @296
|
glPopGroupMarkerEXT@0 @296
|
||||||
glEGLImageTargetTexture2DOES @297
|
glEGLImageTargetTexture2DOES@8 @297
|
||||||
glEGLImageTargetRenderbufferStorageOES @298
|
glEGLImageTargetRenderbufferStorageOES@8 @298
|
||||||
glBindVertexArrayOES @299
|
glBindVertexArrayOES@4 @299
|
||||||
glDeleteVertexArraysOES @300
|
glDeleteVertexArraysOES@8 @300
|
||||||
glGenVertexArraysOES @301
|
glGenVertexArraysOES@8 @301
|
||||||
glIsVertexArrayOES @302
|
glIsVertexArrayOES@4 @302
|
||||||
glDebugMessageControlKHR @303
|
glDebugMessageControlKHR@24 @303
|
||||||
glDebugMessageInsertKHR @304
|
glDebugMessageInsertKHR@24 @304
|
||||||
glDebugMessageCallbackKHR @305
|
glDebugMessageCallbackKHR@8 @305
|
||||||
glGetDebugMessageLogKHR @306
|
glGetDebugMessageLogKHR@32 @306
|
||||||
glPushDebugGroupKHR @307
|
glPushDebugGroupKHR@16 @307
|
||||||
glPopDebugGroupKHR @308
|
glPopDebugGroupKHR@0 @308
|
||||||
glObjectLabelKHR @309
|
glObjectLabelKHR@16 @309
|
||||||
glGetObjectLabelKHR @310
|
glGetObjectLabelKHR@20 @310
|
||||||
glObjectPtrLabelKHR @311
|
glObjectPtrLabelKHR@12 @311
|
||||||
glGetObjectPtrLabelKHR @312
|
glGetObjectPtrLabelKHR@16 @312
|
||||||
glGetPointervKHR @313
|
glGetPointervKHR@8 @313
|
||||||
glQueryCounterEXT @314
|
glQueryCounterEXT@8 @314
|
||||||
glGetQueryObjectivEXT @315
|
glGetQueryObjectivEXT@12 @315
|
||||||
glGetQueryObjecti64vEXT @316
|
glGetQueryObjecti64vEXT@12 @316
|
||||||
glGetQueryObjectui64vEXT @317
|
glGetQueryObjectui64vEXT@12 @317
|
||||||
glBindUniformLocationCHROMIUM @318
|
glBindUniformLocationCHROMIUM@12 @318
|
||||||
glCoverageModulationCHROMIUM @319
|
glCoverageModulationCHROMIUM@4 @319
|
||||||
|
glMatrixLoadfCHROMIUM@8 @320
|
||||||
|
glMatrixLoadIdentityCHROMIUM@4 @321
|
||||||
|
glGenPathsCHROMIUM@4 @322
|
||||||
|
glDeletePathsCHROMIUM@8 @323
|
||||||
|
glIsPathCHROMIUM@4 @324
|
||||||
|
glPathCommandsCHROMIUM@24 @325
|
||||||
|
glPathParameterfCHROMIUM@12 @326
|
||||||
|
glPathParameteriCHROMIUM@12 @327
|
||||||
|
glGetPathParameterfvCHROMIUM@12 @328
|
||||||
|
glGetPathParameterivCHROMIUM@12 @329
|
||||||
|
glPathStencilFuncCHROMIUM@12 @330
|
||||||
|
glStencilFillPathCHROMIUM@12 @331
|
||||||
|
glStencilStrokePathCHROMIUM@12 @332
|
||||||
|
glCoverFillPathCHROMIUM@8 @333
|
||||||
|
glCoverStrokePathCHROMIUM@8 @334
|
||||||
|
glStencilThenCoverFillPathCHROMIUM@16 @335
|
||||||
|
glStencilThenCoverStrokePathCHROMIUM@16 @336
|
||||||
|
glCoverFillPathInstancedCHROMIUM@28 @337
|
||||||
|
glCoverStrokePathInstancedCHROMIUM@28 @338
|
||||||
|
glStencilStrokePathInstancedCHROMIUM@32 @339
|
||||||
|
glStencilFillPathInstancedCHROMIUM@32 @340
|
||||||
|
glStencilThenCoverFillPathInstancedCHROMIUM@36 @341
|
||||||
|
glStencilThenCoverStrokePathInstancedCHROMIUM@36 @342
|
||||||
|
glBindFragmentInputLocationCHROMIUM@12 @343
|
||||||
|
glProgramPathFragmentInputGenCHROMIUM@20 @344
|
||||||
|
|
||||||
glMatrixLoadfCHROMIUM @320
|
glFramebufferTextureMultiviewLayeredANGLE@24 @413
|
||||||
glMatrixLoadIdentityCHROMIUM @321
|
glFramebufferTextureMultiviewSideBySideANGLE@24 @414
|
||||||
glGenPathsCHROMIUM @322
|
glRequestExtensionANGLE@4 @415
|
||||||
glDeletePathsCHROMIUM @323
|
|
||||||
glIsPathCHROMIUM @324
|
|
||||||
glPathCommandsCHROMIUM @325
|
|
||||||
glPathParameterfCHROMIUM @326
|
|
||||||
glPathParameteriCHROMIUM @327
|
|
||||||
glGetPathParameterfvCHROMIUM @328
|
|
||||||
glGetPathParameterivCHROMIUM @329
|
|
||||||
glPathStencilFuncCHROMIUM @330
|
|
||||||
glStencilFillPathCHROMIUM @331
|
|
||||||
glStencilStrokePathCHROMIUM @332
|
|
||||||
glCoverFillPathCHROMIUM @333
|
|
||||||
glCoverStrokePathCHROMIUM @334
|
|
||||||
glStencilThenCoverFillPathCHROMIUM @335
|
|
||||||
glStencilThenCoverStrokePathCHROMIUM @336
|
|
||||||
glCoverFillPathInstancedCHROMIUM @337
|
|
||||||
glCoverStrokePathInstancedCHROMIUM @338
|
|
||||||
glStencilStrokePathInstancedCHROMIUM @339
|
|
||||||
glStencilFillPathInstancedCHROMIUM @340
|
|
||||||
glStencilThenCoverFillPathInstancedCHROMIUM @341
|
|
||||||
glStencilThenCoverStrokePathInstancedCHROMIUM @342
|
|
||||||
glBindFragmentInputLocationCHROMIUM @343
|
|
||||||
glProgramPathFragmentInputGenCHROMIUM @344
|
|
||||||
|
|
||||||
glFramebufferTextureMultiviewLayeredANGLE @413
|
|
||||||
glFramebufferTextureMultiviewSideBySideANGLE @414
|
|
||||||
glRequestExtensionANGLE @415
|
|
||||||
|
|
||||||
; GLES 3.0 Functions
|
; GLES 3.0 Functions
|
||||||
glReadBuffer @180
|
glReadBuffer@4 @180
|
||||||
glDrawRangeElements @181
|
glDrawRangeElements@24 @181
|
||||||
glTexImage3D @182
|
glTexImage3D@40 @182
|
||||||
glTexSubImage3D @183
|
glTexSubImage3D@44 @183
|
||||||
glCopyTexSubImage3D @184
|
glCopyTexSubImage3D@36 @184
|
||||||
glCompressedTexImage3D @185
|
glCompressedTexImage3D@36 @185
|
||||||
glCompressedTexSubImage3D @186
|
glCompressedTexSubImage3D@44 @186
|
||||||
glGenQueries @187
|
glGenQueries@8 @187
|
||||||
glDeleteQueries @188
|
glDeleteQueries@8 @188
|
||||||
glIsQuery @189
|
glIsQuery@4 @189
|
||||||
glBeginQuery @190
|
glBeginQuery@8 @190
|
||||||
glEndQuery @191
|
glEndQuery@4 @191
|
||||||
glGetQueryiv @192
|
glGetQueryiv@12 @192
|
||||||
glGetQueryObjectuiv @193
|
glGetQueryObjectuiv@12 @193
|
||||||
glUnmapBuffer @194
|
glUnmapBuffer@4 @194
|
||||||
glGetBufferPointerv @195
|
glGetBufferPointerv@12 @195
|
||||||
glDrawBuffers @196
|
glDrawBuffers@8 @196
|
||||||
glUniformMatrix2x3fv @197
|
glUniformMatrix2x3fv@16 @197
|
||||||
glUniformMatrix3x2fv @198
|
glUniformMatrix3x2fv@16 @198
|
||||||
glUniformMatrix2x4fv @199
|
glUniformMatrix2x4fv@16 @199
|
||||||
glUniformMatrix4x2fv @200
|
glUniformMatrix4x2fv@16 @200
|
||||||
glUniformMatrix3x4fv @201
|
glUniformMatrix3x4fv@16 @201
|
||||||
glUniformMatrix4x3fv @202
|
glUniformMatrix4x3fv@16 @202
|
||||||
glBlitFramebuffer @203
|
glBlitFramebuffer@40 @203
|
||||||
glRenderbufferStorageMultisample @204
|
glRenderbufferStorageMultisample@20 @204
|
||||||
glFramebufferTextureLayer @205
|
glFramebufferTextureLayer@20 @205
|
||||||
glMapBufferRange @206
|
glMapBufferRange@16 @206
|
||||||
glFlushMappedBufferRange @207
|
glFlushMappedBufferRange@12 @207
|
||||||
glBindVertexArray @208
|
glBindVertexArray@4 @208
|
||||||
glDeleteVertexArrays @209
|
glDeleteVertexArrays@8 @209
|
||||||
glGenVertexArrays @210
|
glGenVertexArrays@8 @210
|
||||||
glIsVertexArray @211
|
glIsVertexArray@4 @211
|
||||||
glGetIntegeri_v @212
|
glGetIntegeri_v@12 @212
|
||||||
glBeginTransformFeedback @213
|
glBeginTransformFeedback@4 @213
|
||||||
glEndTransformFeedback @214
|
glEndTransformFeedback@0 @214
|
||||||
glBindBufferRange @215
|
glBindBufferRange@20 @215
|
||||||
glBindBufferBase @216
|
glBindBufferBase@12 @216
|
||||||
glTransformFeedbackVaryings @217
|
glTransformFeedbackVaryings@16 @217
|
||||||
glGetTransformFeedbackVarying @218
|
glGetTransformFeedbackVarying@28 @218
|
||||||
glVertexAttribIPointer @219
|
glVertexAttribIPointer@20 @219
|
||||||
glGetVertexAttribIiv @220
|
glGetVertexAttribIiv@12 @220
|
||||||
glGetVertexAttribIuiv @221
|
glGetVertexAttribIuiv@12 @221
|
||||||
glVertexAttribI4i @222
|
glVertexAttribI4i@20 @222
|
||||||
glVertexAttribI4ui @223
|
glVertexAttribI4ui@20 @223
|
||||||
glVertexAttribI4iv @224
|
glVertexAttribI4iv@8 @224
|
||||||
glVertexAttribI4uiv @225
|
glVertexAttribI4uiv@8 @225
|
||||||
glGetUniformuiv @226
|
glGetUniformuiv@12 @226
|
||||||
glGetFragDataLocation @227
|
glGetFragDataLocation@8 @227
|
||||||
glUniform1ui @228
|
glUniform1ui@8 @228
|
||||||
glUniform2ui @229
|
glUniform2ui@12 @229
|
||||||
glUniform3ui @230
|
glUniform3ui@16 @230
|
||||||
glUniform4ui @231
|
glUniform4ui@20 @231
|
||||||
glUniform1uiv @232
|
glUniform1uiv@12 @232
|
||||||
glUniform2uiv @233
|
glUniform2uiv@12 @233
|
||||||
glUniform3uiv @234
|
glUniform3uiv@12 @234
|
||||||
glUniform4uiv @235
|
glUniform4uiv@12 @235
|
||||||
glClearBufferiv @236
|
glClearBufferiv@12 @236
|
||||||
glClearBufferuiv @237
|
glClearBufferuiv@12 @237
|
||||||
glClearBufferfv @238
|
glClearBufferfv@12 @238
|
||||||
glClearBufferfi @239
|
glClearBufferfi@16 @239
|
||||||
glGetStringi @240
|
glGetStringi@8 @240
|
||||||
glCopyBufferSubData @241
|
glCopyBufferSubData@20 @241
|
||||||
glGetUniformIndices @242
|
glGetUniformIndices@16 @242
|
||||||
glGetActiveUniformsiv @243
|
glGetActiveUniformsiv@20 @243
|
||||||
glGetUniformBlockIndex @244
|
glGetUniformBlockIndex@8 @244
|
||||||
glGetActiveUniformBlockiv @245
|
glGetActiveUniformBlockiv@16 @245
|
||||||
glGetActiveUniformBlockName @246
|
glGetActiveUniformBlockName@20 @246
|
||||||
glUniformBlockBinding @247
|
glUniformBlockBinding@12 @247
|
||||||
glDrawArraysInstanced @248
|
glDrawArraysInstanced@16 @248
|
||||||
glDrawElementsInstanced @249
|
glDrawElementsInstanced@20 @249
|
||||||
glFenceSync @250
|
glFenceSync@8 @250
|
||||||
glIsSync @251
|
glIsSync@4 @251
|
||||||
glDeleteSync @252
|
glDeleteSync@4 @252
|
||||||
glClientWaitSync @253
|
glClientWaitSync@16 @253
|
||||||
glWaitSync @254
|
glWaitSync@16 @254
|
||||||
glGetInteger64v @255
|
glGetInteger64v@8 @255
|
||||||
glGetSynciv @256
|
glGetSynciv@20 @256
|
||||||
glGetInteger64i_v @257
|
glGetInteger64i_v@12 @257
|
||||||
glGetBufferParameteri64v @258
|
glGetBufferParameteri64v@12 @258
|
||||||
glGenSamplers @259
|
glGenSamplers@8 @259
|
||||||
glDeleteSamplers @260
|
glDeleteSamplers@8 @260
|
||||||
glIsSampler @261
|
glIsSampler@4 @261
|
||||||
glBindSampler @262
|
glBindSampler@8 @262
|
||||||
glSamplerParameteri @263
|
glSamplerParameteri@12 @263
|
||||||
glSamplerParameteriv @264
|
glSamplerParameteriv@12 @264
|
||||||
glSamplerParameterf @265
|
glSamplerParameterf@12 @265
|
||||||
glSamplerParameterfv @266
|
glSamplerParameterfv@12 @266
|
||||||
glGetSamplerParameteriv @267
|
glGetSamplerParameteriv@12 @267
|
||||||
glGetSamplerParameterfv @268
|
glGetSamplerParameterfv@12 @268
|
||||||
glVertexAttribDivisor @269
|
glVertexAttribDivisor@8 @269
|
||||||
glBindTransformFeedback @270
|
glBindTransformFeedback@8 @270
|
||||||
glDeleteTransformFeedbacks @271
|
glDeleteTransformFeedbacks@8 @271
|
||||||
glGenTransformFeedbacks @272
|
glGenTransformFeedbacks@8 @272
|
||||||
glIsTransformFeedback @273
|
glIsTransformFeedback@4 @273
|
||||||
glPauseTransformFeedback @274
|
glPauseTransformFeedback@0 @274
|
||||||
glResumeTransformFeedback @275
|
glResumeTransformFeedback@0 @275
|
||||||
glGetProgramBinary @276
|
glGetProgramBinary@20 @276
|
||||||
glProgramBinary @277
|
glProgramBinary@16 @277
|
||||||
glProgramParameteri @278
|
glProgramParameteri@12 @278
|
||||||
glInvalidateFramebuffer @279
|
glInvalidateFramebuffer@12 @279
|
||||||
glInvalidateSubFramebuffer @280
|
glInvalidateSubFramebuffer@28 @280
|
||||||
glTexStorage2D @281
|
glTexStorage2D@20 @281
|
||||||
glTexStorage3D @282
|
glTexStorage3D@24 @282
|
||||||
glGetInternalformativ @283
|
glGetInternalformativ@20 @283
|
||||||
|
|
||||||
; GLES 3.1 Functions
|
; GLES 3.1 Functions
|
||||||
glDispatchCompute @345
|
glDispatchCompute@12 @345
|
||||||
glDispatchComputeIndirect @346
|
glDispatchComputeIndirect@4 @346
|
||||||
glDrawArraysIndirect @347
|
glDrawArraysIndirect@8 @347
|
||||||
glDrawElementsIndirect @348
|
glDrawElementsIndirect@12 @348
|
||||||
glFramebufferParameteri @349
|
glFramebufferParameteri@12 @349
|
||||||
glGetFramebufferParameteriv @350
|
glGetFramebufferParameteriv@12 @350
|
||||||
glGetProgramInterfaceiv @351
|
glGetProgramInterfaceiv@16 @351
|
||||||
glGetProgramResourceIndex @352
|
glGetProgramResourceIndex@12 @352
|
||||||
glGetProgramResourceName @353
|
glGetProgramResourceName@24 @353
|
||||||
glGetProgramResourceiv @354
|
glGetProgramResourceiv@32 @354
|
||||||
glGetProgramResourceLocation @355
|
glGetProgramResourceLocation@12 @355
|
||||||
glUseProgramStages @356
|
glUseProgramStages@12 @356
|
||||||
glActiveShaderProgram @357
|
glActiveShaderProgram@8 @357
|
||||||
glCreateShaderProgramv @358
|
glCreateShaderProgramv@12 @358
|
||||||
glBindProgramPipeline @359
|
glBindProgramPipeline@4 @359
|
||||||
glDeleteProgramPipelines @360
|
glDeleteProgramPipelines@8 @360
|
||||||
glGenProgramPipelines @361
|
glGenProgramPipelines@8 @361
|
||||||
glIsProgramPipeline @362
|
glIsProgramPipeline@4 @362
|
||||||
glGetProgramPipelineiv @363
|
glGetProgramPipelineiv@12 @363
|
||||||
glProgramUniform1i @364
|
glProgramUniform1i@12 @364
|
||||||
glProgramUniform2i @365
|
glProgramUniform2i@16 @365
|
||||||
glProgramUniform3i @366
|
glProgramUniform3i@20 @366
|
||||||
glProgramUniform4i @367
|
glProgramUniform4i@24 @367
|
||||||
glProgramUniform1ui @368
|
glProgramUniform1ui@12 @368
|
||||||
glProgramUniform2ui @369
|
glProgramUniform2ui@16 @369
|
||||||
glProgramUniform3ui @370
|
glProgramUniform3ui@20 @370
|
||||||
glProgramUniform4ui @371
|
glProgramUniform4ui@24 @371
|
||||||
glProgramUniform1f @372
|
glProgramUniform1f@12 @372
|
||||||
glProgramUniform2f @373
|
glProgramUniform2f@16 @373
|
||||||
glProgramUniform3f @374
|
glProgramUniform3f@20 @374
|
||||||
glProgramUniform4f @375
|
glProgramUniform4f@24 @375
|
||||||
glProgramUniform1iv @376
|
glProgramUniform1iv@16 @376
|
||||||
glProgramUniform2iv @377
|
glProgramUniform2iv@16 @377
|
||||||
glProgramUniform3iv @378
|
glProgramUniform3iv@16 @378
|
||||||
glProgramUniform4iv @379
|
glProgramUniform4iv@16 @379
|
||||||
glProgramUniform1uiv @380
|
glProgramUniform1uiv@16 @380
|
||||||
glProgramUniform2uiv @381
|
glProgramUniform2uiv@16 @381
|
||||||
glProgramUniform3uiv @382
|
glProgramUniform3uiv@16 @382
|
||||||
glProgramUniform4uiv @383
|
glProgramUniform4uiv@16 @383
|
||||||
glProgramUniform1fv @384
|
glProgramUniform1fv@16 @384
|
||||||
glProgramUniform2fv @385
|
glProgramUniform2fv@16 @385
|
||||||
glProgramUniform3fv @386
|
glProgramUniform3fv@16 @386
|
||||||
glProgramUniform4fv @387
|
glProgramUniform4fv@16 @387
|
||||||
glProgramUniformMatrix2fv @388
|
glProgramUniformMatrix2fv@20 @388
|
||||||
glProgramUniformMatrix3fv @389
|
glProgramUniformMatrix3fv@20 @389
|
||||||
glProgramUniformMatrix4fv @390
|
glProgramUniformMatrix4fv@20 @390
|
||||||
glProgramUniformMatrix2x3fv @391
|
glProgramUniformMatrix2x3fv@20 @391
|
||||||
glProgramUniformMatrix3x2fv @392
|
glProgramUniformMatrix3x2fv@20 @392
|
||||||
glProgramUniformMatrix2x4fv @393
|
glProgramUniformMatrix2x4fv@20 @393
|
||||||
glProgramUniformMatrix4x2fv @394
|
glProgramUniformMatrix4x2fv@20 @394
|
||||||
glProgramUniformMatrix3x4fv @395
|
glProgramUniformMatrix3x4fv@20 @395
|
||||||
glProgramUniformMatrix4x3fv @396
|
glProgramUniformMatrix4x3fv@20 @396
|
||||||
glValidateProgramPipeline @397
|
glValidateProgramPipeline@4 @397
|
||||||
glGetProgramPipelineInfoLog @398
|
glGetProgramPipelineInfoLog@16 @398
|
||||||
glBindImageTexture @399
|
glBindImageTexture@28 @399
|
||||||
glGetBooleani_v @400
|
glGetBooleani_v@12 @400
|
||||||
glMemoryBarrier @401
|
glMemoryBarrier@4 @401
|
||||||
glMemoryBarrierByRegion @402
|
glMemoryBarrierByRegion@4 @402
|
||||||
glTexStorage2DMultisample @403
|
glTexStorage2DMultisample@24 @403
|
||||||
glGetMultisamplefv @404
|
glGetMultisamplefv@12 @404
|
||||||
glSampleMaski @405
|
glSampleMaski@8 @405
|
||||||
glGetTexLevelParameteriv @406
|
glGetTexLevelParameteriv@16 @406
|
||||||
glGetTexLevelParameterfv @407
|
glGetTexLevelParameterfv@16 @407
|
||||||
glBindVertexBuffer @408
|
glBindVertexBuffer@16 @408
|
||||||
glVertexAttribFormat @409
|
glVertexAttribFormat@20 @409
|
||||||
glVertexAttribIFormat @410
|
glVertexAttribIFormat@16 @410
|
||||||
glVertexAttribBinding @411
|
glVertexAttribBinding@8 @411
|
||||||
glVertexBindingDivisor @412
|
glVertexBindingDivisor@8 @412
|
||||||
|
@ -138,10 +138,10 @@
|
|||||||
T is the same type as the return value of \a function. Non-void return
|
T is the same type as the return value of \a function. Non-void return
|
||||||
values can be accessed via the QFuture::result() function.
|
values can be accessed via the QFuture::result() function.
|
||||||
|
|
||||||
Note that the QFuture returned by QtConcurrent::run() does not support
|
\note The QFuture returned can only be used to query for the
|
||||||
canceling, pausing, or progress reporting. The QFuture returned can only
|
running/finished status and the return value of the function. In particular,
|
||||||
be used to query for the running/finished status and the return value of
|
canceling or pausing can be issued only if the computations behind the future
|
||||||
the function.
|
has not been started.
|
||||||
|
|
||||||
\sa {Concurrent Run}
|
\sa {Concurrent Run}
|
||||||
*/
|
*/
|
||||||
@ -157,10 +157,10 @@
|
|||||||
T is the same type as the return value of \a function. Non-void return
|
T is the same type as the return value of \a function. Non-void return
|
||||||
values can be accessed via the QFuture::result() function.
|
values can be accessed via the QFuture::result() function.
|
||||||
|
|
||||||
Note that the QFuture returned by QtConcurrent::run() does not support
|
\note The QFuture returned can only be used to query for the
|
||||||
canceling, pausing, or progress reporting. The QFuture returned can only
|
running/finished status and the return value of the function. In particular,
|
||||||
be used to query for the running/finished status and the return value of
|
canceling or pausing can be issued only if the computations behind the future
|
||||||
the function.
|
has not been started.
|
||||||
|
|
||||||
\sa {Concurrent Run}
|
\sa {Concurrent Run}
|
||||||
*/
|
*/
|
||||||
|
@ -984,7 +984,11 @@ void QCoreApplication::setAttribute(Qt::ApplicationAttribute attribute, bool on)
|
|||||||
QCoreApplicationPrivate::attribs |= 1 << attribute;
|
QCoreApplicationPrivate::attribs |= 1 << attribute;
|
||||||
else
|
else
|
||||||
QCoreApplicationPrivate::attribs &= ~(1 << attribute);
|
QCoreApplicationPrivate::attribs &= ~(1 << attribute);
|
||||||
|
#if defined(QT_NO_QOBJECT)
|
||||||
if (Q_UNLIKELY(qApp)) {
|
if (Q_UNLIKELY(qApp)) {
|
||||||
|
#else
|
||||||
|
if (Q_UNLIKELY(QCoreApplicationPrivate::is_app_running)) {
|
||||||
|
#endif
|
||||||
switch (attribute) {
|
switch (attribute) {
|
||||||
case Qt::AA_EnableHighDpiScaling:
|
case Qt::AA_EnableHighDpiScaling:
|
||||||
case Qt::AA_DisableHighDpiScaling:
|
case Qt::AA_DisableHighDpiScaling:
|
||||||
|
@ -55,8 +55,8 @@
|
|||||||
instance, the computation can be canceled with the cancel() function. To
|
instance, the computation can be canceled with the cancel() function. To
|
||||||
pause the computation, use the setPaused() function or one of the pause(),
|
pause the computation, use the setPaused() function or one of the pause(),
|
||||||
resume(), or togglePaused() convenience functions. Be aware that not all
|
resume(), or togglePaused() convenience functions. Be aware that not all
|
||||||
asynchronous computations can be canceled or paused. For example, the
|
running asynchronous computations can be canceled or paused. For example,
|
||||||
future returned by QtConcurrent::run() cannot be canceled; but the
|
the future returned by QtConcurrent::run() cannot be canceled; but the
|
||||||
future returned by QtConcurrent::mappedReduced() can.
|
future returned by QtConcurrent::mappedReduced() can.
|
||||||
|
|
||||||
Progress information is provided by the progressValue(),
|
Progress information is provided by the progressValue(),
|
||||||
@ -133,8 +133,8 @@
|
|||||||
Any QFutureWatcher object that is watching this future will not deliver
|
Any QFutureWatcher object that is watching this future will not deliver
|
||||||
progress and result ready signals on a canceled future.
|
progress and result ready signals on a canceled future.
|
||||||
|
|
||||||
Be aware that not all asynchronous computations can be canceled. For
|
Be aware that not all running asynchronous computations can be canceled.
|
||||||
example, the future returned by QtConcurrent::run() cannot be canceled;
|
For example, the future returned by QtConcurrent::run() cannot be canceled;
|
||||||
but the future returned by QtConcurrent::mappedReduced() can.
|
but the future returned by QtConcurrent::mappedReduced() can.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
\snippet code/src_corelib_thread_qfuturewatcher.cpp 0
|
\snippet code/src_corelib_thread_qfuturewatcher.cpp 0
|
||||||
|
|
||||||
Be aware that not all asynchronous computations can be canceled or paused.
|
Be aware that not all running asynchronous computations can be canceled or
|
||||||
For example, the future returned by QtConcurrent::run() cannot be
|
paused. For example, the future returned by QtConcurrent::run() cannot be
|
||||||
canceled; but the future returned by QtConcurrent::mappedReduced() can.
|
canceled; but the future returned by QtConcurrent::mappedReduced() can.
|
||||||
|
|
||||||
QFutureWatcher<void> is specialized to not contain any of the result
|
QFutureWatcher<void> is specialized to not contain any of the result
|
||||||
@ -124,9 +124,9 @@ QFutureWatcherBase::QFutureWatcherBase(QObject *parent)
|
|||||||
progressRangeChanged(), progressTextChanged(), resultReadyAt(), and
|
progressRangeChanged(), progressTextChanged(), resultReadyAt(), and
|
||||||
resultsReadyAt() signals.
|
resultsReadyAt() signals.
|
||||||
|
|
||||||
Be aware that not all asynchronous computations can be canceled. For
|
Be aware that not all running asynchronous computations can be canceled.
|
||||||
example, the QFuture returned by QtConcurrent::run() cannot be canceled;
|
For example, the QFuture returned by QtConcurrent::run() cannot be
|
||||||
but the QFuture returned by QtConcurrent::mappedReduced() can.
|
canceled; but the QFuture returned by QtConcurrent::mappedReduced() can.
|
||||||
*/
|
*/
|
||||||
void QFutureWatcherBase::cancel()
|
void QFutureWatcherBase::cancel()
|
||||||
{
|
{
|
||||||
|
@ -725,6 +725,12 @@ void QThread::start(Priority priority)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef Q_OS_INTEGRITY
|
||||||
|
if (Q_LIKELY(objectName().isEmpty()))
|
||||||
|
pthread_attr_setthreadname(&attr, metaObject()->className());
|
||||||
|
else
|
||||||
|
pthread_attr_setthreadname(&attr, objectName().toLocal8Bit());
|
||||||
|
#endif
|
||||||
pthread_t threadId;
|
pthread_t threadId;
|
||||||
int code = pthread_create(&threadId, &attr, QThreadPrivate::start, this);
|
int code = pthread_create(&threadId, &attr, QThreadPrivate::start, this);
|
||||||
if (code == EPERM) {
|
if (code == EPERM) {
|
||||||
|
@ -350,6 +350,7 @@ Q_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core");
|
|||||||
\value MenuItem An item in a menu or menu bar.
|
\value MenuItem An item in a menu or menu bar.
|
||||||
\value NoRole The object has no role. This usually indicates an invalid object.
|
\value NoRole The object has no role. This usually indicates an invalid object.
|
||||||
\value Note A section whose content is parenthetic or ancillary to the main content of the resource.
|
\value Note A section whose content is parenthetic or ancillary to the main content of the resource.
|
||||||
|
\value Notification An object that represents a notification (e.g. in the system tray). This role only has an effect on Linux.
|
||||||
\value PageTab A page tab that the user can select to switch to a different page in a dialog.
|
\value PageTab A page tab that the user can select to switch to a different page in a dialog.
|
||||||
\value PageTabList A list of page tabs.
|
\value PageTabList A list of page tabs.
|
||||||
\value Paragraph A paragraph of text (usually found in documents).
|
\value Paragraph A paragraph of text (usually found in documents).
|
||||||
|
@ -299,6 +299,7 @@ public:
|
|||||||
Paragraph = 0x00000083,
|
Paragraph = 0x00000083,
|
||||||
WebDocument = 0x00000084,
|
WebDocument = 0x00000084,
|
||||||
Section = 0x00000085,
|
Section = 0x00000085,
|
||||||
|
Notification = 0x00000086,
|
||||||
|
|
||||||
// IAccessible2 roles
|
// IAccessible2 roles
|
||||||
// IA2_ROLE_CANVAS = 0x401, ### Qt 6 use this one instead of Canvas above
|
// IA2_ROLE_CANVAS = 0x401, ### Qt 6 use this one instead of Canvas above
|
||||||
|
@ -1319,10 +1319,12 @@ bool QImageReader::read(QImage *image)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// successful read; check for "@2x" file name suffix and set device pixel ratio.
|
// successful read; check for "@Nx" file name suffix and set device pixel ratio.
|
||||||
static bool disable2xImageLoading = !qEnvironmentVariableIsEmpty("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING");
|
static bool disableNxImageLoading = !qEnvironmentVariableIsEmpty("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING");
|
||||||
if (!disable2xImageLoading && QFileInfo(fileName()).baseName().endsWith(QLatin1String("@2x"))) {
|
if (!disableNxImageLoading) {
|
||||||
image->setDevicePixelRatio(2.0);
|
const QByteArray suffix = QFileInfo(fileName()).baseName().right(3).toLatin1();
|
||||||
|
if (suffix.length() == 3 && suffix[0] == '@' && suffix[1] >= '2' && suffix[1] <= '9' && suffix[2] == 'x')
|
||||||
|
image->setDevicePixelRatio(suffix[1] - '0');
|
||||||
}
|
}
|
||||||
if (autoTransform())
|
if (autoTransform())
|
||||||
qt_imageTransform(*image, transformation());
|
qt_imageTransform(*image, transformation());
|
||||||
|
@ -400,7 +400,7 @@ QPoint QHighDpiScaling::mapPositionToGlobal(const QPoint &pos, const QPoint &win
|
|||||||
QPoint QHighDpiScaling::mapPositionFromGlobal(const QPoint &pos, const QPoint &windowGlobalPosition, const QWindow *window)
|
QPoint QHighDpiScaling::mapPositionFromGlobal(const QPoint &pos, const QPoint &windowGlobalPosition, const QWindow *window)
|
||||||
{
|
{
|
||||||
QPoint windowPosCandidate = pos - windowGlobalPosition;
|
QPoint windowPosCandidate = pos - windowGlobalPosition;
|
||||||
if (QGuiApplicationPrivate::screen_list.size() <= 1)
|
if (QGuiApplicationPrivate::screen_list.size() <= 1 || window->handle() == nullptr)
|
||||||
return windowPosCandidate;
|
return windowPosCandidate;
|
||||||
|
|
||||||
// Device independent global (screen) space may discontiguous when high-dpi scaling
|
// Device independent global (screen) space may discontiguous when high-dpi scaling
|
||||||
|
@ -108,208 +108,114 @@ private:
|
|||||||
|
|
||||||
namespace QHighDpi {
|
namespace QHighDpi {
|
||||||
|
|
||||||
inline QPointF fromNative(const QPointF &pos, qreal scaleFactor, const QPointF &origin)
|
template <typename T>
|
||||||
|
inline T scale(const T &value, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return (pos - origin) / scaleFactor + origin;
|
Q_UNUSED(origin)
|
||||||
|
return value * scaleFactor;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QPointF toNative(const QPointF &pos, qreal scaleFactor, const QPointF &origin)
|
inline QPointF scale(const QPointF &pos, qreal scaleFactor, QPointF origin = QPointF(0, 0))
|
||||||
{
|
{
|
||||||
return (pos - origin) * scaleFactor + origin;
|
return (pos - origin) * scaleFactor + origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QPoint fromNative(const QPoint &pos, qreal scaleFactor, const QPoint &origin)
|
inline QPoint scale(const QPoint &pos, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
|
||||||
return (pos - origin) / scaleFactor + origin;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QPoint toNative(const QPoint &pos, qreal scaleFactor, const QPoint &origin)
|
|
||||||
{
|
{
|
||||||
return (pos - origin) * scaleFactor + origin;
|
return (pos - origin) * scaleFactor + origin;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QPoint fromNative(const QPoint &pos, qreal scaleFactor)
|
inline QRect scale(const QRect &rect, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return pos / scaleFactor;
|
return QRect(scale(rect.topLeft(), scaleFactor, origin), scale(rect.size(), scaleFactor));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QPoint toNative(const QPoint &pos, qreal scaleFactor)
|
inline QRectF scale(const QRectF &rect, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return pos * scaleFactor;
|
return QRectF(scale(rect.topLeft(), scaleFactor, origin), scale(rect.size(), scaleFactor));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QSize fromNative(const QSize &size, qreal scaleFactor)
|
inline QMargins scale(const QMargins &margins, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return size / scaleFactor; // TODO: should we round up?
|
Q_UNUSED(origin)
|
||||||
|
return QMargins(qRound(qreal(margins.left()) * scaleFactor), qRound(qreal(margins.top()) * scaleFactor),
|
||||||
|
qRound(qreal(margins.right()) * scaleFactor), qRound(qreal(margins.bottom()) * scaleFactor));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QSize toNative(const QSize &size, qreal scaleFactor)
|
template <typename T>
|
||||||
|
QVector<T> scale(const QVector<T> &vector, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return size * scaleFactor;
|
if (!QHighDpiScaling::isActive())
|
||||||
|
return vector;
|
||||||
|
|
||||||
|
QVector<T> scaled;
|
||||||
|
scaled.reserve(vector.size());
|
||||||
|
for (const T &item : vector)
|
||||||
|
scaled.append(scale(item, scaleFactor, origin));
|
||||||
|
return scaled;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QSizeF fromNative(const QSizeF &size, qreal scaleFactor)
|
inline QRegion scale(const QRegion ®ion, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
{
|
{
|
||||||
return size / scaleFactor;
|
if (!QHighDpiScaling::isActive())
|
||||||
|
return region;
|
||||||
|
|
||||||
|
QRegion scaled;
|
||||||
|
for (const QRect &rect : region)
|
||||||
|
scaled += scale(rect, scaleFactor, origin);
|
||||||
|
return scaled;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QSizeF toNative(const QSizeF &size, qreal scaleFactor)
|
template <typename T, typename C>
|
||||||
|
T fromNativePixels(const T &value, const C *context)
|
||||||
{
|
{
|
||||||
return size * scaleFactor;
|
return scale(value, qreal(1) / QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QRect fromNative(const QRect &rect, qreal scaleFactor, const QPoint &origin)
|
template <typename T, typename C>
|
||||||
|
T toNativePixels(const T &value, const C *context)
|
||||||
{
|
{
|
||||||
return QRect(fromNative(rect.topLeft(), scaleFactor, origin), fromNative(rect.size(), scaleFactor));
|
return scale(value, QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QRect toNative(const QRect &rect, qreal scaleFactor, const QPoint &origin)
|
template <typename T, typename C>
|
||||||
|
T fromNativeLocalPosition(const T &value, const C *context)
|
||||||
{
|
{
|
||||||
return QRect(toNative(rect.topLeft(), scaleFactor, origin), toNative(rect.size(), scaleFactor));
|
return scale(value, qreal(1) / QHighDpiScaling::factor(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, typename C>
|
||||||
|
T toNativeLocalPosition(const T &value, const C *context)
|
||||||
|
{
|
||||||
|
return scale(value, QHighDpiScaling::factor(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T fromNative(const T &value, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
|
{
|
||||||
|
return scale(value, qreal(1) / scaleFactor, origin);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline T toNative(const T &value, qreal scaleFactor, QPoint origin = QPoint(0, 0))
|
||||||
|
{
|
||||||
|
return scale(value, scaleFactor, origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QRect fromNative(const QRect &rect, const QScreen *screen, const QPoint &screenOrigin)
|
inline QRect fromNative(const QRect &rect, const QScreen *screen, const QPoint &screenOrigin)
|
||||||
{
|
{
|
||||||
return fromNative(rect, QHighDpiScaling::factor(screen), screenOrigin);
|
return scale(rect, qreal(1) / QHighDpiScaling::factor(screen), screenOrigin);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QRect fromNativeScreenGeometry(const QRect &nativeScreenGeometry, const QScreen *screen)
|
inline QRect fromNativeScreenGeometry(const QRect &nativeScreenGeometry, const QScreen *screen)
|
||||||
{
|
{
|
||||||
return QRect(nativeScreenGeometry.topLeft(),
|
return QRect(nativeScreenGeometry.topLeft(),
|
||||||
fromNative(nativeScreenGeometry.size(), QHighDpiScaling::factor(screen)));
|
scale(nativeScreenGeometry.size(), qreal(1) / QHighDpiScaling::factor(screen)));
|
||||||
}
|
|
||||||
|
|
||||||
inline QPoint fromNativeLocalPosition(const QPoint &pos, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return pos / scaleFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QPoint toNativeLocalPosition(const QPoint &pos, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return pos * scaleFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QPointF fromNativeLocalPosition(const QPointF &pos, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return pos / scaleFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QPointF toNativeLocalPosition(const QPointF &pos, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return pos * scaleFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QRect fromNativePixels(const QRect &pixelRect, const C *context)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(context);
|
|
||||||
const QPoint origin = QHighDpiScaling::origin(context);
|
|
||||||
return QRect(fromNative(pixelRect.topLeft(), scaleFactor, origin),
|
|
||||||
fromNative(pixelRect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QRect toNativePixels(const QRect &pointRect, const C *context)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(context);
|
|
||||||
const QPoint origin = QHighDpiScaling::origin(context);
|
|
||||||
return QRect(toNative(pointRect.topLeft(), scaleFactor, origin),
|
|
||||||
toNative(pointRect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QRectF toNativePixels(const QRectF &pointRect, const C *context)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(context);
|
|
||||||
const QPoint origin = QHighDpiScaling::origin(context);
|
|
||||||
return QRectF(toNative(pointRect.topLeft(), scaleFactor, origin),
|
|
||||||
toNative(pointRect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QRectF fromNativePixels(const QRectF &pixelRect, const C *context)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(context);
|
|
||||||
const QPoint origin = QHighDpiScaling::origin(context);
|
|
||||||
return QRectF(fromNative(pixelRect.topLeft(), scaleFactor, origin),
|
|
||||||
fromNative(pixelRect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QSize fromNativePixels(const QSize &pixelSize, const QWindow *window)
|
|
||||||
{
|
|
||||||
return pixelSize / QHighDpiScaling::factor(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QSize toNativePixels(const QSize &pointSize, const QWindow *window)
|
|
||||||
{
|
|
||||||
return pointSize * QHighDpiScaling::factor(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QSizeF fromNativePixels(const QSizeF &pixelSize, const QWindow *window)
|
|
||||||
{
|
|
||||||
return pixelSize / QHighDpiScaling::factor(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QSizeF toNativePixels(const QSizeF &pointSize, const QWindow *window)
|
|
||||||
{
|
|
||||||
return pointSize * QHighDpiScaling::factor(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QPoint fromNativePixels(const QPoint &pixelPoint, const C *context)
|
|
||||||
{
|
|
||||||
return fromNative(pixelPoint, QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QPoint toNativePixels(const QPoint &pointPoint, const C *context)
|
|
||||||
{
|
|
||||||
return toNative(pointPoint, QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QPointF fromNativePixels(const QPointF &pixelPoint, const C *context)
|
|
||||||
{
|
|
||||||
return fromNative(pixelPoint, QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename C>
|
|
||||||
inline QPointF toNativePixels(const QPointF &pointPoint, const C *context)
|
|
||||||
{
|
|
||||||
return toNative(pointPoint, QHighDpiScaling::factor(context), QHighDpiScaling::origin(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QMargins fromNativePixels(const QMargins &pixelMargins, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return QMargins(pixelMargins.left() / scaleFactor, pixelMargins.top() / scaleFactor,
|
|
||||||
pixelMargins.right() / scaleFactor, pixelMargins.bottom() / scaleFactor);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline QMargins toNativePixels(const QMargins &pointMargins, const QWindow *window)
|
|
||||||
{
|
|
||||||
const qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
return QMargins(pointMargins.left() * scaleFactor, pointMargins.top() * scaleFactor,
|
|
||||||
pointMargins.right() * scaleFactor, pointMargins.bottom() * scaleFactor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QRegion fromNativeLocalRegion(const QRegion &pixelRegion, const QWindow *window)
|
inline QRegion fromNativeLocalRegion(const QRegion &pixelRegion, const QWindow *window)
|
||||||
{
|
{
|
||||||
if (!QHighDpiScaling::isActive())
|
return scale(pixelRegion, qreal(1) / QHighDpiScaling::factor(window));
|
||||||
return pixelRegion;
|
|
||||||
|
|
||||||
qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
QRegion pointRegion;
|
|
||||||
for (const QRect &rect : pixelRegion) {
|
|
||||||
pointRegion += QRect(fromNative(rect.topLeft(), scaleFactor),
|
|
||||||
fromNative(rect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
return pointRegion;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// When mapping expose events to Qt rects: round top/left towards the origin and
|
// When mapping expose events to Qt rects: round top/left towards the origin and
|
||||||
@ -333,67 +239,7 @@ inline QRegion fromNativeLocalExposedRegion(const QRegion &pixelRegion, const QW
|
|||||||
|
|
||||||
inline QRegion toNativeLocalRegion(const QRegion &pointRegion, const QWindow *window)
|
inline QRegion toNativeLocalRegion(const QRegion &pointRegion, const QWindow *window)
|
||||||
{
|
{
|
||||||
if (!QHighDpiScaling::isActive())
|
return scale(pointRegion, QHighDpiScaling::factor(window));
|
||||||
return pointRegion;
|
|
||||||
|
|
||||||
qreal scaleFactor = QHighDpiScaling::factor(window);
|
|
||||||
QRegion pixelRegon;
|
|
||||||
for (const QRect &rect : pointRegion) {
|
|
||||||
pixelRegon += QRect(toNative(rect.topLeft(), scaleFactor),
|
|
||||||
toNative(rect.size(), scaleFactor));
|
|
||||||
}
|
|
||||||
return pixelRegon;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Any T that has operator/()
|
|
||||||
template <typename T, typename C>
|
|
||||||
T fromNativePixels(const T &pixelValue, const C *context)
|
|
||||||
{
|
|
||||||
if (!QHighDpiScaling::isActive())
|
|
||||||
return pixelValue;
|
|
||||||
|
|
||||||
return pixelValue / QHighDpiScaling::factor(context);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Any T that has operator*()
|
|
||||||
template <typename T, typename C>
|
|
||||||
T toNativePixels(const T &pointValue, const C *context)
|
|
||||||
{
|
|
||||||
if (!QHighDpiScaling::isActive())
|
|
||||||
return pointValue;
|
|
||||||
|
|
||||||
return pointValue * QHighDpiScaling::factor(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Any QVector<T> where T has operator/()
|
|
||||||
template <typename T>
|
|
||||||
QVector<T> fromNativePixels(const QVector<T> &pixelValues, const QWindow *window)
|
|
||||||
{
|
|
||||||
if (!QHighDpiScaling::isActive())
|
|
||||||
return pixelValues;
|
|
||||||
|
|
||||||
QVector<T> pointValues;
|
|
||||||
pointValues.reserve(pixelValues.size());
|
|
||||||
const auto factor = QHighDpiScaling::factor(window);
|
|
||||||
for (const T &pixelValue : pixelValues)
|
|
||||||
pointValues.append(pixelValue / factor);
|
|
||||||
return pointValues;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Any QVector<T> where T has operator*()
|
|
||||||
template <typename T>
|
|
||||||
QVector<T> toNativePixels(const QVector<T> &pointValues, const QWindow *window)
|
|
||||||
{
|
|
||||||
if (!QHighDpiScaling::isActive())
|
|
||||||
return pointValues;
|
|
||||||
|
|
||||||
QVector<T> pixelValues;
|
|
||||||
pixelValues.reserve(pointValues.size());
|
|
||||||
const auto factor = QHighDpiScaling::factor(window);
|
|
||||||
for (const T &pointValue : pointValues)
|
|
||||||
pixelValues.append(pointValue * factor);
|
|
||||||
return pixelValues;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace QHighDpi
|
} // namespace QHighDpi
|
||||||
|
@ -514,7 +514,7 @@ float QVector3D::distanceToPlane
|
|||||||
/*!
|
/*!
|
||||||
\overload
|
\overload
|
||||||
|
|
||||||
Returns the distance from this vertex a plane defined by
|
Returns the distance from this vertex to a plane defined by
|
||||||
the vertices \a plane1, \a plane2 and \a plane3.
|
the vertices \a plane1, \a plane2 and \a plane3.
|
||||||
|
|
||||||
The return value will be negative if the vertex is below the plane,
|
The return value will be negative if the vertex is below the plane,
|
||||||
|
@ -4510,7 +4510,9 @@ static void blend_color_rgb16(int count, const QSpan *spans, void *userData)
|
|||||||
if (mode == QPainter::CompositionMode_Source) {
|
if (mode == QPainter::CompositionMode_Source) {
|
||||||
// inline for performance
|
// inline for performance
|
||||||
ushort c = data->solidColor.toRgb16();
|
ushort c = data->solidColor.toRgb16();
|
||||||
while (count--) {
|
for (; count--; spans++) {
|
||||||
|
if (!spans->len)
|
||||||
|
continue;
|
||||||
ushort *target = ((ushort *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
|
ushort *target = ((ushort *)data->rasterBuffer->scanLine(spans->y)) + spans->x;
|
||||||
if (spans->coverage == 255) {
|
if (spans->coverage == 255) {
|
||||||
qt_memfill(target, c, spans->len);
|
qt_memfill(target, c, spans->len);
|
||||||
@ -4523,13 +4525,14 @@ static void blend_color_rgb16(int count, const QSpan *spans, void *userData)
|
|||||||
++target;
|
++target;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++spans;
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode == QPainter::CompositionMode_SourceOver) {
|
if (mode == QPainter::CompositionMode_SourceOver) {
|
||||||
while (count--) {
|
for (; count--; spans++) {
|
||||||
|
if (!spans->len)
|
||||||
|
continue;
|
||||||
uint color = BYTE_MUL(data->solidColor.toArgb32(), spans->coverage);
|
uint color = BYTE_MUL(data->solidColor.toArgb32(), spans->coverage);
|
||||||
int ialpha = qAlpha(~color);
|
int ialpha = qAlpha(~color);
|
||||||
ushort c = qConvertRgb32To16(color);
|
ushort c = qConvertRgb32To16(color);
|
||||||
@ -4561,7 +4564,6 @@ static void blend_color_rgb16(int count, const QSpan *spans, void *userData)
|
|||||||
// one last pixel beyond a full word
|
// one last pixel beyond a full word
|
||||||
*target = c + BYTE_MUL_RGB16(*target, ialpha);
|
*target = c + BYTE_MUL_RGB16(*target, ialpha);
|
||||||
}
|
}
|
||||||
++spans;
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -4578,6 +4580,11 @@ void handleSpans(int count, const QSpan *spans, const QSpanData *data, T &handle
|
|||||||
|
|
||||||
int coverage = 0;
|
int coverage = 0;
|
||||||
while (count) {
|
while (count) {
|
||||||
|
if (!spans->len) {
|
||||||
|
++spans;
|
||||||
|
--count;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int x = spans->x;
|
int x = spans->x;
|
||||||
const int y = spans->y;
|
const int y = spans->y;
|
||||||
int right = x + spans->len;
|
int right = x + spans->len;
|
||||||
@ -4730,7 +4737,9 @@ static void blend_untransformed_generic(int count, const QSpan *spans, void *use
|
|||||||
int xoff = -qRound(-data->dx);
|
int xoff = -qRound(-data->dx);
|
||||||
int yoff = -qRound(-data->dy);
|
int yoff = -qRound(-data->dy);
|
||||||
|
|
||||||
while (count--) {
|
for (; count--; spans++) {
|
||||||
|
if (!spans->len)
|
||||||
|
continue;
|
||||||
int x = spans->x;
|
int x = spans->x;
|
||||||
int length = spans->len;
|
int length = spans->len;
|
||||||
int sx = xoff + x;
|
int sx = xoff + x;
|
||||||
@ -4758,7 +4767,6 @@ static void blend_untransformed_generic(int count, const QSpan *spans, void *use
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++spans;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4779,7 +4787,9 @@ static void blend_untransformed_generic_rgb64(int count, const QSpan *spans, voi
|
|||||||
int xoff = -qRound(-data->dx);
|
int xoff = -qRound(-data->dx);
|
||||||
int yoff = -qRound(-data->dy);
|
int yoff = -qRound(-data->dy);
|
||||||
|
|
||||||
while (count--) {
|
for (; count--; spans++) {
|
||||||
|
if (!spans->len)
|
||||||
|
continue;
|
||||||
int x = spans->x;
|
int x = spans->x;
|
||||||
int length = spans->len;
|
int length = spans->len;
|
||||||
int sx = xoff + x;
|
int sx = xoff + x;
|
||||||
@ -4807,7 +4817,6 @@ static void blend_untransformed_generic_rgb64(int count, const QSpan *spans, voi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++spans;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4827,7 +4836,9 @@ static void blend_untransformed_argb(int count, const QSpan *spans, void *userDa
|
|||||||
int xoff = -qRound(-data->dx);
|
int xoff = -qRound(-data->dx);
|
||||||
int yoff = -qRound(-data->dy);
|
int yoff = -qRound(-data->dy);
|
||||||
|
|
||||||
while (count--) {
|
for (; count--; spans++) {
|
||||||
|
if (!spans->len)
|
||||||
|
continue;
|
||||||
int x = spans->x;
|
int x = spans->x;
|
||||||
int length = spans->len;
|
int length = spans->len;
|
||||||
int sx = xoff + x;
|
int sx = xoff + x;
|
||||||
@ -4847,7 +4858,6 @@ static void blend_untransformed_argb(int count, const QSpan *spans, void *userDa
|
|||||||
op.func(dest, src, length, coverage);
|
op.func(dest, src, length, coverage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++spans;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4920,7 +4930,12 @@ static void blend_untransformed_rgb565(int count, const QSpan *spans, void *user
|
|||||||
int xoff = -qRound(-data->dx);
|
int xoff = -qRound(-data->dx);
|
||||||
int yoff = -qRound(-data->dy);
|
int yoff = -qRound(-data->dy);
|
||||||
|
|
||||||
while (count--) {
|
const QSpan *end = spans + count;
|
||||||
|
while (spans < end) {
|
||||||
|
if (!spans->len) {
|
||||||
|
++spans;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
const quint8 coverage = (data->texture.const_alpha * spans->coverage) >> 8;
|
const quint8 coverage = (data->texture.const_alpha * spans->coverage) >> 8;
|
||||||
if (coverage == 0) {
|
if (coverage == 0) {
|
||||||
++spans;
|
++spans;
|
||||||
|
@ -4183,7 +4183,7 @@ static void qt_span_fill_clipped(int spanCount, const QSpan *spans, void *userDa
|
|||||||
Clip spans to \a{clip}-rectangle.
|
Clip spans to \a{clip}-rectangle.
|
||||||
Returns number of unclipped spans
|
Returns number of unclipped spans
|
||||||
*/
|
*/
|
||||||
static int qt_intersect_spans(QT_FT_Span *spans, int numSpans,
|
static int qt_intersect_spans(QT_FT_Span *&spans, int numSpans,
|
||||||
const QRect &clip)
|
const QRect &clip)
|
||||||
{
|
{
|
||||||
const short minx = clip.left();
|
const short minx = clip.left();
|
||||||
@ -4191,29 +4191,32 @@ static int qt_intersect_spans(QT_FT_Span *spans, int numSpans,
|
|||||||
const short maxx = clip.right();
|
const short maxx = clip.right();
|
||||||
const short maxy = clip.bottom();
|
const short maxy = clip.bottom();
|
||||||
|
|
||||||
int n = 0;
|
QT_FT_Span *end = spans + numSpans;
|
||||||
for (int i = 0; i < numSpans; ++i) {
|
while (spans < end) {
|
||||||
if (spans[i].y > maxy)
|
if (spans->y >= miny)
|
||||||
break;
|
break;
|
||||||
if (spans[i].y < miny
|
++spans;
|
||||||
|| spans[i].x > maxx
|
}
|
||||||
|| spans[i].x + spans[i].len <= minx) {
|
|
||||||
|
QT_FT_Span *s = spans;
|
||||||
|
while (s < end) {
|
||||||
|
if (s->y > maxy)
|
||||||
|
break;
|
||||||
|
if (s->x > maxx || s->x + s->len <= minx) {
|
||||||
|
s->len = 0;
|
||||||
|
++s;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (spans[i].x < minx) {
|
if (s->x < minx) {
|
||||||
spans[n].len = qMin(spans[i].len - (minx - spans[i].x), maxx - minx + 1);
|
s->len = qMin(s->len - (minx - s->x), maxx - minx + 1);
|
||||||
spans[n].x = minx;
|
s->x = minx;
|
||||||
} else {
|
} else {
|
||||||
spans[n].x = spans[i].x;
|
s->len = qMin(s->len, ushort(maxx - s->x + 1));
|
||||||
spans[n].len = qMin(spans[i].len, ushort(maxx - spans[n].x + 1));
|
|
||||||
}
|
}
|
||||||
if (spans[n].len == 0)
|
++s;
|
||||||
continue;
|
|
||||||
spans[n].y = spans[i].y;
|
|
||||||
spans[n].coverage = spans[i].coverage;
|
|
||||||
++n;
|
|
||||||
}
|
}
|
||||||
return n;
|
|
||||||
|
return s - spans;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4226,11 +4229,12 @@ static void qt_span_fill_clipRect(int count, const QSpan *spans,
|
|||||||
Q_ASSERT(fillData->clip);
|
Q_ASSERT(fillData->clip);
|
||||||
Q_ASSERT(!fillData->clip->clipRect.isEmpty());
|
Q_ASSERT(!fillData->clip->clipRect.isEmpty());
|
||||||
|
|
||||||
|
QSpan *s = const_cast<QSpan *>(spans);
|
||||||
// hw: check if this const_cast<> is safe!!!
|
// hw: check if this const_cast<> is safe!!!
|
||||||
count = qt_intersect_spans(const_cast<QSpan*>(spans), count,
|
count = qt_intersect_spans(s, count,
|
||||||
fillData->clip->clipRect);
|
fillData->clip->clipRect);
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
fillData->unclipped_blend(count, spans, fillData);
|
fillData->unclipped_blend(count, s, fillData);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qt_span_clip(int count, const QSpan *spans, void *userData)
|
static void qt_span_clip(int count, const QSpan *spans, void *userData)
|
||||||
@ -4843,7 +4847,8 @@ static inline void drawEllipsePoints(int x, int y, int length,
|
|||||||
if (length == 0)
|
if (length == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QT_FT_Span outline[4];
|
QT_FT_Span _outline[4];
|
||||||
|
QT_FT_Span *outline = _outline;
|
||||||
const int midx = rect.x() + (rect.width() + 1) / 2;
|
const int midx = rect.x() + (rect.width() + 1) / 2;
|
||||||
const int midy = rect.y() + (rect.height() + 1) / 2;
|
const int midy = rect.y() + (rect.height() + 1) / 2;
|
||||||
|
|
||||||
@ -4875,7 +4880,8 @@ static inline void drawEllipsePoints(int x, int y, int length,
|
|||||||
outline[3].coverage = 255;
|
outline[3].coverage = 255;
|
||||||
|
|
||||||
if (brush_func && outline[0].x + outline[0].len < outline[1].x) {
|
if (brush_func && outline[0].x + outline[0].len < outline[1].x) {
|
||||||
QT_FT_Span fill[2];
|
QT_FT_Span _fill[2];
|
||||||
|
QT_FT_Span *fill = _fill;
|
||||||
|
|
||||||
// top fill
|
// top fill
|
||||||
fill[0].x = outline[0].x + outline[0].len - 1;
|
fill[0].x = outline[0].x + outline[0].len - 1;
|
||||||
|
@ -525,7 +525,7 @@ void QStroker::joinPoints(qfixed focal_x, qfixed focal_y, const QLineF &nextLine
|
|||||||
|
|
||||||
QLineF shortCut(prevLine.p2(), nextLine.p1());
|
QLineF shortCut(prevLine.p2(), nextLine.p1());
|
||||||
qreal angle = shortCut.angleTo(prevLine);
|
qreal angle = shortCut.angleTo(prevLine);
|
||||||
if (type == QLineF::BoundedIntersection || (angle > 90 && !qFuzzyCompare(angle, (qreal)90))) {
|
if ((type == QLineF::BoundedIntersection || (angle > qreal(90.01))) && nextLine.length() > offset) {
|
||||||
emitLineTo(focal_x, focal_y);
|
emitLineTo(focal_x, focal_y);
|
||||||
emitLineTo(qt_real_to_fixed(nextLine.x1()), qt_real_to_fixed(nextLine.y1()));
|
emitLineTo(qt_real_to_fixed(nextLine.x1()), qt_real_to_fixed(nextLine.y1()));
|
||||||
return;
|
return;
|
||||||
|
@ -233,7 +233,7 @@ QNetworkConfigurationManager::QNetworkConfigurationManager(QObject *parent)
|
|||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
{
|
{
|
||||||
QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
|
QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
|
||||||
|
if (priv) {
|
||||||
connect(priv, SIGNAL(configurationAdded(QNetworkConfiguration)),
|
connect(priv, SIGNAL(configurationAdded(QNetworkConfiguration)),
|
||||||
this, SIGNAL(configurationAdded(QNetworkConfiguration)));
|
this, SIGNAL(configurationAdded(QNetworkConfiguration)));
|
||||||
connect(priv, SIGNAL(configurationRemoved(QNetworkConfiguration)),
|
connect(priv, SIGNAL(configurationRemoved(QNetworkConfiguration)),
|
||||||
@ -246,6 +246,7 @@ QNetworkConfigurationManager::QNetworkConfigurationManager(QObject *parent)
|
|||||||
this, SIGNAL(updateCompleted()));
|
this, SIGNAL(updateCompleted()));
|
||||||
|
|
||||||
priv->enablePolling();
|
priv->enablePolling();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -258,7 +258,8 @@ QNetworkSession::QNetworkSession(const QNetworkConfiguration &connectionConfig,
|
|||||||
|
|
||||||
// invalid configuration
|
// invalid configuration
|
||||||
if (!connectionConfig.identifier().isEmpty()) {
|
if (!connectionConfig.identifier().isEmpty()) {
|
||||||
const auto engines = qNetworkConfigurationManagerPrivate()->engines();
|
auto priv = qNetworkConfigurationManagerPrivate();
|
||||||
|
const auto engines = priv ? priv->engines() : QList<QBearerEngine *>();
|
||||||
for (QBearerEngine *engine : engines) {
|
for (QBearerEngine *engine : engines) {
|
||||||
if (engine->hasIdentifier(connectionConfig.identifier())) {
|
if (engine->hasIdentifier(connectionConfig.identifier())) {
|
||||||
d = engine->createSessionBackend();
|
d = engine->createSessionBackend();
|
||||||
|
@ -265,6 +265,8 @@ static RoleMapping map[] = {
|
|||||||
//: Role of an accessible object
|
//: Role of an accessible object
|
||||||
{ QAccessible::Desktop, ATSPI_ROLE_DESKTOP_FRAME, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "desktop") },
|
{ QAccessible::Desktop, ATSPI_ROLE_DESKTOP_FRAME, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "desktop") },
|
||||||
//: Role of an accessible object
|
//: Role of an accessible object
|
||||||
|
{ QAccessible::Notification, ATSPI_ROLE_NOTIFICATION, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "notification") },
|
||||||
|
//: Role of an accessible object
|
||||||
{ QAccessible::UserRole, ATSPI_ROLE_UNKNOWN, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "unknown") }
|
{ QAccessible::UserRole, ATSPI_ROLE_UNKNOWN, QT_TRANSLATE_NOOP("QSpiAccessibleBridge", "unknown") }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,13 +56,14 @@ QT_BEGIN_NAMESPACE
|
|||||||
static QBearerEngineImpl *getEngineFromId(const QString &id)
|
static QBearerEngineImpl *getEngineFromId(const QString &id)
|
||||||
{
|
{
|
||||||
QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
|
QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
|
||||||
|
if (priv) {
|
||||||
const auto engines = priv->engines();
|
const auto engines = priv->engines();
|
||||||
for (QBearerEngine *engine : engines) {
|
for (QBearerEngine *engine : engines) {
|
||||||
QBearerEngineImpl *engineImpl = qobject_cast<QBearerEngineImpl *>(engine);
|
QBearerEngineImpl *engineImpl = qobject_cast<QBearerEngineImpl *>(engine);
|
||||||
if (engineImpl && engineImpl->hasIdentifier(id))
|
if (engineImpl && engineImpl->hasIdentifier(id))
|
||||||
return engineImpl;
|
return engineImpl;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -151,6 +151,9 @@ private slots:
|
|||||||
private:
|
private:
|
||||||
void sendInputMethodEvent(QInputMethodEvent *event);
|
void sendInputMethodEvent(QInputMethodEvent *event);
|
||||||
QSharedPointer<QInputMethodQueryEvent> focusObjectInputMethodQuery(Qt::InputMethodQueries queries = Qt::ImQueryAll);
|
QSharedPointer<QInputMethodQueryEvent> focusObjectInputMethodQuery(Qt::InputMethodQueries queries = Qt::ImQueryAll);
|
||||||
|
bool focusObjectIsComposing() const;
|
||||||
|
void focusObjectStartComposing();
|
||||||
|
bool focusObjectStopComposing();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ExtractedText m_extractedText;
|
ExtractedText m_extractedText;
|
||||||
@ -158,9 +161,8 @@ private:
|
|||||||
int m_composingTextStart;
|
int m_composingTextStart;
|
||||||
int m_composingCursor;
|
int m_composingCursor;
|
||||||
QMetaObject::Connection m_updateCursorPosConnection;
|
QMetaObject::Connection m_updateCursorPosConnection;
|
||||||
bool m_blockUpdateSelection;
|
|
||||||
HandleModes m_handleMode;
|
HandleModes m_handleMode;
|
||||||
QAtomicInt m_batchEditNestingLevel;
|
int m_batchEditNestingLevel;
|
||||||
QObject *m_focusObject;
|
QObject *m_focusObject;
|
||||||
QTimer m_hideCursorHandleTimer;
|
QTimer m_hideCursorHandleTimer;
|
||||||
};
|
};
|
||||||
|
@ -55,6 +55,7 @@ public:
|
|||||||
QNSWindowBackingStore(QWindow *window);
|
QNSWindowBackingStore(QWindow *window);
|
||||||
~QNSWindowBackingStore();
|
~QNSWindowBackingStore();
|
||||||
|
|
||||||
|
void resize(const QSize &size, const QRegion &staticContents) override;
|
||||||
void flush(QWindow *, const QRegion &, const QPoint &) override;
|
void flush(QWindow *, const QRegion &, const QPoint &) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -71,6 +71,24 @@ QImage::Format QNSWindowBackingStore::format() const
|
|||||||
return QRasterBackingStore::format();
|
return QRasterBackingStore::format();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QNSWindowBackingStore::resize(const QSize &size, const QRegion &staticContents)
|
||||||
|
{
|
||||||
|
qCDebug(lcQpaBackingStore) << "Resize requested to" << size;
|
||||||
|
QRasterBackingStore::resize(size, staticContents);
|
||||||
|
|
||||||
|
// The window shadow rendered by AppKit is based on the shape/content of the
|
||||||
|
// NSWindow surface. Technically any flush of the backingstore can result in
|
||||||
|
// a potentially new shape of the window, and would need a shadow invalidation,
|
||||||
|
// but this is likely too expensive to do at every flush for the few cases where
|
||||||
|
// clients change the shape dynamically. One case where we do know that the shadow
|
||||||
|
// likely needs invalidation, if the window has partially transparent content,
|
||||||
|
// is after a resize, where AppKit's default shadow may be based on the previous
|
||||||
|
// window content.
|
||||||
|
QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window()->handle());
|
||||||
|
if (cocoaWindow->isContentView() && !cocoaWindow->isOpaque())
|
||||||
|
cocoaWindow->m_needsInvalidateShadow = true;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Flushes the given \a region from the specified \a window onto the
|
Flushes the given \a region from the specified \a window onto the
|
||||||
screen.
|
screen.
|
||||||
@ -217,6 +235,7 @@ void QNSWindowBackingStore::flush(QWindow *window, const QRegion ®ion, const
|
|||||||
|
|
||||||
QCocoaWindow *topLevelCocoaWindow = static_cast<QCocoaWindow *>(topLevelWindow->handle());
|
QCocoaWindow *topLevelCocoaWindow = static_cast<QCocoaWindow *>(topLevelWindow->handle());
|
||||||
if (Q_UNLIKELY(topLevelCocoaWindow->m_needsInvalidateShadow)) {
|
if (Q_UNLIKELY(topLevelCocoaWindow->m_needsInvalidateShadow)) {
|
||||||
|
qCDebug(lcQpaBackingStore) << "Invalidating window shadow for" << topLevelCocoaWindow;
|
||||||
[topLevelView.window invalidateShadow];
|
[topLevelView.window invalidateShadow];
|
||||||
topLevelCocoaWindow->m_needsInvalidateShadow = false;
|
topLevelCocoaWindow->m_needsInvalidateShadow = false;
|
||||||
}
|
}
|
||||||
@ -382,10 +401,11 @@ void QCALayerBackingStore::ensureBackBuffer()
|
|||||||
|
|
||||||
bool QCALayerBackingStore::recreateBackBufferIfNeeded()
|
bool QCALayerBackingStore::recreateBackBufferIfNeeded()
|
||||||
{
|
{
|
||||||
const qreal devicePixelRatio = window()->devicePixelRatio();
|
const QCocoaWindow *platformWindow = static_cast<QCocoaWindow *>(window()->handle());
|
||||||
|
const qreal devicePixelRatio = platformWindow->devicePixelRatio();
|
||||||
QSize requestedBufferSize = m_requestedSize * devicePixelRatio;
|
QSize requestedBufferSize = m_requestedSize * devicePixelRatio;
|
||||||
|
|
||||||
const NSView *backingStoreView = static_cast<QCocoaWindow *>(window()->handle())->view();
|
const NSView *backingStoreView = platformWindow->view();
|
||||||
Q_UNUSED(backingStoreView);
|
Q_UNUSED(backingStoreView);
|
||||||
|
|
||||||
auto bufferSizeMismatch = [&](const QSize requested, const QSize actual) {
|
auto bufferSizeMismatch = [&](const QSize requested, const QSize actual) {
|
||||||
|
@ -191,6 +191,7 @@ public:
|
|||||||
static void waitingObserverCallback(CFRunLoopObserverRef observer,
|
static void waitingObserverCallback(CFRunLoopObserverRef observer,
|
||||||
CFRunLoopActivity activity, void *info);
|
CFRunLoopActivity activity, void *info);
|
||||||
static void firstLoopEntry(CFRunLoopObserverRef ref, CFRunLoopActivity activity, void *info);
|
static void firstLoopEntry(CFRunLoopObserverRef ref, CFRunLoopActivity activity, void *info);
|
||||||
|
bool sendQueuedUserInputEvents();
|
||||||
void processPostedEvents();
|
void processPostedEvents();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -377,16 +377,9 @@ bool QCocoaEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags)
|
|||||||
NSEvent* event = nil;
|
NSEvent* event = nil;
|
||||||
|
|
||||||
// First, send all previously excluded input events, if any:
|
// First, send all previously excluded input events, if any:
|
||||||
if (!excludeUserEvents) {
|
if (d->sendQueuedUserInputEvents())
|
||||||
while (!d->queuedUserInputEvents.isEmpty()) {
|
|
||||||
event = static_cast<NSEvent *>(d->queuedUserInputEvents.takeFirst());
|
|
||||||
if (!filterNativeEvent("NSEvent", event, nullptr)) {
|
|
||||||
[NSApp sendEvent:event];
|
|
||||||
retVal = true;
|
retVal = true;
|
||||||
}
|
|
||||||
[event release];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If Qt is used as a plugin, or as an extension in a native cocoa
|
// If Qt is used as a plugin, or as an extension in a native cocoa
|
||||||
// application, we should not run or stop NSApplication; This will be
|
// application, we should not run or stop NSApplication; This will be
|
||||||
@ -843,6 +836,23 @@ void QCocoaEventDispatcherPrivate::waitingObserverCallback(CFRunLoopObserverRef,
|
|||||||
emit static_cast<QCocoaEventDispatcher*>(info)->awake();
|
emit static_cast<QCocoaEventDispatcher*>(info)->awake();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QCocoaEventDispatcherPrivate::sendQueuedUserInputEvents()
|
||||||
|
{
|
||||||
|
Q_Q(QCocoaEventDispatcher);
|
||||||
|
if (processEventsFlags & QEventLoop::ExcludeUserInputEvents)
|
||||||
|
return false;
|
||||||
|
bool didSendEvent = false;
|
||||||
|
while (!queuedUserInputEvents.isEmpty()) {
|
||||||
|
NSEvent *event = static_cast<NSEvent *>(queuedUserInputEvents.takeFirst());
|
||||||
|
if (!q->filterNativeEvent("NSEvent", event, nullptr)) {
|
||||||
|
[NSApp sendEvent:event];
|
||||||
|
didSendEvent = true;
|
||||||
|
}
|
||||||
|
[event release];
|
||||||
|
}
|
||||||
|
return didSendEvent;
|
||||||
|
}
|
||||||
|
|
||||||
void QCocoaEventDispatcherPrivate::processPostedEvents()
|
void QCocoaEventDispatcherPrivate::processPostedEvents()
|
||||||
{
|
{
|
||||||
if (blockSendPostedEvents) {
|
if (blockSendPostedEvents) {
|
||||||
@ -896,6 +906,7 @@ void QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void *info)
|
|||||||
d->maybeCancelWaitForMoreEvents();
|
d->maybeCancelWaitForMoreEvents();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
d->sendQueuedUserInputEvents();
|
||||||
d->processPostedEvents();
|
d->processPostedEvents();
|
||||||
d->maybeCancelWaitForMoreEvents();
|
d->maybeCancelWaitForMoreEvents();
|
||||||
}
|
}
|
||||||
|
@ -1011,8 +1011,7 @@ void QCocoaWindow::setMask(const QRegion ®ion)
|
|||||||
} else {
|
} else {
|
||||||
m_view.layer.mask = nil;
|
m_view.layer.mask = nil;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
|
||||||
if (isContentView()) {
|
if (isContentView()) {
|
||||||
// Setting the mask requires invalidating the NSWindow shadow, but that needs
|
// Setting the mask requires invalidating the NSWindow shadow, but that needs
|
||||||
// to happen after the backingstore has been redrawn, so that AppKit can pick
|
// to happen after the backingstore has been redrawn, so that AppKit can pick
|
||||||
@ -1022,6 +1021,7 @@ void QCocoaWindow::setMask(const QRegion ®ion)
|
|||||||
m_needsInvalidateShadow = true;
|
m_needsInvalidateShadow = true;
|
||||||
[m_view setNeedsDisplay:YES];
|
[m_view setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QCocoaWindow::setKeyboardGrabEnabled(bool grab)
|
bool QCocoaWindow::setKeyboardGrabEnabled(bool grab)
|
||||||
|
@ -101,6 +101,8 @@
|
|||||||
- (id)accessibilityElementAtIndex:(NSInteger)index
|
- (id)accessibilityElementAtIndex:(NSInteger)index
|
||||||
{
|
{
|
||||||
[self initAccessibility];
|
[self initAccessibility];
|
||||||
|
if (index >= [m_accessibleElements count])
|
||||||
|
return nil;
|
||||||
return m_accessibleElements[index];
|
return m_accessibleElements[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,4 +112,10 @@
|
|||||||
return [m_accessibleElements indexOfObject:element];
|
return [m_accessibleElements indexOfObject:element];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSArray *)accessibilityElements
|
||||||
|
{
|
||||||
|
[self initAccessibility];
|
||||||
|
return m_accessibleElements;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -77,6 +77,7 @@
|
|||||||
#include <QtCore/qoperatingsystemversion.h>
|
#include <QtCore/qoperatingsystemversion.h>
|
||||||
#include <QtCore/qsysinfo.h>
|
#include <QtCore/qsysinfo.h>
|
||||||
#include <QtCore/qscopedpointer.h>
|
#include <QtCore/qscopedpointer.h>
|
||||||
|
#include <QtCore/quuid.h>
|
||||||
#include <QtCore/private/qsystemlibrary_p.h>
|
#include <QtCore/private/qsystemlibrary_p.h>
|
||||||
|
|
||||||
#include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h>
|
#include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h>
|
||||||
@ -544,7 +545,7 @@ QString QWindowsContext::registerWindowClass(QString cname,
|
|||||||
// each one has to have window class names with a unique name
|
// each one has to have window class names with a unique name
|
||||||
// The first instance gets the unmodified name; if the class
|
// The first instance gets the unmodified name; if the class
|
||||||
// has already been registered by another instance of Qt then
|
// has already been registered by another instance of Qt then
|
||||||
// add an instance-specific ID, the address of the window proc.
|
// add a UUID.
|
||||||
static int classExists = -1;
|
static int classExists = -1;
|
||||||
|
|
||||||
const HINSTANCE appInstance = static_cast<HINSTANCE>(GetModuleHandle(nullptr));
|
const HINSTANCE appInstance = static_cast<HINSTANCE>(GetModuleHandle(nullptr));
|
||||||
@ -555,7 +556,7 @@ QString QWindowsContext::registerWindowClass(QString cname,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (classExists)
|
if (classExists)
|
||||||
cname += QString::number(reinterpret_cast<quintptr>(proc));
|
cname += QUuid::createUuid().toString();
|
||||||
|
|
||||||
if (d->m_registeredWindowClassNames.contains(cname)) // already registered in our list
|
if (d->m_registeredWindowClassNames.contains(cname)) // already registered in our list
|
||||||
return cname;
|
return cname;
|
||||||
|
@ -204,7 +204,6 @@ QGLXContext::QGLXContext(QXcbScreen *screen, const QSurfaceFormat &format, QPlat
|
|||||||
, m_shareContext(0)
|
, m_shareContext(0)
|
||||||
, m_format(format)
|
, m_format(format)
|
||||||
, m_isPBufferCurrent(false)
|
, m_isPBufferCurrent(false)
|
||||||
, m_swapInterval(-1)
|
|
||||||
, m_ownsContext(nativeHandle.isNull())
|
, m_ownsContext(nativeHandle.isNull())
|
||||||
, m_getGraphicsResetStatus(0)
|
, m_getGraphicsResetStatus(0)
|
||||||
, m_lost(false)
|
, m_lost(false)
|
||||||
@ -567,9 +566,9 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface)
|
|||||||
|
|
||||||
if (success && surfaceClass == QSurface::Window) {
|
if (success && surfaceClass == QSurface::Window) {
|
||||||
int interval = surface->format().swapInterval();
|
int interval = surface->format().swapInterval();
|
||||||
|
QXcbWindow *window = static_cast<QXcbWindow *>(surface);
|
||||||
QXcbScreen *screen = screenForPlatformSurface(surface);
|
QXcbScreen *screen = screenForPlatformSurface(surface);
|
||||||
if (interval >= 0 && m_swapInterval != interval && screen) {
|
if (interval >= 0 && interval != window->swapInterval() && screen) {
|
||||||
m_swapInterval = interval;
|
|
||||||
typedef void (*qt_glXSwapIntervalEXT)(Display *, GLXDrawable, int);
|
typedef void (*qt_glXSwapIntervalEXT)(Display *, GLXDrawable, int);
|
||||||
typedef void (*qt_glXSwapIntervalMESA)(unsigned int);
|
typedef void (*qt_glXSwapIntervalMESA)(unsigned int);
|
||||||
static qt_glXSwapIntervalEXT glXSwapIntervalEXT = 0;
|
static qt_glXSwapIntervalEXT glXSwapIntervalEXT = 0;
|
||||||
@ -588,6 +587,7 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface)
|
|||||||
glXSwapIntervalEXT(m_display, glxDrawable, interval);
|
glXSwapIntervalEXT(m_display, glxDrawable, interval);
|
||||||
else if (glXSwapIntervalMESA)
|
else if (glXSwapIntervalMESA)
|
||||||
glXSwapIntervalMESA(interval);
|
glXSwapIntervalMESA(interval);
|
||||||
|
window->setSwapInterval(interval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ private:
|
|||||||
GLXContext m_shareContext;
|
GLXContext m_shareContext;
|
||||||
QSurfaceFormat m_format;
|
QSurfaceFormat m_format;
|
||||||
bool m_isPBufferCurrent;
|
bool m_isPBufferCurrent;
|
||||||
int m_swapInterval;
|
|
||||||
bool m_ownsContext;
|
bool m_ownsContext;
|
||||||
GLenum (APIENTRY * m_getGraphicsResetStatus)();
|
GLenum (APIENTRY * m_getGraphicsResetStatus)();
|
||||||
bool m_lost;
|
bool m_lost;
|
||||||
|
@ -184,6 +184,9 @@ public:
|
|||||||
static void setWindowTitle(const QXcbConnection *conn, xcb_window_t window, const QString &title);
|
static void setWindowTitle(const QXcbConnection *conn, xcb_window_t window, const QString &title);
|
||||||
static QString windowTitle(const QXcbConnection *conn, xcb_window_t window);
|
static QString windowTitle(const QXcbConnection *conn, xcb_window_t window);
|
||||||
|
|
||||||
|
int swapInterval() const { return m_swapInterval; }
|
||||||
|
void setSwapInterval(int swapInterval) { m_swapInterval = swapInterval; }
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void updateSyncRequestCounter();
|
void updateSyncRequestCounter();
|
||||||
|
|
||||||
@ -276,6 +279,7 @@ protected:
|
|||||||
SyncState m_syncState = NoSyncNeeded;
|
SyncState m_syncState = NoSyncNeeded;
|
||||||
|
|
||||||
QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr;
|
QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr;
|
||||||
|
int m_swapInterval = -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QXcbForeignWindow : public QXcbWindow
|
class QXcbForeignWindow : public QXcbWindow
|
||||||
|
@ -2555,11 +2555,12 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW
|
|||||||
|
|
||||||
QPalette QMacStyle::standardPalette() const
|
QPalette QMacStyle::standardPalette() const
|
||||||
{
|
{
|
||||||
QPalette pal = QCommonStyle::standardPalette();
|
auto platformTheme = QGuiApplicationPrivate::platformTheme();
|
||||||
pal.setColor(QPalette::Disabled, QPalette::Dark, QColor(191, 191, 191));
|
auto styleNames = platformTheme->themeHint(QPlatformTheme::StyleNames);
|
||||||
pal.setColor(QPalette::Active, QPalette::Dark, QColor(191, 191, 191));
|
if (styleNames.toStringList().contains("macintosh"))
|
||||||
pal.setColor(QPalette::Inactive, QPalette::Dark, QColor(191, 191, 191));
|
return *platformTheme->palette();
|
||||||
return pal;
|
else
|
||||||
|
return QStyle::standardPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w,
|
int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w,
|
||||||
|
@ -3706,17 +3706,6 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
|
|||||||
bool dis = !(opt->state & QStyle::State_Enabled),
|
bool dis = !(opt->state & QStyle::State_Enabled),
|
||||||
act = opt->state & QStyle::State_Selected;
|
act = opt->state & QStyle::State_Selected;
|
||||||
|
|
||||||
int checkableOffset = 0;
|
|
||||||
if (checkable) {
|
|
||||||
QRenderRule subSubRule = renderRule(w, opt, PseudoElement_MenuCheckMark);
|
|
||||||
QStyleOptionMenuItem newMi = mi;
|
|
||||||
newMi.rect = positionRect(w, subRule, subSubRule, PseudoElement_MenuCheckMark, opt->rect, opt->direction);
|
|
||||||
// align with icons if there are some
|
|
||||||
checkableOffset = std::max(m->maxIconWidth, newMi.rect.width());
|
|
||||||
if (subSubRule.hasDrawable() || checked)
|
|
||||||
drawPrimitive(PE_IndicatorMenuCheckMark, &newMi, p, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mi.icon.isNull()) {
|
if (!mi.icon.isNull()) {
|
||||||
QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal;
|
QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal;
|
||||||
if (act && !dis)
|
if (act && !dis)
|
||||||
@ -3733,24 +3722,28 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
|
|||||||
}
|
}
|
||||||
QRect iconRect = positionRect(w, subRule, iconRule, PseudoElement_MenuIcon, opt->rect, opt->direction);
|
QRect iconRect = positionRect(w, subRule, iconRule, PseudoElement_MenuIcon, opt->rect, opt->direction);
|
||||||
if (opt->direction == Qt::LeftToRight)
|
if (opt->direction == Qt::LeftToRight)
|
||||||
iconRect.moveLeft(iconRect.left() + checkableOffset);
|
iconRect.moveLeft(iconRect.left());
|
||||||
else
|
else
|
||||||
iconRect.moveRight(iconRect.right() - checkableOffset);
|
iconRect.moveRight(iconRect.right());
|
||||||
iconRule.drawRule(p, iconRect);
|
iconRule.drawRule(p, iconRect);
|
||||||
QRect pmr(0, 0, pixw, pixh);
|
QRect pmr(0, 0, pixw, pixh);
|
||||||
pmr.moveCenter(iconRect.center());
|
pmr.moveCenter(iconRect.center());
|
||||||
p->drawPixmap(pmr.topLeft(), pixmap);
|
p->drawPixmap(pmr.topLeft(), pixmap);
|
||||||
|
} else if (checkable) {
|
||||||
|
QRenderRule subSubRule = renderRule(w, opt, PseudoElement_MenuCheckMark);
|
||||||
|
if (subSubRule.hasDrawable() || checked) {
|
||||||
|
QStyleOptionMenuItem newMi = mi;
|
||||||
|
if (!dis)
|
||||||
|
newMi.state |= State_Enabled;
|
||||||
|
if (act)
|
||||||
|
newMi.state |= State_On;
|
||||||
|
newMi.rect = positionRect(w, subRule, subSubRule, PseudoElement_MenuCheckMark, opt->rect, opt->direction);
|
||||||
|
drawPrimitive(PE_IndicatorMenuCheckMark, &newMi, p, w);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int textOffset = 0;
|
|
||||||
// padding overrules it all
|
|
||||||
if (!subRule.hasBox() || subRule.box()->paddings[LeftEdge] == 0) {
|
|
||||||
textOffset = checkableOffset;
|
|
||||||
if (!m->icon.isNull() || !checkable)
|
|
||||||
textOffset += m->maxIconWidth;
|
|
||||||
}
|
|
||||||
QRect textRect = subRule.contentsRect(opt->rect);
|
QRect textRect = subRule.contentsRect(opt->rect);
|
||||||
textRect.setLeft(textRect.left() + textOffset);
|
textRect.setLeft(textRect.left() + m->maxIconWidth);
|
||||||
textRect.setWidth(textRect.width() - mi.tabWidth);
|
textRect.setWidth(textRect.width() - mi.tabWidth);
|
||||||
const QRect vTextRect = visualRect(opt->direction, m->rect, textRect);
|
const QRect vTextRect = visualRect(opt->direction, m->rect, textRect);
|
||||||
|
|
||||||
@ -5101,27 +5094,20 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
|
|||||||
if (mi->text.contains(QLatin1Char('\t')))
|
if (mi->text.contains(QLatin1Char('\t')))
|
||||||
sz.rwidth() += 12; //as in QCommonStyle
|
sz.rwidth() += 12; //as in QCommonStyle
|
||||||
bool checkable = mi->checkType != QStyleOptionMenuItem::NotCheckable;
|
bool checkable = mi->checkType != QStyleOptionMenuItem::NotCheckable;
|
||||||
int checkableWidth = 0;
|
if (!mi->icon.isNull()) {
|
||||||
if (checkable) {
|
const int pmSmall = pixelMetric(PM_SmallIconSize);
|
||||||
|
const QSize pmSize = mi->icon.actualSize(QSize(pmSmall, pmSmall));
|
||||||
|
sz.rwidth() += pmSize.width() + 4;
|
||||||
|
} else if (checkable) {
|
||||||
QRenderRule subSubRule = renderRule(w, opt, PseudoElement_MenuCheckMark);
|
QRenderRule subSubRule = renderRule(w, opt, PseudoElement_MenuCheckMark);
|
||||||
QRect checkmarkRect = positionRect(w, subRule, subSubRule, PseudoElement_MenuCheckMark, opt->rect, opt->direction);
|
QRect checkmarkRect = positionRect(w, subRule, subSubRule, PseudoElement_MenuCheckMark, opt->rect, opt->direction);
|
||||||
checkableWidth = std::max(mi->maxIconWidth, checkmarkRect.width());
|
sz.rwidth() += std::max(mi->maxIconWidth, checkmarkRect.width()) + 4;
|
||||||
}
|
|
||||||
if (!mi->icon.isNull()) {
|
|
||||||
QPixmap pixmap = mi->icon.pixmap(pixelMetric(PM_SmallIconSize));
|
|
||||||
sz.rwidth() += pixmap.width();
|
|
||||||
}
|
}
|
||||||
if (subRule.hasFont) {
|
if (subRule.hasFont) {
|
||||||
QFontMetrics fm(subRule.font);
|
QFontMetrics fm(subRule.font);
|
||||||
const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text);
|
const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text);
|
||||||
sz = sz.expandedTo(r.size());
|
sz = sz.expandedTo(r.size());
|
||||||
}
|
}
|
||||||
// padding overrules it all
|
|
||||||
if (!subRule.hasBox() || subRule.box()->paddings[LeftEdge] == 0) {
|
|
||||||
sz.rwidth() += checkableWidth;
|
|
||||||
if (!mi->icon.isNull() || !checkable)
|
|
||||||
sz.rwidth() += mi->maxIconWidth;
|
|
||||||
}
|
|
||||||
return subRule.boxSize(subRule.adjustSize(sz));
|
return subRule.boxSize(subRule.adjustSize(sz));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BIN
tests/auto/gui/image/qimagereader/images/qticon16.png
Normal file
BIN
tests/auto/gui/image/qimagereader/images/qticon16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
tests/auto/gui/image/qimagereader/images/qticon16@2x.png
Normal file
BIN
tests/auto/gui/image/qimagereader/images/qticon16@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
tests/auto/gui/image/qimagereader/images/qticon16@3x.png
Normal file
BIN
tests/auto/gui/image/qimagereader/images/qticon16@3x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
@ -164,6 +164,9 @@ private slots:
|
|||||||
void preserveTexts_data();
|
void preserveTexts_data();
|
||||||
void preserveTexts();
|
void preserveTexts();
|
||||||
|
|
||||||
|
void devicePixelRatio_data();
|
||||||
|
void devicePixelRatio();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString prefix;
|
QString prefix;
|
||||||
QTemporaryDir m_temporaryDir;
|
QTemporaryDir m_temporaryDir;
|
||||||
@ -1976,6 +1979,28 @@ void tst_QImageReader::preserveTexts()
|
|||||||
QCOMPARE(r.text(key3), text3.simplified());
|
QCOMPARE(r.text(key3), text3.simplified());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QImageReader::devicePixelRatio_data()
|
||||||
|
{
|
||||||
|
QTest::addColumn<QString>("fileName");
|
||||||
|
QTest::addColumn<QSize>("size");
|
||||||
|
QTest::addColumn<qreal>("dpr");
|
||||||
|
|
||||||
|
QTest::newRow("1x") << "qticon16.png" << QSize(16, 16) << 1.0;
|
||||||
|
QTest::newRow("2x") << "qticon16@2x.png" << QSize(32, 32) << 2.0;
|
||||||
|
QTest::newRow("3x") << "qticon16@3x.png" << QSize(48, 48) << 3.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void tst_QImageReader::devicePixelRatio()
|
||||||
|
{
|
||||||
|
QFETCH(QString, fileName);
|
||||||
|
QFETCH(QSize, size);
|
||||||
|
QFETCH(qreal, dpr);
|
||||||
|
|
||||||
|
QImageReader r(":/images/" + fileName);
|
||||||
|
QImage img = r.read();
|
||||||
|
QCOMPARE(img.size(), size);
|
||||||
|
QCOMPARE(img.devicePixelRatio(), dpr);
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_MAIN(tst_QImageReader)
|
QTEST_MAIN(tst_QImageReader)
|
||||||
#include "tst_qimagereader.moc"
|
#include "tst_qimagereader.moc"
|
||||||
|
@ -2342,7 +2342,7 @@ void tst_QFtp::loginURL()
|
|||||||
|
|
||||||
ftp = newFtp();
|
ftp = newFtp();
|
||||||
addCommand(QFtp::ConnectToHost,
|
addCommand(QFtp::ConnectToHost,
|
||||||
ftp->connectToHost(QHostInfo::localHostName(), port));
|
ftp->connectToHost("127.0.0.1", port));
|
||||||
addCommand(QFtp::Login, ftp->login(user, password));
|
addCommand(QFtp::Login, ftp->login(user, password));
|
||||||
|
|
||||||
QTestEventLoop::instance().enterLoop(5);
|
QTestEventLoop::instance().enterLoop(5);
|
||||||
@ -2350,7 +2350,7 @@ void tst_QFtp::loginURL()
|
|||||||
ftp = nullptr;
|
ftp = nullptr;
|
||||||
server.stopServer();
|
server.stopServer();
|
||||||
if (QTestEventLoop::instance().timeout())
|
if (QTestEventLoop::instance().timeout())
|
||||||
QFAIL(msgTimedOut(QHostInfo::localHostName(), port));
|
QFAIL(msgTimedOut("127.0.0.1", port));
|
||||||
|
|
||||||
QCOMPARE(server.getRawUser(), rawUser);
|
QCOMPARE(server.getRawUser(), rawUser);
|
||||||
QCOMPARE(server.getRawPassword(), rawPass);
|
QCOMPARE(server.getRawPassword(), rawPass);
|
||||||
|
@ -34,3 +34,14 @@ setPen blue 40 solidline roundcap
|
|||||||
drawPath revbez
|
drawPath revbez
|
||||||
setPen red 0
|
setPen red 0
|
||||||
drawPath revbez
|
drawPath revbez
|
||||||
|
|
||||||
|
resetMatrix
|
||||||
|
path_lineTo tightJoin 60 10
|
||||||
|
path_cubicTo tightJoin 50 0 100 0 100 50
|
||||||
|
|
||||||
|
translate 50 500
|
||||||
|
|
||||||
|
setPen green 40 solidline roundcap roundjoin
|
||||||
|
drawPath tightJoin
|
||||||
|
setPen red 0
|
||||||
|
drawPath tightJoin
|
||||||
|
Loading…
x
Reference in New Issue
Block a user