2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FGrp_CoordinateSystemDeviceSpec.cpp
20 * @brief This is the implementation file for the internal class.
26 #include <FBaseErrors.h>
28 #include <FBaseInternalTypes.h>
29 #include <FApp_AppInfo.h>
30 #include <FBaseSysLog.h>
32 #include "FGrp_CoordinateSystem.h"
35 using namespace Tizen::Base;
36 using namespace Tizen::Graphics;
39 namespace Tizen { namespace Graphics
45 template<int m, int n>
50 value = Gcd <n, m % n>::value
63 template<int simplSrc, int simplTrg>
66 static int ScaleDisplacement(int srcVal);
67 static int ScaleLength(int srcVal);
70 template<int src, int trg>
75 gcd = Gcd <src, trg>::value,
76 simpleSrc = src / gcd,
77 simpleTrg = trg / gcd,
80 static int ScaleDisplacement(int srcVal)
82 return SimpleScaler <simpleSrc, simpleTrg>::ScaleDisplacement(srcVal);
85 static int ScaleLength(int srcVal)
87 return SimpleScaler <simpleSrc, simpleTrg>::ScaleLength(srcVal);
91 template<typename HScale, typename VScale>
93 : public _ICoordinateSystemTransformer
99 virtual int TransformHorizontal(int width) const
101 return HScale::ScaleLength(width);
104 virtual int TransformVertical(int height) const
106 return VScale::ScaleLength(height);
109 virtual int Transform(int scalar) const
111 return VScale::ScaleLength(scalar);
114 virtual float TransformHorizontal(float width) const
116 return GetHorizontalScaleFactor() * width;
119 virtual float TransformVertical(float height) const
121 return GetVerticalScaleFactor() * height;
124 virtual float Transform(float scalar) const
126 return GetVerticalScaleFactor() * scalar;
129 virtual Point Transform(const Point& point) const
131 return Point(HScale::ScaleDisplacement(point.x), VScale::ScaleDisplacement(point.y));
134 virtual Dimension Transform(const Dimension& dim) const
136 return Dimension(HScale::ScaleLength(dim.width), VScale::ScaleLength(dim.height));
139 virtual Rectangle Transform(const Rectangle& rect) const
141 int x = HScale::ScaleDisplacement(rect.x);
142 int y = VScale::ScaleDisplacement(rect.y);
143 int w = HScale::ScaleLength(rect.width);
144 int h = VScale::ScaleLength(rect.height);
146 if (Tizen::App::_AppInfo::GetApiVersion() <= _API_VERSION_1_2)
148 // From Osp API 2.0, 'Adjacent Algorithm' is not used any more.
149 w = HScale::ScaleDisplacement(rect.x + rect.width) - x;
150 h = VScale::ScaleDisplacement(rect.y + rect.height) - y;
153 return Rectangle(x, y, w, h);
156 virtual int TransformFloatToInt(float scalar) const
158 return VScale::ScaleLength(static_cast<int>(scalar));
161 virtual int TransformHorizontalFloatToInt(float width) const
163 return HScale::ScaleLength(static_cast<int>(width));
166 virtual int TransformVerticalFloatToInt(float height) const
168 return VScale::ScaleLength(static_cast<int>(height));
171 virtual float GetHorizontalScaleFactor(void) const
173 const int TEST_VALUE = 1000000;
174 return float(HScale::ScaleLength(TEST_VALUE)) / float(TEST_VALUE);
177 virtual float GetVerticalScaleFactor(void) const
179 const int TEST_VALUE = 1000000;
180 return float(VScale::ScaleLength(TEST_VALUE)) / float(TEST_VALUE);
185 struct SimpleScaler <1, 2>
187 static int ScaleDisplacement(int srcVal)
192 static int ScaleLength(int srcVal)
199 struct SimpleScaler <2, 1>
201 static int ScaleDisplacement(int srcVal)
206 static int ScaleLength(int srcVal)
208 int isNotMinus = (srcVal >= 0);
210 return (srcVal + 1 * isNotMinus) >> 1;
216 const long long MAX_INT = 0x7FFFFFFF;
217 const long long MIN_INT = -MAX_INT - 1;
221 struct SimpleScaler <2, 3>
223 static int ScaleDisplacement(int srcVal)
225 long long tempSrc = srcVal;
229 tempSrc = tempSrc * 3 / 2;
231 return (tempSrc > MAX_INT) ? MAX_INT : int(tempSrc);
235 tempSrc = (tempSrc * 3 - 1) / 2;
237 return (tempSrc < MIN_INT) ? MIN_INT : int(tempSrc);
241 static int ScaleLength(int srcVal)
243 long long tempSrc = srcVal;
247 tempSrc = tempSrc * 3 / 2;
249 return (tempSrc > MAX_INT) ? MAX_INT : int(tempSrc);
253 tempSrc = (tempSrc * 3 - 1) / 2;
255 return (tempSrc < MIN_INT) ? MIN_INT : int(tempSrc);
261 struct SimpleScaler <3, 2>
263 static int ScaleDisplacement(int srcVal)
265 long long tempSrc = srcVal;
269 tempSrc = (tempSrc + 1) * 2 / 3;
271 return (tempSrc > MAX_INT) ? MAX_INT : int(tempSrc);
275 tempSrc = tempSrc * 2 / 3;
277 return (tempSrc < MIN_INT) ? MIN_INT : int(tempSrc);
281 static int ScaleLength(int srcVal)
283 long long tempSrc = srcVal;
287 tempSrc = (tempSrc + 1) * 2 / 3;
289 return (tempSrc > 0x7FFFFFFF) ? 0x7FFFFFFF : int(tempSrc);
293 tempSrc = tempSrc * 2 / 3;
295 return (tempSrc < MIN_INT) ? MIN_INT : int(tempSrc);
301 struct SimpleScaler <3, 4>
303 static int ScaleDisplacement(int srcVal)
305 return (srcVal >= 0) ? (srcVal * 4 / 3) : ((srcVal * 4 - 1) / 3);
308 static int ScaleLength(int srcVal)
310 return (srcVal >= 0) ? (srcVal * 4 / 3) : ((srcVal * 4 - 1) / 3);
315 struct SimpleScaler <4, 3>
317 static int ScaleDisplacement(int srcVal)
319 return (srcVal > 0) ? ((srcVal + 1) * 3 / 4) : (srcVal * 3 / 4);
322 static int ScaleLength(int srcVal)
324 return (srcVal > 0) ? ((srcVal + 1) * 3 / 4) : (srcVal * 3 / 4);
329 struct SimpleScaler <5, 6>
331 static int ScaleDisplacement(int srcVal)
333 return (srcVal >= 0) ? (srcVal * 6 / 5) : ((srcVal * 6 - 1) / 5);
336 static int ScaleLength(int srcVal)
338 return (srcVal >= 0) ? (srcVal * 6 / 5) : ((srcVal * 6 - 1) / 5);
343 struct SimpleScaler <6, 5>
345 static int ScaleDisplacement(int srcVal)
347 return (srcVal > 0) ? ((srcVal + 1) * 5 / 6) : (srcVal * 5 / 6);
350 static int ScaleLength(int srcVal)
352 return (srcVal > 0) ? ((srcVal + 1) * 5 / 6) : (srcVal * 5 / 6);
357 struct SimpleScaler <3, 5>
359 static int ScaleDisplacement(int srcVal)
361 return (srcVal >= 0) ? (srcVal * 5 / 3) : ((srcVal * 5 - 1) / 3);
364 static int ScaleLength(int srcVal)
366 return (srcVal >= 0) ? (srcVal * 5 / 3) : ((srcVal * 5 - 1) / 3);
371 struct SimpleScaler <5, 3>
373 static int ScaleDisplacement(int srcVal)
375 return (srcVal > 0) ? ((srcVal + 1) * 3 / 5) : (srcVal * 3 / 5);
378 static int ScaleLength(int srcVal)
380 return (srcVal > 0) ? ((srcVal + 1) * 3 / 5) : (srcVal * 3 / 5);
385 struct SimpleScaler <8, 9>
387 static int ScaleDisplacement(int srcVal)
389 return (srcVal >= 0) ? (srcVal * 9 / 8) : ((srcVal * 9 - 1) / 8);
392 static int ScaleLength(int srcVal)
394 return (srcVal >= 0) ? (srcVal * 9 / 8) : ((srcVal * 9 - 1) / 8);
399 struct SimpleScaler <9, 8>
401 static int ScaleDisplacement(int srcVal)
403 return (srcVal > 0) ? ((srcVal + 1) * 8 / 9) : (srcVal * 8 / 9);
406 static int ScaleLength(int srcVal)
408 return (srcVal > 0) ? ((srcVal + 1) * 8 / 9) : (srcVal * 8 / 9);
413 struct SimpleScaler <1, 3>
415 static int ScaleDisplacement(int srcVal)
417 return (srcVal >= 0) ? (srcVal * 3 / 1) : ((srcVal * 3 - 1) / 1);
420 static int ScaleLength(int srcVal)
422 return (srcVal >= 0) ? (srcVal * 3 / 1) : ((srcVal * 3 - 1) / 1);
427 struct SimpleScaler <3, 1>
429 static int ScaleDisplacement(int srcVal)
431 return (srcVal > 0) ? ((srcVal + 1) * 1 / 3) : (srcVal * 1 / 3);
434 static int ScaleLength(int srcVal)
436 return (srcVal > 0) ? ((srcVal + 1) * 1 / 3) : (srcVal * 1 / 3);
441 struct SimpleScaler <4, 9>
443 static int ScaleDisplacement(int srcVal)
445 return (srcVal >= 0) ? (srcVal * 9 / 4) : ((srcVal * 9 - 1) / 4);
448 static int ScaleLength(int srcVal)
450 return (srcVal >= 0) ? (srcVal * 9 / 4) : ((srcVal * 9 - 1) / 4);
455 struct SimpleScaler <9, 4>
457 static int ScaleDisplacement(int srcVal)
459 return (srcVal > 0) ? ((srcVal + 1) * 4 / 9) : (srcVal * 4 / 9);
462 static int ScaleLength(int srcVal)
464 return (srcVal > 0) ? ((srcVal + 1) * 4 / 9) : (srcVal * 4 / 9);
472 _CreateCoordinateTransformer(_ICoordinateSystemTransformer*& pTransformer, const Dimension& srcDim, const Dimension& trgDim)
474 if (srcDim.width == 0 || srcDim.height == 0)
481 _Scaler(int src_, int trg_)
487 int ScaleDisplacement(int srcVal) const
491 return (srcVal > 0) ? ((srcVal + 1) * trg / src) : (srcVal * trg / src);
495 return (srcVal >= 0) ? (srcVal * trg / src) : ((srcVal * trg - 1) / src);
501 int ScaleLength(int srcVal) const
503 return ScaleDisplacement(srcVal);
511 : public _ICoordinateSystemTransformer
514 _Xformer(const Dimension& srcDim, const Dimension& trgDim)
515 : __scalerH(srcDim.width, trgDim.width)
516 , __scalerV(srcDim.height, trgDim.height)
517 , __scaleFactorH(trgDim.width * 1.0f / srcDim.width)
518 , __scaleFactorV(trgDim.height * 1.0f / srcDim.height)
522 virtual int TransformHorizontal(int width) const
524 return __scalerH.ScaleLength(width);
527 virtual int TransformVertical(int height) const
529 return __scalerV.ScaleLength(height);
532 virtual int Transform(int scalar) const
534 return __scalerV.ScaleLength(scalar);
537 virtual float TransformHorizontal(float width) const
539 return width * __scaleFactorH;
542 virtual float TransformVertical(float height) const
544 return height * __scaleFactorV;
547 virtual float Transform(float scalar) const
549 return scalar * __scaleFactorV;;
552 virtual Point Transform(const Point& point) const
554 return Point(__scalerH.ScaleDisplacement(point.x), __scalerV.ScaleDisplacement(point.y));
557 virtual Dimension Transform(const Dimension& dim) const
559 return Dimension(__scalerH.ScaleLength(dim.width), __scalerV.ScaleLength(dim.height));
562 virtual Rectangle Transform(const Rectangle& rect) const
564 int x = __scalerH.ScaleDisplacement(rect.x);
565 int y = __scalerV.ScaleDisplacement(rect.y);
566 int w = __scalerH.ScaleLength(rect.width);
567 int h = __scalerV.ScaleLength(rect.height);
569 return Rectangle(x, y, w, h);
572 virtual int TransformFloatToInt(float scalar) const
574 return __scalerV.ScaleLength(static_cast<int>(scalar));
577 virtual int TransformHorizontalFloatToInt(float width) const
579 return __scalerH.ScaleLength(static_cast<int>(width));
582 virtual int TransformVerticalFloatToInt(float height) const
584 return __scalerV.ScaleLength(static_cast<int>(height));
587 virtual float GetHorizontalScaleFactor(void) const
589 return __scaleFactorH;
592 virtual float GetVerticalScaleFactor(void) const
594 return __scaleFactorV;
601 float __scaleFactorH;
602 float __scaleFactorV;
606 pTransformer = new (std::nothrow) _Xformer(srcDim, trgDim);
608 return (pTransformer) ? E_SUCCESS : E_SYSTEM;
611 }} // Tizen::Graphics
614 namespace Tizen { namespace Graphics
617 template<_LogicalResolution LogRes>
622 template<_PhysicalResolution PhyRes>
627 template<_BaseScreenSize ScrRes>
634 struct LogResTraits <RESOLUTION_LOGICAL_240>
636 enum { WIDTH = 240 };
640 struct LogResTraits <RESOLUTION_LOGICAL_320>
642 enum { WIDTH = 320 };
646 struct LogResTraits <RESOLUTION_LOGICAL_480>
648 enum { WIDTH = 480 };
652 struct LogResTraits <RESOLUTION_LOGICAL_720>
654 enum { WIDTH = 720 };
658 struct LogResTraits <RESOLUTION_LOGICAL_800>
660 enum { WIDTH = 800 };
664 struct LogResTraits <RESOLUTION_LOGICAL_1080>
666 enum { WIDTH = 1080 };
670 struct LogResTraits <RESOLUTION_LOGICAL_1600>
672 enum { WIDTH = 1600 };
675 //_PhysicalResolution
677 struct PhyResTraits <RESOLUTION_PHYSICAL_WVGA>
679 enum { WIDTH = 480, HEIGHT = 800 };
683 struct PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>
685 enum { WIDTH = 240, HEIGHT = 400 };
689 struct PhyResTraits <RESOLUTION_PHYSICAL_HVGA>
691 enum { WIDTH = 320, HEIGHT = 480 };
695 struct PhyResTraits <RESOLUTION_PHYSICAL_HD>
697 enum { WIDTH = 720, HEIGHT = 1280 };
702 struct ScrResTraits <BASE_SCREEN_SIZE_NORMAL>
704 enum { WIDTH = 720 };
708 struct ScrResTraits <BASE_SCREEN_SIZE_LARGE>
710 enum { WIDTH = 1440 };
715 _GetStringResolution(_LogicalResolution res)
719 case RESOLUTION_LOGICAL_DEFAULT:
721 case RESOLUTION_LOGICAL_240:
723 case RESOLUTION_LOGICAL_320:
725 case RESOLUTION_LOGICAL_360:
727 case RESOLUTION_LOGICAL_480:
729 case RESOLUTION_LOGICAL_720:
731 case RESOLUTION_LOGICAL_800:
733 case RESOLUTION_LOGICAL_960:
735 case RESOLUTION_LOGICAL_1080:
737 case RESOLUTION_LOGICAL_1440:
739 case RESOLUTION_LOGICAL_1600:
742 return "Unknown resolution";
747 _GetStringResolution(_PhysicalResolution res)
751 case RESOLUTION_PHYSICAL_DEFAULT:
753 case RESOLUTION_PHYSICAL_WVGA:
755 case RESOLUTION_PHYSICAL_WQVGA:
757 case RESOLUTION_PHYSICAL_HVGA:
759 case RESOLUTION_PHYSICAL_HD:
761 case RESOLUTION_PHYSICAL_HD1080:
763 case RESOLUTION_PHYSICAL_WXGA:
765 case RESOLUTION_PHYSICAL_WQXGA:
768 return "Unknown resolution";
774 _GetIntegerResolution(_LogicalResolution res)
778 case RESOLUTION_LOGICAL_240:
780 case RESOLUTION_LOGICAL_320:
782 case RESOLUTION_LOGICAL_360:
784 case RESOLUTION_LOGICAL_480:
786 case RESOLUTION_LOGICAL_720:
788 case RESOLUTION_LOGICAL_800:
790 case RESOLUTION_LOGICAL_960:
792 case RESOLUTION_LOGICAL_1080:
794 case RESOLUTION_LOGICAL_1440:
796 case RESOLUTION_LOGICAL_1600:
804 _GetIntegerResolution(_PhysicalResolution res)
808 case RESOLUTION_PHYSICAL_WVGA:
810 case RESOLUTION_PHYSICAL_WQVGA:
812 case RESOLUTION_PHYSICAL_HVGA:
814 case RESOLUTION_PHYSICAL_HD:
816 case RESOLUTION_PHYSICAL_HD1080:
818 case RESOLUTION_PHYSICAL_WXGA:
820 case RESOLUTION_PHYSICAL_WQXGA:
828 _GetIntegerResolution(_BaseScreenSize res)
832 case BASE_SCREEN_SIZE_NORMAL:
834 case BASE_SCREEN_SIZE_LARGE:
841 /*****************************************************************************************
842 * Supported transformations
844 * - Normal_480 to Large_WQVGA Large * 480 : Normal * WQVGA
846 **************************Normal to Normal(48)**************************
847 * - Normal_240 to Normal_WVGA 480 * 240 (1) : 480 * 480 (2)
848 * - Normal_WVGA to Normal_240 480 * 480 (2) : 480 * 240 (1)
849 * - Normal_240 to Normal_HVGA 480 * 240 (3) : 480 * 320 (4)
850 * - Normal_HVGA to Normal_240 480 * 320 (4) : 480 * 240 (3)
851 * - Normal_240 to Normal_HD 480 * 240 (1) : 480 * 720 (3)
852 * - Normal_HD to Normal_240 480 * 720 (3) : 480 * 240 (1)
854 * - Normal_320 to Normal_WQVGA 480 * 320 (4) : 480 * 240 (3)
855 * - Normal_WQVGA to Normal_320 480 * 240 (3) : 480 * 320 (4)
856 * - Normal_320 to Normal_WVGA 480 * 320 (2) : 480 * 480 (3)
857 * - Normal_WVGA to Normal_320 480 * 480 (3) : 480 * 320 (2)
858 * - Normal_320 to Normal_HD 480 * 320 (4) : 480 * 720 (9)
859 * - Normal_HD to Normal_320 480 * 720 (9) : 480 * 320 (4)
861 * - Normal_480 to Normal_WQVGA 480 * 480 (2) : 480 * 240 (1)
862 * - Normal_WQVGA to Normal_480 480 * 240 (1) : 480 * 480 (2)
863 * - Normal_480 to Normal_HVGA 480 * 480 (3) : 480 * 320 (2)
864 * - Normal_HVGA to Normal_480 480 * 320 (2) : 480 * 480 (3)
865 * - Normal_480 to Normal_HD 480 * 480 (2) : 480 * 720 (3)
866 * - Normal_HD to Normal_480 480 * 720 (3) : 480 * 480 (2)
868 * - Normal_720 to Normal_WQVGA 480 * 720 (3) : 480 * 240 (1)
869 * - Normal_WQVGA to Normal_720 480 * 240 (1) : 480 * 720 (3)
870 * - Normal_720 to Normal_WVGA 480 * 720 (3) : 480 * 480 (2)
871 * - Normal_WVGA to Normal_720 480 * 480 (2) : 480 * 720 (3)
872 * - Normal_720 to Normal_HVGA 480 * 720 (9) : 480 * 320 (4)
873 * - Normal_HVGA to Normal_720 480 * 320 (4) : 480 * 720 (9)
875 * - Normal_800 to Normal_WQVGA 480 * 800 (10) : 480 * 240 (3)
876 * - Normal_WQVGA to Normal_800 480 * 240 (3) : 480 * 800 (10)
877 * - Normal_800 to Normal_WVGA 480 * 800 (5) : 480 * 480 (3)
878 * - Normal_WVGA to Normal_800 480 * 480 (3) : 480 * 800 (5)
879 * - Normal_800 to Normal_HVGA 480 * 800 (5) : 480 * 320 (2)
880 * - Normal_HVGA to Normal_800 480 * 320 (2) : 480 * 800 (5)
881 * - Normal_800 to Normal_HD 480 * 800 (10) : 480 * 720 (9)
882 * - Normal_HD to Normal_800 480 * 720 (9) : 480 * 800 (10)
884 * - Normal_1080 to Normal_WQVGA 480 * 1080 (27) : 480 * 240 (6)
885 * - Normal_WQVGA to Normal_1080 480 * 240 (6) : 480 * 1080 (27)
886 * - Normal_1080 to Normal_WVGA 480 * 1080 (27) : 480 * 480 (12)
887 * - Normal_WVGA to Normal_1080 480 * 480 (12) : 480 * 1080 (27)
888 * - Normal_1080 to Normal_HVGA 480 * 1080 (27) : 480 * 320 (8)
889 * - Normal_HVGA to Normal_1080 480 * 320 (8) : 480 * 1080 (27)
890 * - Normal_1080 to Normal_HD 480 * 1080 (27) : 480 * 720 (18)
891 * - Normal_HD to Normal_1080 480 * 720 (18) : 480 * 1080 (27)
893 * - Normal_1600 to Normal_WQVGA 480 * 1600 (20) : 480 * 240 (3)
894 * - Normal_WQVGA to Normal_1600 480 * 240 (3) : 480 * 1600 (20)
895 * - Normal_1600 to Normal_WVGA 480 * 1600 (10) : 480 * 480 (3)
896 * - Normal_WVGA to Normal_1600 480 * 480 (3) : 480 * 1600 (10)
897 * - Normal_1600 to Normal_HVGA 480 * 1600 (5) : 480 * 320 (1)
898 * - Normal_HVGA to Normal_1600 480 * 320 (1) : 480 * 1600 (5)
899 * - Normal_1600 to Normal_HD 480 * 1600 (20) : 480 * 720 (9)
900 * - Normal_HD to Normal_1600 480 * 720 (9) : 480 * 1600 (20)
902 **************************Large to Large(48)**************************
903 * - Large_240 to Large_WVGA 720 * 240 (1) : 720 * 480 (2)
904 * - Large_WVGA to Large_240 720 * 480 (2) : 720 * 240 (1)
905 * - Large_240 to Large_HVGA 720 * 240 (3) : 720 * 320 (4)
906 * - Large_HVGA to Large_240 720 * 320 (4) : 720 * 240 (3)
907 * - Large_240 to Large_HD 720 * 240 (1) : 720 * 720 (3)
908 * - Large_HD to Large_240 720 * 720 (3) : 720 * 240 (1)
910 * - Large_320 to Large_WQVGA 720 * 320 (4) : 720 * 240 (3)
911 * - Large_WQVGA to Large_320 720 * 240 (3) : 720 * 320 (4)
912 * - Large_320 to Large_WVGA 720 * 320 (2) : 720 * 480 (3)
913 * - Large_WVGA to Large_320 720 * 480 (3) : 720 * 320 (2)
914 * - Large_320 to Large_HD 720 * 320 (4) : 720 * 720 (9)
915 * - Large_HD to Large_320 720 * 720 (9) : 720 * 320 (4)
917 * - Large_480 to Large_WQVGA 720 * 480 (2) : 720 * 240 (1)
918 * - Large_WQVGA to Large_480 720 * 240 (1) : 720 * 480 (2)
919 * - Large_480 to Large_HVGA 720 * 480 (3) : 720 * 320 (2)
920 * - Large_HVGA to Large_480 720 * 320 (2) : 720 * 480 (3)
921 * - Large_480 to Large_HD 720 * 480 (2) : 720 * 720 (3)
922 * - Large_HD to Large_480 720 * 720 (3) : 720 * 480 (2)
924 * - Large_720 to Large_WQVGA 720 * 720 (3) : 720 * 240 (1)
925 * - Large_WQVGA to Large_720 720 * 240 (1) : 720 * 720 (3)
926 * - Large_720 to Large_WVGA 720 * 720 (3) : 720 * 480 (2)
927 * - Large_WVGA to Large_720 720 * 480 (2) : 720 * 720 (3)
928 * - Large_720 to Large_HVGA 720 * 720 (9) : 720 * 320 (4)
929 * - Large_HVGA to Large_720 720 * 320 (4) : 720 * 720 (9)
931 * - Large_800 to Large_WQVGA 720 * 800 (10) : 720 * 240 (3)
932 * - Large_WQVGA to Large_800 720 * 240 (3) : 720 * 800 (10)
933 * - Large_800 to Large_WVGA 720 * 800 (5) : 720 * 480 (3)
934 * - Large_WVGA to Large_800 720 * 480 (3) : 720 * 800 (5)
935 * - Large_800 to Large_HVGA 720 * 800 (5) : 720 * 320 (2)
936 * - Large_HVGA to Large_800 720 * 320 (2) : 720 * 800 (5)
937 * - Large_800 to Large_HD 720 * 800 (10) : 720 * 720 (9)
938 * - Large_HD to Large_800 720 * 720 (9) : 720 * 800 (10)
940 * - Large_1080 to Large_WQVGA 720 * 1080 (27) : 720 * 240 (6)
941 * - Large_WQVGA to Large_1080 720 * 240 (6) : 720 * 1080 (27)
942 * - Large_1080 to Large_WVGA 720 * 1080 (27) : 720 * 480 (12)
943 * - Large_WVGA to Large_1080 720 * 480 (12) : 720 * 1080 (27)
944 * - Large_1080 to Large_HVGA 720 * 1080 (27) : 720 * 320 (8)
945 * - Large_HVGA to Large_1080 720 * 320 (8) : 720 * 1080 (27)
946 * - Large_1080 to Large_HD 720 * 1080 (27) : 720 * 720 (18)
947 * - Large_HD to Large_1080 720 * 720 (18) : 720 * 1080 (27)
949 * - Large_1600 to Large_WQVGA 720 * 1600 (20) : 720 * 240 (3)
950 * - Large_WQVGA to Large_1600 720 * 240 (3) : 720 * 1600 (20)
951 * - Large_1600 to Large_WVGA 720 * 1600 (10) : 720 * 480 (3)
952 * - Large_WVGA to Large_1600 720 * 480 (3) : 720 * 1600 (10)
953 * - Large_1600 to Large_HVGA 720 * 1600 (5) : 720 * 320 (1)
954 * - Large_HVGA to Large_1600 720 * 320 (1) : 720 * 1600 (5)
955 * - Large_1600 to Large_HD 720 * 1600 (20) : 720 * 720 (9)
956 * - Large_HD to Large_1600 720 * 720 (9) : 720 * 1600 (20)
958 **************************Normal to Large(48)**************************
959 * - Normal_240 to Large_WVGA 720 * 240 (3) : 480 * 480 (4)
960 * - Large_WVGA to Normal_240 480 * 480 (4) : 720 * 240 (3)
961 * - Normal_240 to Large_HVGA 720 * 240 (9) : 480 * 320 (8)
962 * - Large_HVGA to Normal_240 480 * 320 (8) : 720 * 240 (9)
963 * - Normal_240 to Large_HD 720 * 240 (1) : 480 * 720 (2)
964 * - Large_HD to Normal_240 480 * 720 (2) : 720 * 240 (1)
966 * - Normal_320 to Large_WQVGA 720 * 320 (3) : 480 * 240 (1)
967 * - Large_WQVGA to Normal_320 480 * 240 (1) : 720 * 320 (3)
968 * - Normal_320 to Large_WVGA 720 * 320 (1) : 480 * 480 (1)
969 * - Large_WVGA to Normal_320 480 * 480 (1) : 720 * 320 (1)
970 * - Normal_320 to Large_HD 720 * 320 (2) : 480 * 720 (3)
971 * - Large_HD to Normal_320 480 * 720 (3) : 720 * 320 (2)
973 * - Normal_480 to Large_WQVGA 720 * 480 (4) : 480 * 240 (3)
974 * - Large_WQVGA to Normal_480 480 * 240 (3) : 720 * 480 (4)
975 * - Normal_480 to Large_HVGA 720 * 480 (9) : 480 * 320 (4)
976 * - Large_HVGA to Normal_480 480 * 320 (4) : 720 * 480 (9)
977 * - Normal_480 to Large_HD 720 * 480 (1) : 480 * 720 (1)
978 * - Large_HD to Normal_480 480 * 720 (1) : 720 * 480 (1)
980 * - Normal_720 to Large_WQVGA 720 * 720 (9) : 480 * 240 (2)
981 * - Large_WQVGA to Normal_720 480 * 240 (2) : 720 * 720 (9)
982 * - Normal_720 to Large_WVGA 720 * 720 (9) : 480 * 480 (4)
983 * - Large_WVGA to Normal_720 480 * 480 (4) : 720 * 720 (9)
984 * - Normal_720 to Large_HVGA 720 * 720 (27) : 480 * 320 (8)
985 * - Large_HVGA to Normal_720 480 * 320 (8) : 720 * 720 (27)
987 * - Normal_800 to Large_WQVGA 720 * 800 (5) : 480 * 240 (1)
988 * - Large_WQVGA to Normal_800 480 * 240 (1) : 720 * 800 (5)
989 * - Normal_800 to Large_WVGA 720 * 800 (5) : 480 * 480 (2)
990 * - Large_WVGA to Normal_800 480 * 480 (2) : 720 * 800 (5)
991 * - Normal_800 to Large_HVGA 720 * 800 (15) : 480 * 320 (4)
992 * - Large_HVGA to Normal_800 480 * 320 (4) : 720 * 800 (15)
993 * - Normal_800 to Large_HD 720 * 800 (5) : 480 * 720 (3)
994 * - Large_HD to Normal_800 480 * 720 (3) : 720 * 800 (5)
996 * - Normal_1080 to Large_WQVGA 720 * 1080 (27) : 480 * 240 (4)
997 * - Large_WQVGA to Normal_1080 480 * 240 (4) : 720 * 1080 (27)
998 * - Normal_1080 to Large_WVGA 720 * 1080 (27) : 480 * 480 (8)
999 * - Large_WVGA to Normal_1080 480 * 480 (8) : 720 * 1080 (27)
1000 * - Normal_1080 to Large_HVGA 720 * 1080 (81) : 480 * 320 (16)
1001 * - Large_HVGA to Normal_1080 480 * 320 (16) : 720 * 1080 (81)
1002 * - Normal_1080 to Large_HD 720 * 1080 (9) : 480 * 720 (4)
1003 * - Large_HD to Normal_1080 480 * 720 (4) : 720 * 1080 (9)
1005 * - Normal_1600 to Large_WQVGA 720 * 1600 (10) : 480 * 240 (1)
1006 * - Large_WQVGA to Normal_1600 480 * 240 (1) : 720 * 1600 (10)
1007 * - Normal_1600 to Large_WVGA 720 * 1600 (5) : 480 * 480 (1)
1008 * - Large_WVGA to Normal_1600 480 * 480 (1) : 720 * 1600 (5)
1009 * - Normal_1600 to Large_HVGA 720 * 1600 (15) : 480 * 320 (2)
1010 * - Large_HVGA to Normal_1600 480 * 320 (2) : 720 * 1600 (15)
1011 * - Normal_1600 to Large_HD 720 * 1600 (10) : 480 * 720 (3)
1012 * - Large_HD to Normal_1600 480 * 720 (3) : 720 * 1600 (10)
1014 **************************Large to Normal(48)**************************
1015 * - Large_240 to Normal_WVGA 480 * 240 (1) : 720 * 480 (3)
1016 * - Normal_WVGA to Large_240 720 * 480 (3) : 480 * 240 (1)
1017 * - Large_240 to Normal_HVGA 480 * 240 (1) : 720 * 320 (2)
1018 * - Normal_HVGA to Large_240 720 * 320 (2) : 480 * 240 (1)
1019 * - Large_240 to Normal_HD 480 * 240 (2) : 720 * 720 (9)
1020 * - Normal_HD to Large_240 720 * 720 (9) : 480 * 240 (2)
1022 * - Large_320 to Normal_WQVGA 480 * 320 (8) : 720 * 240 (9)
1023 * - Normal_WQVGA to Large_320 720 * 240 (9) : 480 * 320 (8)
1024 * - Large_320 to Normal_WVGA 480 * 320 (4) : 720 * 480 (9)
1025 * - Normal_WVGA to Large_320 720 * 480 (9) : 480 * 320 (4)
1026 * - Large_320 to Normal_HD 480 * 320 (8) : 720 * 720 (27)
1027 * - Normal_HD to Large_320 720 * 720 (27) : 480 * 320 (8)
1029 * - Large_480 to Normal_WQVGA 480 * 480 (4) : 720 * 240 (3)
1030 * - Normal_WQVGA to Large_480 720 * 240 (3) : 480 * 480 (4)
1031 * - Large_480 to Normal_HVGA 480 * 480 (1) : 720 * 320 (1)
1032 * - Normal_HVGA to Large_480 720 * 320 (1) : 480 * 480 (1)
1033 * - Large_480 to Normal_HD 480 * 480 (2) : 720 * 720 (3)
1034 * - Normal_HD to Large_480 720 * 720 (3) : 480 * 480 (2)
1036 * - Large_720 to Normal_WQVGA 480 * 720 (2) : 720 * 240 (1)
1037 * - Normal_WQVGA to Large_720 720 * 240 (1) : 480 * 720 (2)
1038 * - Large_720 to Normal_WVGA 480 * 720 (1) : 720 * 480 (1)
1039 * - Normal_WVGA to Large_720 720 * 480 (1) : 480 * 720 (1)
1040 * - Large_720 to Normal_HVGA 480 * 720 (3) : 720 * 320 (2)
1041 * - Normal_HVGA to Large_720 720 * 320 (2) : 480 * 720 (3)
1043 * - Large_800 to Normal_WQVGA 480 * 800 (20) : 720 * 240 (9)
1044 * - Normal_WQVGA to Large_800 720 * 240 (9) : 480 * 800 (20)
1045 * - Large_800 to Normal_WVGA 480 * 800 (10) : 720 * 480 (9)
1046 * - Normal_WVGA to Large_800 720 * 480 (9) : 480 * 800 (10)
1047 * - Large_800 to Normal_HVGA 480 * 800 (5) : 720 * 320 (3)
1048 * - Normal_HVGA to Large_800 720 * 320 (3) : 480 * 800 (5)
1049 * - Large_800 to Normal_HD 480 * 800 (9) : 720 * 720 (20)
1050 * - Normal_HD to Large_800 720 * 720 (20) : 480 * 800 (9)
1052 * - Large_1080 to Normal_WQVGA 480 * 1080 (3) : 720 * 240 (1)
1053 * - Normal_WQVGA to Large_1080 720 * 240 (1) : 480 * 1080 (3)
1054 * - Large_1080 to Normal_WVGA 480 * 1080 (3) : 720 * 480 (2)
1055 * - Normal_WVGA to Large_1080 720 * 480 (2) : 480 * 1080 (3)
1056 * - Large_1080 to Normal_HVGA 480 * 1080 (9) : 720 * 320 (4)
1057 * - Normal_HVGA to Large_1080 720 * 320 (4) : 480 * 1080 (9)
1058 * - Large_1080 to Normal_HD 480 * 1080 (1) : 720 * 720 (10)
1059 * - Normal_HD to Large_1080 720 * 720 (10) : 480 * 1080 (1)
1061 * - Large_1600 to Normal_WQVGA 480 * 1600 (40) : 720 * 240 (9)
1062 * - Normal_WQVGA to Large_1600 720 * 240 (9) : 480 * 1600 (40)
1063 * - Large_1600 to Normal_WVGA 480 * 1600 (20) : 720 * 480 (9)
1064 * - Normal_WVGA to Large_1600 720 * 480 (9) : 480 * 1600 (20)
1065 * - Large_1600 to Normal_HVGA 480 * 1600 (10) : 720 * 320 (3)
1066 * - Normal_HVGA to Large_1600 720 * 320 (3) : 480 * 1600 (10)
1067 * - Large_1600 to Normal_HD 480 * 1600 (40) : 720 * 720 (27)
1068 * - Normal_HD to Large_1600 720 * 720 (27) : 480 * 1600 (40)
1070 *****************************************************************************************/
1072 class TransformerNormal240ToNormalHvga
1073 : public _Internal::Transformer
1074 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1075 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1077 }; // TransformerNormal240ToNormalHvga
1079 class TransformerNormalHvgaToNormal240
1080 : public _Internal::Transformer
1081 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1082 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1084 }; // TransformerNormalHvgaToNormal240
1086 class TransformerNormal240ToNormalWvga
1087 : public _Internal::Transformer
1088 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1089 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1091 }; // TransformerNormal240ToNormalWvga
1093 class TransformerNormalWvgaToNormal240
1094 : public _Internal::Transformer
1095 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1096 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1098 }; // TransformerNormalWvgaToNormal240
1100 class TransformerNormal240ToNormalHd
1101 : public _Internal::Transformer
1102 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1103 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1105 }; // TransformerNormal240ToNormalHd
1107 class TransformerNormalHdToNormal240
1108 : public _Internal::Transformer
1109 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1110 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_240>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1112 }; // TransformerNormalHdToNormal240
1114 class TransformerNormal320ToNormalWqvga
1115 : public _Internal::Transformer
1116 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1117 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1119 }; // TransformerNormal320ToNormalWqvga
1121 class TransformerNormalWqvgaToNormal320
1122 : public _Internal::Transformer
1123 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1124 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1126 }; // TransformerNormalWqvgaToNormal320
1128 class TransformerNormal320ToNormalWvga
1129 : public _Internal::Transformer
1130 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1131 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1133 }; // TransformerNormal320ToNormalWvga
1135 class TransformerNormalWvgaToNormal320
1136 : public _Internal::Transformer
1137 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1138 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1140 }; // TransformerNormalWvgaToNormal320
1142 class TransformerNormal320ToNormalHd
1143 : public _Internal::Transformer
1144 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1145 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1147 }; // TransformerNormal320ToNormalHd
1149 class TransformerNormalHdToNormal320
1150 : public _Internal::Transformer
1151 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1152 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_320>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1154 }; // TransformerNormalHdToNormal320
1156 class TransformerNormal480ToNormalWqvga
1157 : public _Internal::Transformer
1158 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1159 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1161 }; // TransformerNormal480ToNormalWqvga
1163 class TransformerNormalWqvgaToNormal480
1164 : public _Internal::Transformer
1165 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1166 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1168 }; // TransformerNormalWqvgaToNormal480
1170 class TransformerNormal480ToNormalHvga
1171 : public _Internal::Transformer
1172 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1173 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1175 }; // TransformerNormal480ToNormalHvga
1177 class TransformerNormalHvgaToNormal480
1178 : public _Internal::Transformer
1179 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1180 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1182 }; // TransformerNormalHvgaToNormal480
1184 class TransformerNormal480ToNormalHd
1185 : public _Internal::Transformer
1186 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1187 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1189 }; // TransformerNormal480ToNormalHd
1191 class TransformerNormalHdToNormal480
1192 : public _Internal::Transformer
1193 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1194 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HD>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_480>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1196 }; // TransformerNormalHdToNormal480
1198 class TransformerNormal720ToNormalWqvga
1199 : public _Internal::Transformer
1200 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1201 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1203 }; // TransformerNormal720ToNormalWqvga
1205 class TransformerNormalWqvgaToNormal720
1206 : public _Internal::Transformer
1207 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1208 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WQVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1210 }; // TransformerNormalWqvgaToNormal720
1212 class TransformerNormal720ToNormalWvga
1213 : public _Internal::Transformer
1214 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1215 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1217 }; // TransformerNormal720ToNormalWvga
1219 class TransformerNormalWvgaToNormal720
1220 : public _Internal::Transformer
1221 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1222 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_WVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1224 }; // TransformerNormalWvgaToNormalWvga
1226 class TransformerNormal720ToNormalHvga
1227 : public _Internal::Transformer
1228 <_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1229 ,_Internal::Scaler <LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1231 }; // TransformerNormal720ToNormalHvga
1233 class TransformerNormalHvgaToNormal720
1234 : public _Internal::Transformer
1235 <_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH>
1236 ,_Internal::Scaler <PhyResTraits <RESOLUTION_PHYSICAL_HVGA>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH , LogResTraits <RESOLUTION_LOGICAL_720>::WIDTH * ScrResTraits <BASE_SCREEN_SIZE_NORMAL>::WIDTH> >
1238 }; // TransformerNormalHvgaToNormal720
1241 class TransformerGeneral
1242 : public _ICoordinateSystemTransformer
1245 TransformerGeneral(const int srcScalar, const int dstScalar)
1246 : __srcScalar(srcScalar)
1247 , __dstScalar(dstScalar)
1248 , __scaleFactor(dstScalar * 1.0f / srcScalar)
1252 virtual int TransformHorizontal(int width) const
1254 return ScaleLength(width);
1257 virtual int TransformVertical(int height) const
1259 return ScaleLength(height);
1262 virtual int Transform(int scalar) const
1264 return ScaleLength(scalar);
1267 virtual float TransformHorizontal(float width) const
1269 return ScaleLength(width);
1272 virtual float TransformVertical(float height) const
1274 return ScaleLength(height);
1277 virtual float Transform(float scalar) const
1279 return ScaleLength(scalar);
1282 virtual Point Transform(const Point& point) const
1284 return Point(ScaleDisplacement(point.x), ScaleDisplacement(point.y));
1287 virtual Dimension Transform(const Dimension& dim) const
1289 return Dimension(ScaleLength(dim.width), ScaleLength(dim.height));
1292 virtual Rectangle Transform(const Rectangle& rect) const
1294 int x = ScaleDisplacement(rect.x);
1295 int y = ScaleDisplacement(rect.y);
1296 int w = ScaleLength(rect.width);
1297 int h = ScaleLength(rect.height);
1299 return Rectangle(x, y, w, h);
1302 virtual int TransformFloatToInt(float scalar) const
1304 return ScaleLength(static_cast<int>(scalar));
1307 virtual int TransformHorizontalFloatToInt(float width) const
1309 return ScaleLength(static_cast<int>(width));
1312 virtual int TransformVerticalFloatToInt(float height) const
1314 return ScaleLength(static_cast<int>(height));
1317 virtual float GetHorizontalScaleFactor(void) const
1319 return __scaleFactor;
1322 virtual float GetVerticalScaleFactor(void) const
1324 return __scaleFactor;
1328 int ScaleDisplacement(int srcVal) const
1330 long long tmpVal = srcVal;
1331 tmpVal *= __dstScalar;
1332 tmpVal /= __srcScalar;
1334 return static_cast<int>(tmpVal);
1337 int ScaleLength(int srcVal) const
1339 long long tmpVal = srcVal;
1340 tmpVal *= __dstScalar;
1341 tmpVal /= __srcScalar;
1343 return static_cast<int>(tmpVal);
1346 float ScaleDisplacement(float srcVal) const
1348 return srcVal * __scaleFactor;
1351 float ScaleLength(float srcVal) const
1353 return srcVal * __scaleFactor;
1360 float __scaleFactor;
1362 }; // TransformerGeneral
1365 _WillNotTransform(_LogicalResolution logicalResolution, _BaseScreenSize logicalBaseScreenSize, _PhysicalResolution physicalResolution, _BaseScreenSize physicalBaseScreenSize)
1367 return ((logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA) ||
1368 (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_HVGA) ||
1369 (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_WVGA) ||
1370 (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_HD) ||
1371 (logicalResolution == RESOLUTION_LOGICAL_800 && physicalResolution == RESOLUTION_PHYSICAL_WXGA) ||
1372 (logicalResolution == RESOLUTION_LOGICAL_1080 && physicalResolution == RESOLUTION_PHYSICAL_HD1080) ||
1373 (logicalResolution == RESOLUTION_LOGICAL_1600 && physicalResolution == RESOLUTION_PHYSICAL_WQXGA)) &&
1374 (logicalBaseScreenSize == physicalBaseScreenSize);
1378 _WillNotTransform(int srcResolution, _BaseScreenSize srcBaseScreenSize, Dimension destResolution, _BaseScreenSize destBaseScreenSize)
1380 return ((srcResolution == destResolution.width) && (srcBaseScreenSize == destBaseScreenSize));
1384 _CoordinateTransformerCore(_ICoordinateSystemTransformer*& pTransformer, _LogicalResolution logicalResolution, _BaseScreenSize logicalBaseScreenSize, _PhysicalResolution physicalResolution, _BaseScreenSize physicalBaseScreenSize, bool isInverse = false)
1386 SysAssert(logicalResolution != RESOLUTION_LOGICAL_DEFAULT);
1387 SysAssert(physicalResolution != RESOLUTION_PHYSICAL_DEFAULT);
1388 SysAssert(logicalBaseScreenSize != BASE_SCREEN_SIZE_DEFAULT);
1389 SysAssert(physicalBaseScreenSize != BASE_SCREEN_SIZE_DEFAULT);
1391 result r = E_SUCCESS;
1392 pTransformer = null;
1394 if (_WillNotTransform(logicalResolution,logicalBaseScreenSize, physicalResolution,physicalBaseScreenSize))
1396 pTransformer = new (std::nothrow) _NullCoordinateSystemTransformer();
1398 if (pTransformer == null)
1400 SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create a coordinate transformer.");
1402 return E_OUT_OF_MEMORY;
1411 if (logicalBaseScreenSize == physicalBaseScreenSize)
1413 if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1415 pTransformer = new (std::nothrow) TransformerNormalWvgaToNormal240;
1417 else if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1419 pTransformer = new (std::nothrow) TransformerNormalHvgaToNormal240;
1421 else if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1423 pTransformer = new (std::nothrow) TransformerNormalHdToNormal240;
1425 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1427 pTransformer = new (std::nothrow) TransformerNormalWqvgaToNormal320;
1429 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1431 pTransformer = new (std::nothrow) TransformerNormalWvgaToNormal320;
1433 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1435 pTransformer = new (std::nothrow) TransformerNormalHdToNormal320;
1437 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1439 pTransformer = new (std::nothrow) TransformerNormalWqvgaToNormal480;
1441 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1443 pTransformer = new (std::nothrow) TransformerNormalHvgaToNormal480;
1445 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1447 pTransformer = new (std::nothrow) TransformerNormalHdToNormal480;
1449 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1451 pTransformer = new (std::nothrow) TransformerNormalWqvgaToNormal720;
1453 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1455 pTransformer = new (std::nothrow) TransformerNormalWvgaToNormal720;
1457 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1459 pTransformer = new (std::nothrow) TransformerNormalHvgaToNormal720;
1463 //r = E_INVALID_ARG;
1464 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(physicalResolution), _GetIntegerResolution(logicalResolution));
1469 //r = E_INVALID_ARG;
1470 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(physicalResolution) * _GetIntegerResolution(logicalBaseScreenSize), _GetIntegerResolution(logicalResolution) * _GetIntegerResolution(physicalBaseScreenSize));
1475 if (logicalBaseScreenSize == physicalBaseScreenSize)
1477 if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1479 pTransformer = new (std::nothrow) TransformerNormal240ToNormalWvga;
1481 else if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1483 pTransformer = new (std::nothrow) TransformerNormal240ToNormalHvga;
1485 else if (logicalResolution == RESOLUTION_LOGICAL_240 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1487 pTransformer = new (std::nothrow) TransformerNormal240ToNormalHd;
1489 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1491 pTransformer = new (std::nothrow) TransformerNormal320ToNormalWqvga;
1493 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1495 pTransformer = new (std::nothrow) TransformerNormal320ToNormalWvga;
1497 else if (logicalResolution == RESOLUTION_LOGICAL_320 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1499 pTransformer = new (std::nothrow) TransformerNormal320ToNormalHd;
1501 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1503 pTransformer = new (std::nothrow) TransformerNormal480ToNormalWqvga;
1505 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1507 pTransformer = new (std::nothrow) TransformerNormal480ToNormalHvga;
1509 else if (logicalResolution == RESOLUTION_LOGICAL_480 && physicalResolution == RESOLUTION_PHYSICAL_HD)
1511 pTransformer = new (std::nothrow) TransformerNormal480ToNormalHd;
1513 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_WQVGA)
1515 pTransformer = new (std::nothrow) TransformerNormal720ToNormalWqvga;
1517 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_WVGA)
1519 pTransformer = new (std::nothrow) TransformerNormal720ToNormalWvga;
1521 else if (logicalResolution == RESOLUTION_LOGICAL_720 && physicalResolution == RESOLUTION_PHYSICAL_HVGA)
1523 pTransformer = new (std::nothrow) TransformerNormal720ToNormalHvga;
1527 //r = E_INVALID_ARG;
1528 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(logicalResolution), _GetIntegerResolution(physicalResolution));
1533 //r = E_INVALID_ARG;
1534 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(logicalResolution) * _GetIntegerResolution(physicalBaseScreenSize), _GetIntegerResolution(physicalResolution) * _GetIntegerResolution(logicalBaseScreenSize));
1541 if (logicalBaseScreenSize == physicalBaseScreenSize)
1543 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(physicalResolution), _GetIntegerResolution(logicalResolution));
1547 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(physicalResolution) * _GetIntegerResolution(logicalBaseScreenSize), _GetIntegerResolution(logicalResolution) * _GetIntegerResolution(physicalBaseScreenSize));
1552 if (logicalBaseScreenSize == physicalBaseScreenSize)
1554 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(logicalResolution), _GetIntegerResolution(physicalResolution));
1558 pTransformer = new (std::nothrow) TransformerGeneral(_GetIntegerResolution(logicalResolution) * _GetIntegerResolution(physicalBaseScreenSize), _GetIntegerResolution(physicalResolution) * _GetIntegerResolution(logicalBaseScreenSize));
1562 // Print the log message and return
1567 else if (r == E_INVALID_ARG)
1569 SysLog(NID_GRP, "[E_INVALID_ARG] The specified resolutions are invalid.");
1571 return E_INVALID_ARG;
1575 SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create a coordinate transformer.");
1577 return E_OUT_OF_MEMORY;
1583 _CoordinateTransformerCore(_ICoordinateSystemTransformer*& pTransformer, int srcResolution, _BaseScreenSize srcBaseScreenSize, Dimension destResolution, _BaseScreenSize destBaseScreenSize)
1585 SysAssert(srcResolution > 0);
1586 SysAssert(destResolution.width > 0);
1587 SysAssert(srcBaseScreenSize != BASE_SCREEN_SIZE_DEFAULT);
1588 SysAssert(destBaseScreenSize != BASE_SCREEN_SIZE_DEFAULT);
1590 result r = E_SUCCESS;
1591 pTransformer = null;
1593 if (_WillNotTransform(srcResolution, srcBaseScreenSize, destResolution, destBaseScreenSize))
1595 pTransformer = new (std::nothrow) _NullCoordinateSystemTransformer();
1597 if (pTransformer == null)
1599 SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create a coordinate transformer.");
1601 return E_OUT_OF_MEMORY;
1607 pTransformer = new (std::nothrow) TransformerGeneral(srcResolution * _GetIntegerResolution(destBaseScreenSize), (destResolution.width < destResolution.height ? destResolution.width : destResolution.height) * _GetIntegerResolution(srcBaseScreenSize));
1613 else if (r == E_INVALID_ARG)
1615 SysLog(NID_GRP, "[E_INVALID_ARG] The specified resolutions are invalid.");
1617 return E_INVALID_ARG;
1621 SysLog(NID_GRP, "[E_OUT_OF_MEMORY] Fail to create a coordinate transformer.");
1623 return E_OUT_OF_MEMORY;
1629 _CreateCoordinateTransformer(_ICoordinateSystemTransformer*& pTransformer, int srcResolution, _BaseScreenSize srcBaseScreenSize, Dimension destResolution, _BaseScreenSize destBaseScreenSize)
1631 return _CoordinateTransformerCore(pTransformer, srcResolution, srcBaseScreenSize, destResolution, destBaseScreenSize);
1635 _CreateCoordinateTransformer(_ICoordinateSystemTransformer*& pTransformer, _LogicalResolution sourceLogicalResolution, _BaseScreenSize sourceLogicalBaseScreenSize, _PhysicalResolution destPhysicalResolution, _BaseScreenSize destPhysicalBaseScreenSize)
1637 return _CoordinateTransformerCore(pTransformer, sourceLogicalResolution, sourceLogicalBaseScreenSize, destPhysicalResolution, destPhysicalBaseScreenSize, false);
1641 _CreateCoordinateTransformer(_ICoordinateSystemTransformer*& pTransformer, _PhysicalResolution sourcePhysicalResolution, _BaseScreenSize sourcePhysicalBaseScreenSize,_LogicalResolution destLogicalResolution, _BaseScreenSize destLogicalBaseScreenSize)
1643 return _CoordinateTransformerCore(pTransformer, destLogicalResolution, destLogicalBaseScreenSize, sourcePhysicalResolution, sourcePhysicalBaseScreenSize, true);
1647 _CreateCoordinateTransformer(_ICoordinateSystemTransformer*& pTransformer, _LogicalResolution sourceLogicalResolution, _BaseScreenSize sourceLogicalBaseScreenSize, _LogicalResolution destLogicalResolution, _BaseScreenSize destLogicalBaseScreenSize)
1649 _PhysicalResolution physicalResolution = RESOLUTION_PHYSICAL_DEFAULT;
1651 switch (destLogicalResolution)
1653 case RESOLUTION_LOGICAL_240:
1654 physicalResolution = RESOLUTION_PHYSICAL_WQVGA;
1656 case RESOLUTION_LOGICAL_320:
1657 physicalResolution = RESOLUTION_PHYSICAL_HVGA;
1659 case RESOLUTION_LOGICAL_480:
1660 physicalResolution = RESOLUTION_PHYSICAL_WVGA;
1662 case RESOLUTION_LOGICAL_720:
1663 physicalResolution = RESOLUTION_PHYSICAL_HD;
1665 case RESOLUTION_LOGICAL_800:
1666 physicalResolution = RESOLUTION_PHYSICAL_WXGA;
1668 case RESOLUTION_LOGICAL_1080:
1669 physicalResolution = RESOLUTION_PHYSICAL_HD1080;
1671 case RESOLUTION_LOGICAL_1600:
1672 physicalResolution = RESOLUTION_PHYSICAL_WQXGA;
1675 physicalResolution = RESOLUTION_PHYSICAL_NONE;
1679 return _CoordinateTransformerCore(pTransformer, sourceLogicalResolution, sourceLogicalBaseScreenSize, physicalResolution, destLogicalBaseScreenSize, false);
1682 }} // Tizen::Graphics