| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quickshapes/qquicknvprfunctions.cpp | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||
| 2 | - | |||||||
| 3 | - | |||||||
| 4 | - | |||||||
| 5 | - | |||||||
| 6 | QQuickNvprFunctions::QQuickNvprFunctions() | - | ||||||
| 7 | : d(new QQuickNvprFunctionsPrivate(this)) | - | ||||||
| 8 | { | - | ||||||
| 9 | } executed 6 times by 3 tests:  end of blockExecuted by: 
 | 6 | ||||||
| 10 | - | |||||||
| 11 | QQuickNvprFunctions::~QQuickNvprFunctions() | - | ||||||
| 12 | { | - | ||||||
| 13 | delete d; | - | ||||||
| 14 | } executed 6 times by 3 tests:  end of blockExecuted by: 
 | 6 | ||||||
| 15 | - | |||||||
| 16 | - | |||||||
| 17 | - | |||||||
| 18 | - | |||||||
| 19 | - | |||||||
| 20 | QSurfaceFormat QQuickNvprFunctions::format() | - | ||||||
| 21 | { | - | ||||||
| 22 | QSurfaceFormat fmt; | - | ||||||
| 23 | fmt.setDepthBufferSize(24); | - | ||||||
| 24 | fmt.setStencilBufferSize(8); | - | ||||||
| 25 | if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL 
 | 0 | ||||||
| 26 | fmt.setVersion(4, 3); | - | ||||||
| 27 | fmt.setProfile(QSurfaceFormat::CompatibilityProfile); | - | ||||||
| 28 | } never executed: else if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGLES end of block
 | 0 | ||||||
