From 5d4d598354c85de7bf33412b42a5693b4ac27d78 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 19 May 2020 07:29:14 +0200 Subject: Adapt to changes in NativeTexture in qtbase To make the API less error prone, we have changed the void pointer to the texture handle to a 64-bit in instead, since all handles are maximum 64-bit. Task-number: QTBUG-78638 Change-Id: I9d995d6a883b3377f57d7c5b19d4bc4e15aa347b Reviewed-by: Laszlo Agocs --- examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp | 6 ++---- .../rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp | 2 +- examples/quick/scenegraph/metaltextureimport/metaltextureimport.mm | 2 +- examples/quick/scenegraph/opengltextureinthread/threadrenderer.cpp | 4 ++-- .../quick/scenegraph/vulkantextureimport/vulkantextureimport.cpp | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) (limited to 'examples') diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp b/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp index cb84371fed..ccbac5cbed 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp @@ -367,10 +367,8 @@ void Window::updateQuick() if (!m_renderControl->initialize()) qWarning("Failed to initialize redirected Qt Quick rendering"); - // Redirect Qt Quick's output. (note that the QSGTexture::NativeTexture - // struct is expected to contain a pointer to the native object, even - // if the native object type is a pointer, such as ID3D11Texture2D*) - m_quickWindow->setRenderTarget(QQuickRenderTarget::fromNativeTexture({ &m_res.texture, 0 }, + // Redirect Qt Quick's output. + m_quickWindow->setRenderTarget(QQuickRenderTarget::fromNativeTexture({ quint64(m_res.texture), 0 }, QSize(QML_WIDTH, QML_HEIGHT), SAMPLE_COUNT)); diff --git a/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp index fb3c0b4f4f..dc9d310ff2 100644 --- a/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp +++ b/examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp @@ -182,7 +182,7 @@ void WindowSingleThreaded::createTexture() f->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); f->glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_textureSize.width(), m_textureSize.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); - m_quickWindow->setRenderTarget(QQuickRenderTarget::fromNativeTexture({ &m_textureId, 0 }, m_textureSize)); + m_quickWindow->setRenderTarget(QQuickRenderTarget::fromNativeTexture({ quint64(m_textureId), 0 }, m_textureSize)); } void WindowSingleThreaded::destroyTexture() diff --git a/examples/quick/scenegraph/metaltextureimport/metaltextureimport.mm b/examples/quick/scenegraph/metaltextureimport/metaltextureimport.mm index 61f5e7f8e1..e676ff2e5e 100644 --- a/examples/quick/scenegraph/metaltextureimport/metaltextureimport.mm +++ b/examples/quick/scenegraph/metaltextureimport/metaltextureimport.mm @@ -264,7 +264,7 @@ void CustomTextureNode::sync() [desc release]; QSGTexture *wrapper = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, - &m_texture, + quint64(m_texture), 0, m_size); diff --git a/examples/quick/scenegraph/opengltextureinthread/threadrenderer.cpp b/examples/quick/scenegraph/opengltextureinthread/threadrenderer.cpp index 8c07785926..6f6ec467dc 100644 --- a/examples/quick/scenegraph/opengltextureinthread/threadrenderer.cpp +++ b/examples/quick/scenegraph/opengltextureinthread/threadrenderer.cpp @@ -161,7 +161,7 @@ public: { // Our texture node must have a texture, so use the default 0 texture. GLuint id = 0; - m_texture = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, &id, 0, QSize(1, 1)); + m_texture = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, id, 0, QSize(1, 1)); setTexture(m_texture); setFiltering(QSGTexture::Linear); } @@ -202,7 +202,7 @@ public slots: delete m_texture; // note: include QQuickWindow::TextureHasAlphaChannel if the rendered content // has alpha. - m_texture = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, &newId, 0, QSize(1, 1)); + m_texture = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, newId, 0, QSize(1, 1)); setTexture(m_texture); markDirty(DirtyMaterial); diff --git a/examples/quick/scenegraph/vulkantextureimport/vulkantextureimport.cpp b/examples/quick/scenegraph/vulkantextureimport/vulkantextureimport.cpp index 964984085e..72833df7f5 100644 --- a/examples/quick/scenegraph/vulkantextureimport/vulkantextureimport.cpp +++ b/examples/quick/scenegraph/vulkantextureimport/vulkantextureimport.cpp @@ -717,7 +717,7 @@ void CustomTextureNode::sync() freeTexture(); buildTexture(m_size); QSGTexture *wrapper = m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, - &m_texture, + quint64(m_texture), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, m_size); setTexture(wrapper); -- cgit v1.2.3