1 /************************************************************************/
4 /************************************************************************/
5 #ifndef __SUBPIXEL_POSITION_CONTROLER_H_61444994_2880_4407_9308_4B17D0259B2C__
6 #define __SUBPIXEL_POSITION_CONTROLER_H_61444994_2880_4407_9308_4B17D0259B2C__
10 class SubpixelPositionControler
19 EIGHT_X_EIGHT_INTERPOLATE
= 4,
27 EIGHT_X_EIGHT_MASK
= 7,
28 EIGHT_X_EIGHT_INTERPOLATE_MASK
= 0,
30 SUBPIXEL_LEVEL
SetSubpixelLevel(SUBPIXEL_LEVEL subpixel_level
);
31 inline SUBPIXEL_LEVEL
GetSubpixelLevel()
33 return _subpixel_level
;
35 inline CPoint
GetSubpixel(const CPoint
& p
)
37 CPoint
result(p
.x
& _subpixel_mask
, p
.y
& _subpixel_mask
);
40 inline bool UseBilinearShift() { return _subpixel_level
==EIGHT_X_EIGHT_INTERPOLATE
; }
42 static SubpixelPositionControler
& GetGlobalControler()
44 return s_subpixel_position_controler
;
48 SubpixelPositionControler()
50 _subpixel_level
= EIGHT_X_EIGHT
;
51 _subpixel_mask
= EIGHT_X_EIGHT_MASK
;
53 SUBPIXEL_LEVEL _subpixel_level
;
54 SUBPIXEL_MASK _subpixel_mask
;
55 static SubpixelPositionControler s_subpixel_position_controler
;
58 #endif // end of __SUBPIXEL_POSITION_CONTROLER_H_61444994_2880_4407_9308_4B17D0259B2C__