diff options
-rw-r--r-- | src/core/nodes/qnodeid.h | 2 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/debug/imguirenderer.cpp | 12 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/debug/imguirenderer_p.h | 2 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/graphicshelpers/submissioncontext.cpp | 114 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/io/rhibuffer.cpp | 12 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/commandexecuter.cpp | 2 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer.cpp | 9 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer_p.h | 2 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderview.cpp | 2 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/textures/texture.cpp | 2 | ||||
-rw-r--r-- | tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp | 4 | ||||
-rw-r--r-- | tests/auto/render/picking/tst_picking.cpp | 1 | ||||
-rw-r--r-- | tests/manual/rhi/main.cpp | 1 |
13 files changed, 98 insertions, 67 deletions
diff --git a/src/core/nodes/qnodeid.h b/src/core/nodes/qnodeid.h index 0fd81e790..18fb954ef 100644 --- a/src/core/nodes/qnodeid.h +++ b/src/core/nodes/qnodeid.h @@ -106,7 +106,7 @@ typedef QVector<QNodeId> QNodeIdVector; Q_3DCORESHARED_EXPORT QDebug operator<<(QDebug d, QNodeId id); #endif -inline Q_DECL_CONSTEXPR uint qHash(QNodeId id, uint seed = 0) Q_DECL_NOTHROW +inline Q_DECL_CONSTEXPR size_t qHash(QNodeId id, size_t seed = 0) Q_DECL_NOTHROW { using QT_PREPEND_NAMESPACE(qHash); return qHash(id.id(), seed); diff --git a/src/plugins/renderers/opengl/debug/imguirenderer.cpp b/src/plugins/renderers/opengl/debug/imguirenderer.cpp index 0acee945a..9445eb418 100644 --- a/src/plugins/renderers/opengl/debug/imguirenderer.cpp +++ b/src/plugins/renderers/opengl/debug/imguirenderer.cpp @@ -552,18 +552,6 @@ bool ImGuiRenderer::createDeviceObjects() " gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);\n" "}\n"; -// m_shaderHandle = m_funcs->glCreateProgram(); -// m_vertHandle = m_funcs->glCreateShader(GL_VERTEX_SHADER); -// m_fragHandle = m_funcs->glCreateShader(GL_FRAGMENT_SHADER); -// auto *glContext = m_renderer->submissionContext()->openGLContext(); -// m_funcs->glShaderSource(m_vertHandle, 1, &vertex_shader, nullptr); -// m_funcs->glShaderSource(m_fragHandle, 1, &fragment_shader, nullptr); -// m_funcs->glCompileShader(m_vertHandle); -// m_funcs->glCompileShader(m_fragHandle); -// m_funcs->glAttachShader(m_shaderHandle, m_vertHandle); -// m_funcs->glAttachShader(m_shaderHandle, m_fragHandle); -// m_funcs->glLinkProgram(m_shaderHandle); - QString logs; m_shader = new QOpenGLShaderProgram(this); if (glContext->isOpenGLES()) { diff --git a/src/plugins/renderers/opengl/debug/imguirenderer_p.h b/src/plugins/renderers/opengl/debug/imguirenderer_p.h index f462bbd5b..33a7af282 100644 --- a/src/plugins/renderers/opengl/debug/imguirenderer_p.h +++ b/src/plugins/renderers/opengl/debug/imguirenderer_p.h @@ -108,7 +108,7 @@ private: float m_mouseWheel; float m_mouseWheelH; GLuint m_fontTexture = 0; - GLuint m_shaderHandle = 0, m_vertHandle = 0, m_fragHandle = 0; + GLuint m_shaderHandle = 0; int m_attribLocationTex = 0, m_attribLocationProjMtx = 0; int m_attribLocationPosition = 0, m_attribLocationUV = 0, m_attribLocationColor = 0; unsigned int m_vboHandle = 0, m_vaoHandle = 0, m_elementsHandle = 0; diff --git a/src/plugins/renderers/rhi/graphicshelpers/submissioncontext.cpp b/src/plugins/renderers/rhi/graphicshelpers/submissioncontext.cpp index 45c7f434e..aade325c7 100644 --- a/src/plugins/renderers/rhi/graphicshelpers/submissioncontext.cpp +++ b/src/plugins/renderers/rhi/graphicshelpers/submissioncontext.cpp @@ -117,55 +117,55 @@ unsigned int nextFreeContextId() noexcept namespace { -RHIBuffer::Type attributeTypeToGLBufferType(QAttribute::AttributeType type) noexcept -{ - switch (type) { - case QAttribute::VertexAttribute: - return RHIBuffer::ArrayBuffer; - case QAttribute::IndexAttribute: - return RHIBuffer::IndexBuffer; - case QAttribute::DrawIndirectAttribute: - return RHIBuffer::DrawIndirectBuffer; - default: - Q_UNREACHABLE(); - } -} - -void copyGLFramebufferDataToImage(QImage &img, const uchar *srcData, uint stride, uint width, - uint height, QAbstractTexture::TextureFormat format) noexcept -{ - switch (format) { - case QAbstractTexture::RGBA32F: { - uchar *srcScanline = const_cast<uchar *>(srcData) + stride * (height - 1); - for (uint i = 0; i < height; ++i) { - uchar *dstScanline = img.scanLine(i); - float *pSrc = reinterpret_cast<float *>(srcScanline); - for (uint j = 0; j < width; j++) { - *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 2], 1.0f)); - *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 1], 1.0f)); - *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 0], 1.0f)); - *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 3], 1.0f)); - } - srcScanline -= stride; - } - } break; - default: { - uchar *srcScanline = (uchar *)srcData + stride * (height - 1); - for (uint i = 0; i < height; ++i) { - memcpy(img.scanLine(i), srcScanline, stride); - srcScanline -= stride; - } - } break; - } -} +//RHIBuffer::Type attributeTypeToGLBufferType(QAttribute::AttributeType type) noexcept +//{ +// switch (type) { +// case QAttribute::VertexAttribute: +// return RHIBuffer::ArrayBuffer; +// case QAttribute::IndexAttribute: +// return RHIBuffer::IndexBuffer; +// case QAttribute::DrawIndirectAttribute: +// return RHIBuffer::DrawIndirectBuffer; +// default: +// Q_UNREACHABLE(); +// } +//} + +//void copyGLFramebufferDataToImage(QImage &img, const uchar *srcData, uint stride, uint width, +// uint height, QAbstractTexture::TextureFormat format) noexcept +//{ +// switch (format) { +// case QAbstractTexture::RGBA32F: { +// uchar *srcScanline = const_cast<uchar *>(srcData) + stride * (height - 1); +// for (uint i = 0; i < height; ++i) { +// uchar *dstScanline = img.scanLine(i); +// float *pSrc = reinterpret_cast<float *>(srcScanline); +// for (uint j = 0; j < width; j++) { +// *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 2], 1.0f)); +// *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 1], 1.0f)); +// *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 0], 1.0f)); +// *dstScanline++ = (uchar)(255.0f * qBound(0.0f, pSrc[4 * j + 3], 1.0f)); +// } +// srcScanline -= stride; +// } +// } break; +// default: { +// uchar *srcScanline = (uchar *)srcData + stride * (height - 1); +// for (uint i = 0; i < height; ++i) { +// memcpy(img.scanLine(i), srcScanline, stride); +// srcScanline -= stride; +// } +// } break; +// } +//} // Render States Helpers template<typename GenericState> void applyStateHelper(const GenericState *state, QRhiGraphicsPipeline *gp) noexcept { - Q_UNUSED(state); - Q_UNUSED(gp); + Q_UNUSED(state) + Q_UNUSED(gp) qWarning() << "RHI Unhandled render state" << typeid(GenericState).name(); } @@ -270,6 +270,7 @@ void applyStateHelper(const BlendEquation *state, QRhiGraphicsPipeline *gp) noex void applyStateHelper(const MSAAEnabled *state, QRhiGraphicsPipeline *gp, const QSurfaceFormat &format) noexcept { + Q_UNUSED(state) gp->setSampleCount(format.samples()); } @@ -689,6 +690,7 @@ bool SubmissionContext::beginDrawing(QSurface *surface) void SubmissionContext::endDrawing(bool swapBuffers) { + Q_UNUSED(swapBuffers) m_rhi->endFrame(m_currentSwapChain, {}); RHI_UNIMPLEMENTED; @@ -732,6 +734,8 @@ void SubmissionContext::activateRenderTarget(Qt3DCore::QNodeId renderTargetNodeI GLuint SubmissionContext::createRenderTarget(Qt3DCore::QNodeId renderTargetNodeId, const AttachmentPack &attachments) { + Q_UNUSED(renderTargetNodeId) + Q_UNUSED(attachments) RHI_UNIMPLEMENTED; return 0; //* const GLuint fboId = m_glHelper->createFrameBufferObject(); @@ -752,6 +756,9 @@ GLuint SubmissionContext::updateRenderTarget(Qt3DCore::QNodeId renderTargetNodeI const AttachmentPack &attachments, bool isActiveRenderTarget) { + Q_UNUSED(renderTargetNodeId) + Q_UNUSED(attachments) + Q_UNUSED(isActiveRenderTarget) RHI_UNIMPLEMENTED; return 0; //* const GLuint fboId = m_renderTargets.value(renderTargetNodeId); @@ -835,6 +842,7 @@ QSize SubmissionContext::renderTargetSize(const QSize &surfaceSize) const QImage SubmissionContext::readFramebuffer(const QRect &rect) { + Q_UNUSED(rect) RHI_UNIMPLEMENTED; return {}; //* QImage img; @@ -1022,6 +1030,7 @@ void SubmissionContext::releaseResources() // Called only from RenderThread bool SubmissionContext::activateShader(RHIShader *shader) { + Q_UNUSED(shader) RHI_UNIMPLEMENTED; //* if (shader->shaderProgram() != m_activeShader) { //* // Ensure material uniforms are re-applied @@ -1042,6 +1051,8 @@ bool SubmissionContext::activateShader(RHIShader *shader) void SubmissionContext::bindFrameBufferAttachmentHelper(GLuint fboId, const AttachmentPack &attachments) { + Q_UNUSED(fboId) + Q_UNUSED(attachments) RHI_UNIMPLEMENTED; // Set FBO attachments. These are normally textures, except that on Open GL // ES <= 3.1 we must use a renderbuffer if a combined depth+stencil is @@ -1084,6 +1095,7 @@ void SubmissionContext::bindFrameBufferAttachmentHelper(GLuint fboId, void SubmissionContext::activateDrawBuffers(const AttachmentPack &attachments) { + Q_UNUSED(attachments) RHI_UNIMPLEMENTED; //* const QVector<int> activeDrawBuffers = attachments.getGlDrawBuffers(); //* @@ -1341,8 +1353,8 @@ QSurfaceFormat SubmissionContext::format() const noexcept // than the other way around bool SubmissionContext::setParameters(ShaderParameterPack ¶meterPack) { - static const int irradianceId = StringToInt::lookupId(QLatin1String("envLight_irradiance")); - static const int specularId = StringToInt::lookupId(QLatin1String("envLight_specular")); +// static const int irradianceId = StringToInt::lookupId(QLatin1String("envLight_irradiance")); +// static const int specularId = StringToInt::lookupId(QLatin1String("envLight_specular")); // Activate textures and update TextureUniform in the pack // with the correct textureUnit @@ -1350,7 +1362,7 @@ bool SubmissionContext::setParameters(ShaderParameterPack ¶meterPack) // to pinable so that we should easily find an available texture unit // m_textureContext.deactivateTexturesWithScope(TextureSubmissionContext::TextureScopeMaterial); // Update the uniforms with the correct texture unit id's - PackUniformHash &uniformValues = parameterPack.uniforms(); +// PackUniformHash &uniformValues = parameterPack.uniforms(); // Fill Texture Uniform Value with proper texture units // so that they can be applied as regular uniforms in a second step @@ -1380,8 +1392,6 @@ bool SubmissionContext::setParameters(ShaderParameterPack ¶meterPack) //* } } - RHIShader *shader = activeShader(); - // TO DO: We could cache the binding points somehow and only do the binding when necessary // for SSBO and UBO @@ -1568,6 +1578,14 @@ void SubmissionContext::blitFramebuffer(Qt3DCore::QNodeId inputRenderTargetId, QRenderTargetOutput::AttachmentPoint outputAttachmentPoint, QBlitFramebuffer::InterpolationMethod interpolationMethod) { + Q_UNUSED(inputRenderTargetId) + Q_UNUSED(outputRenderTargetId) + Q_UNUSED(inputRect) + Q_UNUSED(outputRect) + Q_UNUSED(defaultFboId) + Q_UNUSED(inputAttachmentPoint) + Q_UNUSED(outputAttachmentPoint) + Q_UNUSED(interpolationMethod) RHI_UNIMPLEMENTED; //* GLuint inputFboId = defaultFboId; //* bool inputBufferIsDefault = true; diff --git a/src/plugins/renderers/rhi/io/rhibuffer.cpp b/src/plugins/renderers/rhi/io/rhibuffer.cpp index 7b63b01a2..607863461 100644 --- a/src/plugins/renderers/rhi/io/rhibuffer.cpp +++ b/src/plugins/renderers/rhi/io/rhibuffer.cpp @@ -117,6 +117,7 @@ bool RHIBuffer::bind(SubmissionContext *ctx, Type t) bool RHIBuffer::release(SubmissionContext *ctx) { + Q_UNUSED(ctx) if (m_rhiBuffer) m_rhiBuffer->release(); return true; @@ -124,11 +125,13 @@ bool RHIBuffer::release(SubmissionContext *ctx) bool RHIBuffer::create(SubmissionContext *ctx) { + Q_UNUSED(ctx) return true; } void RHIBuffer::destroy(SubmissionContext *ctx) { + Q_UNUSED(ctx) if (m_rhiBuffer) { m_rhiBuffer->releaseAndDestroyLater(); m_rhiBuffer = nullptr; @@ -148,6 +151,7 @@ void RHIBuffer::orphan(SubmissionContext *) void RHIBuffer::allocate(SubmissionContext *ctx, const QByteArray &data, bool dynamic) { + Q_UNUSED(ctx) m_datasToUpload.clear(); m_datasToUpload.push_back({ data, 0 }); m_allocSize = data.size(); @@ -156,11 +160,14 @@ void RHIBuffer::allocate(SubmissionContext *ctx, const QByteArray &data, bool dy void RHIBuffer::update(SubmissionContext *ctx, const QByteArray &data, int offset) { + Q_UNUSED(ctx) m_datasToUpload.push_back({ data, offset }); } QByteArray RHIBuffer::download(SubmissionContext *ctx, uint size) { + Q_UNUSED(ctx) + Q_UNUSED(size) RHI_UNIMPLEMENTED; // char *gpu_ptr = ctx->mapBuffer(m_lastTarget, size); // QByteArray data; @@ -175,12 +182,17 @@ QByteArray RHIBuffer::download(SubmissionContext *ctx, uint size) void RHIBuffer::bindBufferBase(SubmissionContext *ctx, int bindingPoint, RHIBuffer::Type t) { + Q_UNUSED(ctx) + Q_UNUSED(bindingPoint) + Q_UNUSED(t) RHI_UNIMPLEMENTED; // ctx->bindBufferBase(glBufferTypes[t], bindingPoint, m_bufferId); } void RHIBuffer::bindBufferBase(SubmissionContext *ctx, int bindingPoint) { + Q_UNUSED(ctx) + Q_UNUSED(bindingPoint) RHI_UNIMPLEMENTED; // ctx->bindBufferBase(m_lastTarget, bindingPoint, m_bufferId); } diff --git a/src/plugins/renderers/rhi/renderer/commandexecuter.cpp b/src/plugins/renderers/rhi/renderer/commandexecuter.cpp index cfa6531be..07e64ac62 100644 --- a/src/plugins/renderers/rhi/renderer/commandexecuter.cpp +++ b/src/plugins/renderers/rhi/renderer/commandexecuter.cpp @@ -303,6 +303,7 @@ CommandExecuter::CommandExecuter(Render::Rhi::Renderer *renderer) : m_renderer(r void CommandExecuter::performAsynchronousCommandExecution( const QVector<Render::Rhi::RenderView *> &views) { + Q_UNUSED(views) RHI_UNIMPLEMENTED; //* QMutexLocker lock(&m_pendingCommandsMutex); //* const QVector<Qt3DCore::Debug::AsynchronousCommandReply *> shellCommands = @@ -380,6 +381,7 @@ void CommandExecuter::performAsynchronousCommandExecution( // Main thread QVariant CommandExecuter::executeCommand(const QStringList &args) { + Q_UNUSED(args) RHI_UNIMPLEMENTED; //* // Note: The replies will be deleted by the AspectCommandDebugger //* if (args.length() > 0 && diff --git a/src/plugins/renderers/rhi/renderer/renderer.cpp b/src/plugins/renderers/rhi/renderer/renderer.cpp index c27a4e097..7ef289738 100644 --- a/src/plugins/renderers/rhi/renderer/renderer.cpp +++ b/src/plugins/renderers/rhi/renderer/renderer.cpp @@ -390,7 +390,7 @@ QOpenGLContext *Renderer::shareContext() const // Executed in the reloadDirtyShader job void Renderer::loadShader(Shader *shader, HShader shaderHandle) { - Q_UNUSED(shader); + Q_UNUSED(shader) if (!m_dirtyShaders.contains(shaderHandle)) m_dirtyShaders.push_back(shaderHandle); } @@ -414,6 +414,7 @@ bool Renderer::accessOpenGLTexture(Qt3DCore::QNodeId nodeId, QOpenGLTexture **te QMutex **lock, bool readonly) { RHI_UNIMPLEMENTED; + Q_UNUSED(texture) Texture *tex = m_nodesManager->textureManager()->lookupResource(nodeId); if (!tex) @@ -1315,7 +1316,7 @@ void Renderer::lookForDirtyTextures() const QNodeIdVector imageIds = texture->textureImageIds(); // Does the texture reference any of the dirty texture images? - for (const QNodeId imageId : imageIds) { + for (const QNodeId &imageId : imageIds) { if (dirtyImageIds.contains(imageId)) { texture->addDirtyFlag(Texture::DirtyImageGenerators); break; @@ -2119,6 +2120,7 @@ void Renderer::performDraw(RenderCommand *command) void Renderer::performCompute(const RenderView *, RenderCommand *command) { RHI_UNIMPLEMENTED; + Q_UNUSED(command) //* { //* RHIShader *shader = //m_RHIResourceManagers->rhiShaderManager()->lookupResource(command->m_shaderId); @@ -2157,6 +2159,8 @@ static auto rhiIndexFormat(QAttribute::VertexBaseType type) bool Renderer::uploadBuffersForCommand(QRhiCommandBuffer *cb, const RenderView *rv, RenderCommand &command) { + Q_UNUSED(cb) + Q_UNUSED(rv) RHIGraphicsPipeline *graphicsPipeline = command.pipeline; if (!graphicsPipeline) return true; @@ -2283,6 +2287,7 @@ void uploadUniform(SubmissionContext &submissionContext, const PackUniformHash & bool Renderer::uploadUBOsForCommand(QRhiCommandBuffer *cb, const RenderView *rv, const RenderCommand &command) { + Q_UNUSED(cb) RHIGraphicsPipeline *pipeline = command.pipeline; if (!pipeline) return true; diff --git a/src/plugins/renderers/rhi/renderer/renderer_p.h b/src/plugins/renderers/rhi/renderer/renderer_p.h index 8cceca801..0e4c969c2 100644 --- a/src/plugins/renderers/rhi/renderer/renderer_p.h +++ b/src/plugins/renderers/rhi/renderer/renderer_p.h @@ -276,7 +276,7 @@ public: bool readonly) override; QSharedPointer<RenderBackendResourceAccessor> resourceAccessor() const override; - const GraphicsApiFilterData *contextInfo() const; + const GraphicsApiFilterData *contextInfo() const override; SubmissionContext *submissionContext() const; inline RenderStateSet *defaultRenderState() const { return m_defaultRenderStateSet; } diff --git a/src/plugins/renderers/rhi/renderer/renderview.cpp b/src/plugins/renderers/rhi/renderer/renderview.cpp index 789118f60..30652f2ac 100644 --- a/src/plugins/renderers/rhi/renderer/renderview.cpp +++ b/src/plugins/renderers/rhi/renderer/renderview.cpp @@ -1071,6 +1071,8 @@ void RenderView::setShaderAndUniforms(RenderCommand *command, ParameterInfoList const QVector<LightSource> &activeLightSources, EnvironmentLight *environmentLight) const { + Q_UNUSED(entity) + // The VAO Handle is set directly in the renderer thread so as to avoid having to use a mutex // here Set shader, technique, and effect by basically doing : // ShaderProgramManager[MaterialManager[frontentEntity->id()]->Effect->Techniques[TechniqueFilter->name]->RenderPasses[RenderPassFilter->name]]; diff --git a/src/plugins/renderers/rhi/textures/texture.cpp b/src/plugins/renderers/rhi/textures/texture.cpp index 53f9e62ca..751574c8c 100644 --- a/src/plugins/renderers/rhi/textures/texture.cpp +++ b/src/plugins/renderers/rhi/textures/texture.cpp @@ -255,6 +255,8 @@ QRhiTextureUploadEntry createUploadEntry(int mipLevel, int layer, int xOffset, i int zOffset, const QByteArray &bytes, const QTextureImageDataPtr &data) noexcept { + Q_UNUSED(zOffset) + Q_UNUSED(data) QRhiTextureSubresourceUploadDescription description; description.setData(bytes); description.setSourceTopLeft(QPoint(xOffset, yOffset)); diff --git a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp index fb61e4105..c655a1409 100644 --- a/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp +++ b/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp @@ -157,8 +157,8 @@ public: m_engine = nullptr; } - void onRegistered() { QRenderAspect::onRegistered(); } - void onUnregistered() { QRenderAspect::onUnregistered(); } + void onRegistered() override { QRenderAspect::onRegistered(); } + void onUnregistered() override { QRenderAspect::onUnregistered(); } Qt3DRender::Render::NodeManagers *nodeManagers() const { return d_func()->m_renderer->nodeManagers(); } Qt3DRender::Render::FrameGraphNode *frameGraphRoot() const { return d_func()->m_renderer->frameGraphRoot(); } diff --git a/tests/auto/render/picking/tst_picking.cpp b/tests/auto/render/picking/tst_picking.cpp index 20a1b0323..905ece958 100644 --- a/tests/auto/render/picking/tst_picking.cpp +++ b/tests/auto/render/picking/tst_picking.cpp @@ -74,6 +74,7 @@ public: QSphereGeometry *g = static_cast<QSphereGeometry *>(mesh->geometry()); QAttribute *positionAttr = static_cast<QAttribute *>(g->attributes().first()); Qt3DCore::QBuffer *vertexBuffer = static_cast<Qt3DCore::QBuffer *>(positionAttr->buffer()); + Q_UNUSED(vertexBuffer) transform->setTranslation(position); diff --git a/tests/manual/rhi/main.cpp b/tests/manual/rhi/main.cpp index 62ea0ab93..21617ac11 100644 --- a/tests/manual/rhi/main.cpp +++ b/tests/manual/rhi/main.cpp @@ -272,6 +272,7 @@ int main(int argc, char* argv[]) clearBuffer->setBuffers(Qt3DRender::QClearBuffers::ColorDepthBuffer); clearBuffer->setClearColor(QColor::fromRgbF(0.1, 0.5, 0.0, 1.0)); auto *noDraw = new Qt3DRender::QNoDraw(clearBuffer); + Q_UNUSED(noDraw) // RV 2 auto *cameraSelector1 = new Qt3DRender::QCameraSelector(surfaceSelector); |