4#ifndef QVIDEOWINDOW_P_H
5#define QVIDEOWINDOW_P_H
19#include <QOffscreenSurface>
20#include <qtextlayout.h>
22#include <qvideoframe.h>
23#include <private/qplatformvideosink_p.h>
24#include <private/qvideotexturehelper_p.h>
25#include <private/qvideoframetexturepool_p.h>
26#include <qbackingstore.h>
38 QRhi *
rhi()
const {
return m_rhi.get(); }
49 void updateSubtitle(QRhiResourceUpdateBatch *rub,
const QSize &frameSize);
51 void setupGraphicsPipeline(QRhiGraphicsPipeline *pipeline, QRhiShaderResourceBindings *bindings,
const QVideoFrameFormat &fmt);
53 QVideoWindow *
q =
nullptr;
95 explicit QVideoWindow(QScreen *screen =
nullptr);
96 explicit QVideoWindow(QWindow *parent);
97 ~QVideoWindow() override;
99 Q_INVOKABLE QVideoSink *videoSink()
const;
101 Qt::AspectRatioMode aspectRatioMode()
const;
104 void setAspectRatioMode(Qt::AspectRatioMode mode);
107 void aspectRatioModeChanged(Qt::AspectRatioMode mode);
110 bool event(QEvent *e) override;
111 void resizeEvent(QResizeEvent *) override;
114 void setVideoFrame(
const QVideoFrame &frame);
117 friend class QVideoWindowPrivate;
118 std::unique_ptr<QVideoWindowPrivate> d;
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
The QVideoFrame class represents a frame of video data.
void updateSubtitle(QRhiResourceUpdateBatch *rub, const QSize &frameSize)
std::unique_ptr< QRhiShaderResourceBindings > m_shaderResourceBindings
std::unique_ptr< QRhiShaderResourceBindings > m_subtitleResourceBindings
Qt::AspectRatioMode aspectRatioMode
QVideoTextureHelper::SubtitleLayout m_subtitleLayout
std::unique_ptr< QRhiGraphicsPipeline > m_subtitlePipeline
QVideoFrameTexturePool m_texturePool
std::unique_ptr< QRhiSwapChain > m_swapChain
std::unique_ptr< QRhiBuffer > m_uniformBuf
std::unique_ptr< QVideoSink > m_sink
std::unique_ptr< QRhiRenderPassDescriptor > m_renderPass
std::unique_ptr< QRhiGraphicsPipeline > m_graphicsPipeline
std::unique_ptr< QRhi > m_rhi
QRhi::Implementation m_graphicsApi
std::unique_ptr< QRhiTexture > m_subtitleTexture
QBackingStore * backingStore
void setupGraphicsPipeline(QRhiGraphicsPipeline *pipeline, QRhiShaderResourceBindings *bindings, const QVideoFrameFormat &fmt)
QVideoWindowPrivate(QVideoWindow *q)
std::unique_ptr< QRhiBuffer > m_subtitleUniformBuf
std::unique_ptr< QRhiBuffer > m_vertexBuf
std::unique_ptr< QRhiSampler > m_textureSampler
void updateTextures(QRhiResourceUpdateBatch *rub)
static QT_BEGIN_NAMESPACE QSurface::SurfaceType platformSurfaceType()
static QShader vwGetShader(const QString &name)
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h