| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /******************************************************************************
- Copyright (C) 2014 by Hugh Bailey <[email protected]>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
- #pragma once
- static inline void GetScaleAndCenterPos(int baseCX, int baseCY, int windowCX,
- int windowCY, int &x, int &y,
- float &scale)
- {
- double windowAspect, baseAspect;
- int newCX, newCY;
- windowAspect = double(windowCX) / double(windowCY);
- baseAspect = double(baseCX) / double(baseCY);
- if (windowAspect > baseAspect) {
- scale = float(windowCY) / float(baseCY);
- newCX = int(double(windowCY) * baseAspect);
- newCY = windowCY;
- } else {
- scale = float(windowCX) / float(baseCX);
- newCX = windowCX;
- newCY = int(float(windowCX) / baseAspect);
- }
- x = windowCX / 2 - newCX / 2;
- y = windowCY / 2 - newCY / 2;
- }
- static inline void GetCenterPosFromFixedScale(int baseCX, int baseCY,
- int windowCX, int windowCY,
- int &x, int &y, float scale)
- {
- x = (float(windowCX) - float(baseCX) * scale) / 2.0f;
- y = (float(windowCY) - float(baseCY) * scale) / 2.0f;
- }
- static inline QSize GetPixelSize(QWidget *widget)
- {
- return widget->size() * widget->devicePixelRatioF();
- }
|