MCPcopy Create free account
hub / github.com/axmolengine/axmol / rescaleTo

Method rescaleTo

core/ui/UIMediaPlayer.cpp:88–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86 }
87
88 void rescaleTo(MediaPlayer* videoView)
89 {
90 auto& videoSize = _vrender->getContentSize();
91 if (videoSize.x > 0 && videoSize.y > 0)
92 { // rescale video to view node
93 auto viewSize = videoView->getContentSize();
94 if (viewSize.x > 0 && viewSize.y > 0)
95 {
96 if (_vpixelDesc._rotation % 180 != 0)
97 std::swap(viewSize.x, viewSize.y);
98 _vrender->setRotation(_vpixelDesc._rotation);
99
100 if (!videoView->isKeepAspectRatioEnabled())
101 {
102 const auto scale = Vec2(viewSize.x / videoSize.x, viewSize.y / videoSize.y);
103 _vrender->setScale(scale.x, scale.y);
104
105 auto* mediaController = videoView->getMediaController();
106 if (mediaController)
107 {
108 if (mediaController->getOrientation() == MediaController::Orientation::RotatedLeft)
109 {
110 mediaController->setContentSize(videoSize *
111 Vec2(viewSize.y / videoSize.x, viewSize.x / videoSize.y));
112 mediaController->setRotation(-90);
113 }
114 else if (mediaController->getOrientation() == MediaController::Orientation::RotatedRight)
115 {
116 mediaController->setContentSize(videoSize *
117 Vec2(viewSize.y / videoSize.x, viewSize.x / videoSize.y));
118 mediaController->setRotation(90);
119 }
120 else
121 {
122 mediaController->setContentSize(videoSize * scale);
123 }
124 }
125 }
126 else
127 {
128 const auto aspectRatio = (std::min)(viewSize.x / videoSize.x, viewSize.y / (videoSize.y));
129
130 _vrender->setScale(aspectRatio);
131
132 auto* mediaController = videoView->getMediaController();
133 if (mediaController)
134 {
135 if (mediaController->getOrientation() == MediaController::Orientation::RotatedLeft)
136 {
137 mediaController->setContentSize(Vec2(videoSize.y * aspectRatio, videoSize.x * aspectRatio));
138 mediaController->setRotation(-90);
139 }
140 else if (mediaController->getOrientation() == MediaController::Orientation::RotatedRight)
141 {
142 mediaController->setContentSize(Vec2(videoSize.y * aspectRatio, videoSize.x * aspectRatio));
143 mediaController->setRotation(90);
144 }
145 else

Callers 1

drawMethod · 0.80

Calls 9

centerNodeFunction · 0.85
swapFunction · 0.50
Vec2Function · 0.50
getContentSizeMethod · 0.45
setRotationMethod · 0.45
setScaleMethod · 0.45
getOrientationMethod · 0.45
setContentSizeMethod · 0.45
setVisibleMethod · 0.45

Tested by

no test coverage detected