mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-26 03:52:01 +02:00
Merge pull request #4651 from Laserlicht/optimize_vid
optimize videowindow (black bg)
This commit is contained in:
commit
c983aa3887
@ -34,6 +34,7 @@
|
||||
#include "../widgets/TextControls.h"
|
||||
#include "../widgets/ObjectLists.h"
|
||||
#include "../widgets/VideoWidget.h"
|
||||
#include "../widgets/GraphicalPrimitiveCanvas.h"
|
||||
|
||||
#include "../render/Canvas.h"
|
||||
#include "../render/IRenderHandler.h"
|
||||
@ -1616,22 +1617,26 @@ VideoWindow::VideoWindow(VideoPath video, ImagePath rim, bool showBackground, fl
|
||||
|
||||
addUsedEvents(LCLICK | KEYBOARD);
|
||||
|
||||
if(showBackground)
|
||||
backgroundAroundWindow = std::make_shared<CFilledTexture>(ImagePath::builtin("DIBOXBCK"), Rect(0, 0, GH.screenDimensions().x, GH.screenDimensions().y));
|
||||
|
||||
if(!rim.empty())
|
||||
{
|
||||
setBackground(rim);
|
||||
videoPlayer = std::make_shared<VideoWidgetOnce>(Point(80, 186), video, true, [this](){ exit(false); });
|
||||
pos = center(Rect(0, 0, 800, 600));
|
||||
}
|
||||
else
|
||||
{
|
||||
blackBackground = std::make_shared<GraphicalPrimitiveCanvas>(Rect(0, 0, GH.screenDimensions().x, GH.screenDimensions().y));
|
||||
videoPlayer = std::make_shared<VideoWidgetOnce>(Point(0, 0), video, true, scaleFactor, [this](){ exit(false); });
|
||||
pos = center(Rect(0, 0, videoPlayer->pos.w, videoPlayer->pos.h));
|
||||
blackBackground->addBox(Point(0, 0), Point(pos.x, pos.y), Colors::BLACK);
|
||||
}
|
||||
|
||||
if(showBackground)
|
||||
backgroundAroundWindow = std::make_shared<CFilledTexture>(ImagePath::builtin("DIBOXBCK"), Rect(-pos.x, -pos.y, GH.screenDimensions().x, GH.screenDimensions().y));
|
||||
if(backgroundAroundWindow)
|
||||
backgroundAroundWindow->pos.moveTo(Point(0, 0));
|
||||
|
||||
if(!rim.empty())
|
||||
setBackground(rim);
|
||||
}
|
||||
|
||||
void VideoWindow::exit(bool skipped)
|
||||
|
@ -44,6 +44,7 @@ class CFilledTexture;
|
||||
class IImage;
|
||||
class VideoWidget;
|
||||
class VideoWidgetOnce;
|
||||
class GraphicalPrimitiveCanvas;
|
||||
|
||||
enum class EUserEvent;
|
||||
|
||||
@ -506,6 +507,7 @@ class VideoWindow : public CWindowObject
|
||||
{
|
||||
std::shared_ptr<VideoWidgetOnce> videoPlayer;
|
||||
std::shared_ptr<CFilledTexture> backgroundAroundWindow;
|
||||
std::shared_ptr<GraphicalPrimitiveCanvas> blackBackground;
|
||||
|
||||
std::function<void(bool)> closeCb;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user