| 29 | fmt.setVersion(3, 1); | - | ||||||
| 30 | } never executed:  end of block | 0 | ||||||
| 31 | return never executed: fmt; return fmt;never executed:  return fmt; | 0 | ||||||
| 32 | } | - | ||||||
| 33 | bool QQuickNvprFunctions::isSupported() | - | ||||||
| 34 | { | - | ||||||
| 35 | QOpenGLContext *ctx = QOpenGLContext::currentContext(); | - | ||||||
| 36 | QScopedPointer<QOpenGLContext> tempContext; | - | ||||||
| 37 | QScopedPointer<QOffscreenSurface> tempSurface; | - | ||||||
| 38 | if (!ctx 
 | 0-166 | ||||||
| 39 | tempContext.reset(new QOpenGLContext); | - | ||||||
| 40 | if (!tempContext->create() 
 | 0 | ||||||
| 41 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 42 | ctx = tempContext.data(); | - | ||||||
| 43 | tempSurface.reset(new QOffscreenSurface); | - | ||||||
| 44 | tempSurface->setFormat(ctx->format()); | - | ||||||
| 45 | tempSurface->create(); | - | ||||||
| 46 | if (!ctx->makeCurrent(tempSurface.data()) 
 | 0 | ||||||
| 47 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 48 | } never executed:  end of block | 0 | ||||||
| 49 | - | |||||||
| 50 | if (!ctx->hasExtension(([]() -> QByteArray { enum { Size = sizeof("GL_NV_path_rendering") - 1 }; static const QStaticByteArrayData<Size> qbytearray_literal = { { { { -1 } }, Size, 0, 0, sizeof(QByteArrayData) }, "GL_NV_path_rendering" }; QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; const QByteArray ba(holder); return executed 166 times by 1 test: ba; return ba;Executed by: 
 executed 166 times by 1 test: }())) return ba;Executed by: 
 
 | 0-166 | ||||||
| 51 | return executed 166 times by 1 test: false; return false;Executed by: 
 executed 166 times by 1 test:  return false;Executed by: 
 | 166 | ||||||
| 52 | - | |||||||
| 53 | - | |||||||
| 54 | if (!reinterpret_cast<PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC>(ctx->getProcAddress("glProgramPathFragmentInputGenNV")) 
 | 0 | ||||||
| 55 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 56 | return never executed: true; return true;never executed:  return true; | 0 | ||||||
| 57 | } | - | ||||||
| 58 | - | |||||||
| 59 | - | |||||||
| 60 | - | |||||||
| 61 | - | |||||||
| 62 | - | |||||||
| 63 | - | |||||||
| 64 | - | |||||||
| 65 | bool QQuickNvprFunctions::create() | - | ||||||
| 66 | { | - | ||||||
| 67 | return never executed: isSupported() && d->resolve(); return isSupported() && d->resolve();never executed:  return isSupported() && d->resolve(); | 0 | ||||||
| 68 | } | - | ||||||
| 69 | bool QQuickNvprFunctions::createFragmentOnlyPipeline(const char *fragmentShaderSource, GLuint *pipeline, GLuint *program) | - | ||||||
| 70 | { | - | ||||||
| 71 | QOpenGLContext *ctx = QOpenGLContext::currentContext(); | - | ||||||
| 72 | if (!ctx 
 | 0 | ||||||
| 73 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 74 | - | |||||||
| 75 | QOpenGLExtraFunctions *f = ctx->extraFunctions(); | - | ||||||
| 76 | *program = f->glCreateShaderProgramv(0x8B30, 1, &fragmentShaderSource); | - | ||||||
| 77 | GLint status = 0; | - | ||||||
| 78 | f->glGetProgramiv(*program, 0x8B82, &status); | - | ||||||
| 79 | if (!status 
 | 0 | ||||||
| 80 | GLint len = 0; | - | ||||||
| 81 | f->glGetProgramiv(*program, 0x8B84, &len); | - | ||||||
| 82 | if (len 
 | 0 | ||||||
| 83 | QByteArray s; | - | ||||||
| 84 | s.resize(len); | - | ||||||
| 85 | f->glGetProgramInfoLog(*program, s.count(), nullptr, s.data()); | - | ||||||
| 86 | QMessageLogger(__FILE__, 181, __PRETTY_FUNCTION__).warning("Failed to create separable shader program:\n%s", s.constData()); | - | ||||||
| 87 | } never executed:  end of block | 0 | ||||||
| 88 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 89 | } | - | ||||||
| 90 | - | |||||||
| 91 | f->glGenProgramPipelines(1, pipeline); | - | ||||||
| 92 | f->glUseProgramStages(*pipeline, 0x00000002, *program); | - | ||||||
| 93 | f->glActiveShaderProgram(*pipeline, *program); | - | ||||||
| 94 | - | |||||||
| 95 | f->glValidateProgramPipeline(*pipeline); | - | ||||||
| 96 | status = 0; | - | ||||||
| 97 | f->glGetProgramPipelineiv(*pipeline, 0x8B83, &status); | - | ||||||
| 98 | if (!status 
 | 0 | ||||||
| 99 | GLint len = 0; | - | ||||||
| 100 | f->glGetProgramPipelineiv(*pipeline, 0x8B84, &len); | - | ||||||
| 101 | if (len 
 | 0 | ||||||
| 102 | QByteArray s; | - | ||||||
| 103 | s.resize(len); | - | ||||||
| 104 | f->glGetProgramPipelineInfoLog(*pipeline, s.count(), nullptr, s.data()); | - | ||||||
| 105 | QMessageLogger(__FILE__, 200, __PRETTY_FUNCTION__).warning("Program pipeline validation failed:\n%s", s.constData()); | - | ||||||
| 106 | } never executed:  end of block | 0 | ||||||
| 107 | return never executed: false; return false;never executed:  return false; | 0 | ||||||
| 108 | } | - | ||||||
| 109 | - | |||||||
| 110 | return never executed: true; return true;never executed:  return true; | 0 | ||||||
| 111 | } | - | ||||||
| 112 | - | |||||||
| 113 | bool QQuickNvprFunctionsPrivate::resolve() | - | ||||||
| 114 | { | - | ||||||
| 115 | QOpenGLContext *ctx = QOpenGLContext::currentContext(); | - | ||||||
| 116 | - | |||||||
| 117 | q->genPaths = reinterpret_cast<PFNGLGENPATHSNVPROC>(ctx->getProcAddress("glGenPathsNV")); | - | ||||||
| 118 | q->deletePaths = reinterpret_cast<PFNGLDELETEPATHSNVPROC>(ctx->getProcAddress("glDeletePathsNV")); | - | ||||||
| 119 | q->isPath = reinterpret_cast<PFNGLISPATHNVPROC>(ctx->getProcAddress("glIsPathNV")); | - | ||||||
| 120 | q->pathCommands = reinterpret_cast<PFNGLPATHCOMMANDSNVPROC>(ctx->getProcAddress("glPathCommandsNV")); | - | ||||||
| 121 | q->pathCoords = reinterpret_cast<PFNGLPATHCOORDSNVPROC>(ctx->getProcAddress("glPathCoordsNV")); | - | ||||||
| 122 | q->pathSubCommands = reinterpret_cast<PFNGLPATHSUBCOMMANDSNVPROC>(ctx->getProcAddress("glPathSubCommandsNV")); | - | ||||||
| 123 | q->pathSubCoords = reinterpret_cast<PFNGLPATHSUBCOORDSNVPROC>(ctx->getProcAddress("glPathSubCoordsNV")); | - | ||||||
| 124 | q->pathString = reinterpret_cast<PFNGLPATHSTRINGNVPROC>(ctx->getProcAddress("glPathStringNV")); | - | ||||||
| 125 | q->pathGlyphs = reinterpret_cast<PFNGLPATHGLYPHSNVPROC>(ctx->getProcAddress("glPathGlyphsNV")); | - | ||||||
| 126 | q->pathGlyphRange = reinterpret_cast<PFNGLPATHGLYPHRANGENVPROC>(ctx->getProcAddress("glPathGlyphRangeNV")); | - | ||||||
| 127 | q->weightPaths = reinterpret_cast<PFNGLWEIGHTPATHSNVPROC>(ctx->getProcAddress("glWeightPathsNV")); | - | ||||||
| 128 | q->copyPath = reinterpret_cast<PFNGLCOPYPATHNVPROC>(ctx->getProcAddress("glCopyPathNV")); | - | ||||||
| 129 | q->interpolatePaths = reinterpret_cast<PFNGLINTERPOLATEPATHSNVPROC>(ctx->getProcAddress("glInterpolatePathsNV")); | - | ||||||
| 130 | q->transformPath = reinterpret_cast<PFNGLTRANSFORMPATHNVPROC>(ctx->getProcAddress("glTransformPathNV")); | - | ||||||
| 131 | q->pathParameteriv = reinterpret_cast<PFNGLPATHPARAMETERIVNVPROC>(ctx->getProcAddress("glPathParameterivNV")); | - | ||||||
| 132 | q->pathParameteri = reinterpret_cast<PFNGLPATHPARAMETERINVPROC>(ctx->getProcAddress("glPathParameteriNV")); | - | ||||||
| 133 | q->pathParameterfv = reinterpret_cast<PFNGLPATHPARAMETERFVNVPROC>(ctx->getProcAddress("glPathParameterfvNV")); | - | ||||||
| 134 | q->pathParameterf = reinterpret_cast<PFNGLPATHPARAMETERFNVPROC>(ctx->getProcAddress("glPathParameterfNV")); | - | ||||||
| 135 | q->pathDashArray = reinterpret_cast<PFNGLPATHDASHARRAYNVPROC>(ctx->getProcAddress("glPathDashArrayNV")); | - | ||||||
| 136 | q->pathStencilFunc = reinterpret_cast<PFNGLPATHSTENCILFUNCNVPROC>(ctx->getProcAddress("glPathStencilFuncNV")); | - | ||||||
| 137 | q->pathStencilDepthOffset = reinterpret_cast<PFNGLPATHSTENCILDEPTHOFFSETNVPROC>(ctx->getProcAddress("glPathStencilDepthOffsetNV")); | - | ||||||
| 138 | q->stencilFillPath = reinterpret_cast<PFNGLSTENCILFILLPATHNVPROC>(ctx->getProcAddress("glStencilFillPathNV")); | - | ||||||
| 139 | q->stencilStrokePath = reinterpret_cast<PFNGLSTENCILSTROKEPATHNVPROC>(ctx->getProcAddress("glStencilStrokePathNV")); | - | ||||||
| 140 | q->stencilFillPathInstanced = reinterpret_cast<PFNGLSTENCILFILLPATHINSTANCEDNVPROC>(ctx->getProcAddress("glStencilFillPathInstancedNV")); | - | ||||||
| 141 | q->stencilStrokePathInstanced = reinterpret_cast<PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC>(ctx->getProcAddress("glStencilStrokePathInstancedNV")); | - | ||||||
| 142 | q->pathCoverDepthFunc = reinterpret_cast<PFNGLPATHCOVERDEPTHFUNCNVPROC>(ctx->getProcAddress("glPathCoverDepthFuncNV")); | - | ||||||
| 143 | q->coverFillPath = reinterpret_cast<PFNGLCOVERFILLPATHNVPROC>(ctx->getProcAddress("glCoverFillPathNV")); | - | ||||||
| 144 | q->coverStrokePath = reinterpret_cast<PFNGLCOVERSTROKEPATHNVPROC>(ctx->getProcAddress("glCoverStrokePathNV")); | - | ||||||
| 145 | q->coverFillPathInstanced = reinterpret_cast<PFNGLCOVERFILLPATHINSTANCEDNVPROC>(ctx->getProcAddress("glCoverFillPathInstancedNV")); | - | ||||||
| 146 | q->coverStrokePathInstanced = reinterpret_cast<PFNGLCOVERSTROKEPATHINSTANCEDNVPROC>(ctx->getProcAddress("glCoverStrokePathInstancedNV")); | - | ||||||
| 147 | q->getPathParameteriv = reinterpret_cast<PFNGLGETPATHPARAMETERIVNVPROC>(ctx->getProcAddress("glGetPathParameterivNV")); | - | ||||||
| 148 | q->getPathParameterfv = reinterpret_cast<PFNGLGETPATHPARAMETERFVNVPROC>(ctx->getProcAddress("glGetPathParameterfvNV")); | - | ||||||
| 149 | q->getPathCommands = reinterpret_cast<PFNGLGETPATHCOMMANDSNVPROC>(ctx->getProcAddress("glGetPathCommandsNV")); | - | ||||||
| 150 | q->getPathCoords = reinterpret_cast<PFNGLGETPATHCOORDSNVPROC>(ctx->getProcAddress("glGetPathCoordsNV")); | - | ||||||
| 151 | q->getPathDashArray = reinterpret_cast<PFNGLGETPATHDASHARRAYNVPROC>(ctx->getProcAddress("glGetPathDashArrayNV")); | - | ||||||
| 152 | q->getPathMetrics = reinterpret_cast<PFNGLGETPATHMETRICSNVPROC>(ctx->getProcAddress("glGetPathMetricsNV")); | - | ||||||
| 153 | q->getPathMetricRange = reinterpret_cast<PFNGLGETPATHMETRICRANGENVPROC>(ctx->getProcAddress("glGetPathMetricRangeNV")); | - | ||||||
| 154 | q->getPathSpacing = reinterpret_cast<PFNGLGETPATHSPACINGNVPROC>(ctx->getProcAddress("glGetPathSpacingNV")); | - | ||||||
| 155 | q->isPointInFillPath = reinterpret_cast<PFNGLISPOINTINFILLPATHNVPROC>(ctx->getProcAddress("glIsPointInFillPathNV")); | - | ||||||
| 156 | q->isPointInStrokePath = reinterpret_cast<PFNGLISPOINTINSTROKEPATHNVPROC>(ctx->getProcAddress("glIsPointInStrokePathNV")); | - | ||||||
| 157 | q->getPathLength = reinterpret_cast<PFNGLGETPATHLENGTHNVPROC>(ctx->getProcAddress("glGetPathLengthNV")); | - | ||||||
| 158 | q->getPointAlongPath = reinterpret_cast<PFNGLPOINTALONGPATHNVPROC>(ctx->getProcAddress("glPointAlongPathNV")); | - | ||||||
| 159 | q->matrixLoad3x2f = reinterpret_cast<PFNGLMATRIXLOAD3X2FNVPROC>(ctx->getProcAddress("glMatrixLoad3x2fNV")); | - | ||||||
| 160 | q->matrixLoad3x3f = reinterpret_cast<PFNGLMATRIXLOAD3X3FNVPROC>(ctx->getProcAddress("glMatrixLoad3x3fNV")); | - | ||||||
| 161 | q->matrixLoadTranspose3x3f = reinterpret_cast<PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC>(ctx->getProcAddress("glMatrixLoadTranspose3x3fNV")); | - | ||||||
| 162 | q->matrixMult3x2f = reinterpret_cast<PFNGLMATRIXMULT3X2FNVPROC>(ctx->getProcAddress("glMatrixMult3x2fNV")); | - | ||||||
| 163 | q->matrixMult3x3f = reinterpret_cast<PFNGLMATRIXMULT3X3FNVPROC>(ctx->getProcAddress("glMatrixMult3x3fNV")); | - | ||||||
| 164 | q->matrixMultTranspose3x3f = reinterpret_cast<PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC>(ctx->getProcAddress("glMatrixMultTranspose3x3fNV")); | - | ||||||
| 165 | q->stencilThenCoverFillPath = reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHNVPROC>(ctx->getProcAddress("glStencilThenCoverFillPathNV")); | - | ||||||
| 166 | q->stencilThenCoverStrokePath = reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC>(ctx->getProcAddress("glStencilThenCoverStrokePathNV")); | - | ||||||
| 167 | q->stencilThenCoverFillPathInstanced = reinterpret_cast<PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC>(ctx->getProcAddress("glStencilThenCoverFillPathInstancedNV")); | - | ||||||
| 168 | q->stencilThenCoverStrokePathInstanced = reinterpret_cast<PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC>(ctx->getProcAddress("glStencilThenCoverStrokePathInstancedNV")); | - | ||||||
| 169 | q->pathGlyphIndexRange = reinterpret_cast<PFNGLPATHGLYPHINDEXRANGENVPROC>(ctx->getProcAddress("glPathGlyphIndexRangeNV")); | - | ||||||
| 170 | q->pathGlyphIndexArray = reinterpret_cast<PFNGLPATHGLYPHINDEXARRAYNVPROC>(ctx->getProcAddress("glPathGlyphIndexArrayNV")); | - | ||||||
| 171 | q->pathMemoryGlyphIndexArray = reinterpret_cast<PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC>(ctx->getProcAddress("glPathMemoryGlyphIndexArrayNV")); | - | ||||||
| 172 | q->programPathFragmentInputGen = reinterpret_cast<PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC>(ctx->getProcAddress("glProgramPathFragmentInputGenNV")); | - | ||||||
| 173 | q->getProgramResourcefv = reinterpret_cast<PFNGLGETPROGRAMRESOURCEFVNVPROC>(ctx->getProcAddress("glGetProgramResourcefvNV")); | - | ||||||
| 174 | - | |||||||
| 175 | q->matrixLoadf = reinterpret_cast<PFNGLMATRIXLOADFEXTPROC>(ctx->getProcAddress("glMatrixLoadfEXT")); | - | ||||||
| 176 | q->matrixLoadIdentity = reinterpret_cast<PFNGLMATRIXLOADIDENTITYEXTPROC>(ctx->getProcAddress("glMatrixLoadIdentityEXT")); | - | ||||||
| 177 | - | |||||||
| 178 | return never executed: q->genPaths != nullptr return q->genPaths != nullptr && q->programPathFragmentInputGen != nullptr && q->matrixLoadf != nullptr && q->matrixLoadIdentity != nullptr;never executed:  return q->genPaths != nullptr && q->programPathFragmentInputGen != nullptr && q->matrixLoadf != nullptr && q->matrixLoadIdentity != nullptr; | 0 | ||||||
| 179 | && q->programPathFragmentInputGen != nullptr never executed:  return q->genPaths != nullptr && q->programPathFragmentInputGen != nullptr && q->matrixLoadf != nullptr && q->matrixLoadIdentity != nullptr; | 0 | ||||||
| 180 | && q->matrixLoadf != nullptr never executed:  return q->genPaths != nullptr && q->programPathFragmentInputGen != nullptr && q->matrixLoadf != nullptr && q->matrixLoadIdentity != nullptr; | 0 | ||||||
| 181 | && q->matrixLoadIdentity != nullptr; never executed:  return q->genPaths != nullptr && q->programPathFragmentInputGen != nullptr && q->matrixLoadf != nullptr && q->matrixLoadIdentity != nullptr; | 0 | ||||||
| 182 | } | - | ||||||
| 183 | - | |||||||
| 184 | - | |||||||
| Switch to Source code | Preprocessed file |