From 5970f3de9ef75f819eae79233f855996b5173b16 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 8 Jun 2021 14:50:41 +0400 Subject: [PATCH] Show video paused icon. --- .../icons/calls/video_large_paused.png | Bin 0 -> 1638 bytes .../icons/calls/video_large_paused@2x.png | Bin 0 -> 3028 bytes .../icons/calls/video_large_paused@3x.png | Bin 0 -> 4758 bytes Telegram/SourceFiles/calls/calls.style | 1 + .../group/calls_group_viewport_opengl.cpp | 62 +++++++++++++----- .../calls/group/calls_group_viewport_opengl.h | 1 + .../group/calls_group_viewport_raster.cpp | 1 + 7 files changed, 49 insertions(+), 16 deletions(-) create mode 100644 Telegram/Resources/icons/calls/video_large_paused.png create mode 100644 Telegram/Resources/icons/calls/video_large_paused@2x.png create mode 100644 Telegram/Resources/icons/calls/video_large_paused@3x.png diff --git a/Telegram/Resources/icons/calls/video_large_paused.png b/Telegram/Resources/icons/calls/video_large_paused.png new file mode 100644 index 0000000000000000000000000000000000000000..acf2553a815da71e65db46511aad82dc12a8f4e7 GIT binary patch literal 1638 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 TOexy`Wz^;CAt6QfZR|sq##+WMQ}z+E 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 O2^s2|=+vO?qy7gzip+)p literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/calls/calls.style b/Telegram/SourceFiles/calls/calls.style index a463f33314..348a1f503b 100644 --- a/Telegram/SourceFiles/calls/calls.style +++ b/Telegram/SourceFiles/calls/calls.style @@ -1248,3 +1248,4 @@ groupCallNiceTooltipLabel: FlatLabel(defaultImportantTooltipLabel) { } } groupCallNiceTooltipTop: 4px; +groupCallPaused: icon {{ "calls/video_large_paused", groupCallVideoTextFg }}; diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp index 9d7320dec6..36ab25a9c7 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp @@ -32,7 +32,7 @@ constexpr auto kBlurOpacity = 0.65; constexpr auto kDitherNoiseAmount = 0.002; constexpr auto kMinCameraVisiblePart = 0.75; -constexpr auto kQuads = 7; +constexpr auto kQuads = 8; constexpr auto kQuadVertices = kQuads * 4; constexpr auto kQuadValues = kQuadVertices * 4; constexpr auto kValues = kQuadValues + 8; // Blur texture coordinates. @@ -370,6 +370,7 @@ void Viewport::RendererGL::init( }), FragmentShader({ FragmentSampleARGB32Texture(), + FragmentGlobalOpacity(), })); validateNoiseTexture(f, 0); @@ -569,6 +570,17 @@ void Viewport::RendererGL::paintTile( texCoords.end()); } + // Paused. + const auto &pauseIcon = st::groupCallPaused; + const auto pausedIcon = _buttons.texturedRect( + QRect( + geometry.x() + (geometry.width() - pauseIcon.width()) / 2, + geometry.y() + (geometry.height() - pauseIcon.height()) / 2, + pauseIcon.width(), + pauseIcon.height()), + _paused); + const auto pausedRect = transformRect(pausedIcon.geometry); + // Pin. const auto pin = _buttons.texturedRect( tile->pinInner().translated(x, y), @@ -708,6 +720,19 @@ void Viewport::RendererGL::paintTile( nameRect.left(), nameRect.bottom(), name.texture.left(), name.texture.top(), + + // Paused icon. + pausedRect.left(), pausedRect.top(), + pausedIcon.texture.left(), pausedIcon.texture.bottom(), + + pausedRect.right(), pausedRect.top(), + pausedIcon.texture.right(), pausedIcon.texture.bottom(), + + pausedRect.right(), pausedRect.bottom(), + pausedIcon.texture.right(), pausedIcon.texture.top(), + + pausedRect.left(), pausedRect.bottom(), + pausedIcon.texture.left(), pausedIcon.texture.top(), }; _frameBuffer->bind(); @@ -779,7 +804,7 @@ void Viewport::RendererGL::paintTile( const auto pinVisible = _owner->wide() && (pin.geometry.bottom() > y); - if (nameShift == fullNameShift && !pinVisible) { + if (nameShift == fullNameShift && !pinVisible && paused == 0.) { return; } @@ -796,15 +821,17 @@ void Viewport::RendererGL::paintTile( f.glActiveTexture(GL_TEXTURE0); _buttons.bind(f); + if (paused > 0) { + _imageProgram->setUniformValue("g_opacity", GLfloat(paused)); + FillTexturedRectangle(f, &*_imageProgram, 30); + } + _imageProgram->setUniformValue("g_opacity", GLfloat(1.f)); + if (pinVisible) { FillTexturedRectangle(f, &*_imageProgram, 14); FillTexturedRectangle(f, &*_imageProgram, 18); } - if (paused > 0.) { - - } - if (nameShift == fullNameShift) { return; } @@ -1052,6 +1079,7 @@ void Viewport::RendererGL::ensureButtonsImage() { const auto pinOffSize = VideoTile::PinInnerSize(false); const auto backSize = VideoTile::BackInnerSize(); const auto muteSize = st::groupCallVideoCrossLine.icon.size(); + const auto pausedSize = st::groupCallPaused.size(); const auto fullSize = QSize( std::max({ @@ -1059,11 +1087,13 @@ void Viewport::RendererGL::ensureButtonsImage() { pinOffSize.width(), backSize.width(), 2 * muteSize.width(), + pausedSize.width(), }), (pinOnSize.height() + pinOffSize.height() + backSize.height() - + muteSize.height())); + + muteSize.height() + + pausedSize.height())); const auto imageSize = fullSize * factor; auto image = _buttons.takeImage(); if (image.size() != imageSize) { @@ -1085,9 +1115,8 @@ void Viewport::RendererGL::ensureButtonsImage() { &_pinBackground, &_pinIcon); - _pinOff = QRect( - QPoint(0, pinOnSize.height()) * factor, - pinOffSize * factor); + const auto pinOffTop = pinOnSize.height(); + _pinOff = QRect(QPoint(0, pinOffTop) * factor, pinOffSize * factor); VideoTile::PaintPinButton( p, false, @@ -1097,9 +1126,8 @@ void Viewport::RendererGL::ensureButtonsImage() { &_pinBackground, &_pinIcon); - _back = QRect( - QPoint(0, pinOnSize.height() + pinOffSize.height()) * factor, - backSize * factor); + const auto backTop = pinOffTop + pinOffSize.height(); + _back = QRect(QPoint(0, backTop) * factor, backSize * factor); VideoTile::PaintBackButton( p, 0, @@ -1107,9 +1135,7 @@ void Viewport::RendererGL::ensureButtonsImage() { fullSize.width(), &_pinBackground); - const auto muteTop = pinOnSize.height() - + pinOffSize.height() - + backSize.height(); + const auto muteTop = backTop + backSize.height(); _muteOn = QRect(QPoint(0, muteTop) * factor, muteSize * factor); _muteIcon.paint(p, { 0, muteTop }, 1.); @@ -1117,6 +1143,10 @@ void Viewport::RendererGL::ensureButtonsImage() { QPoint(muteSize.width(), muteTop) * factor, muteSize * factor); _muteIcon.paint(p, { muteSize.width(), muteTop }, 0.); + + const auto pausedTop = muteTop + muteSize.height(); + _paused = QRect(QPoint(0, pausedTop) * factor, pausedSize * factor); + st::groupCallPaused.paint(p, 0, pausedTop, fullSize.width()); } _buttons.setImage(std::move(image)); } diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.h b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.h index 7b93247e04..6409a52e24 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.h +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.h @@ -155,6 +155,7 @@ private: QRect _back; QRect _muteOn; QRect _muteOff; + QRect _paused; Ui::GL::Image _names; std::vector _tileData; diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp index a1e1b95d21..5c6a366568 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp @@ -232,6 +232,7 @@ void Viewport::RendererSW::paintTileControls( if (_pausedFrame) { p.fillRect(x, y, width, height, QColor(0, 0, 0, kShadowMaxAlpha)); + st::groupCallPaused.paintInCenter(p, { x, y, width, height }); } const auto shown = _owner->_controlsShownRatio;