Core: Fixed compatibility of binary serialization GCC vs MSC (dword definition issue)

git-svn-id: svn://ultimatepp.org/upp/trunk@3637 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2011-07-10 21:32:12 +00:00
commit 1e959819f8
6 changed files with 55 additions and 36 deletions

View file

@ -70,6 +70,26 @@ void DrawDragRect(SystemDraw& w, const Rect& _rect1, const Rect& _rect2, const R
w.EndGdi();
}
static uint64 sGetAniPat(uint64 src, int pos)
{
uint64 out = 0;
pos &= 7;
for(int i = 8; --i >= 0;) {
byte sr = (byte)(src >> (8 * ((7 - i - pos) & 7)));
out = (out << 8) | (byte)((sr | (sr << 8)) >> pos);
}
return out;
}
void DrawDragRect(Ctrl& q, const Rect& rect1, const Rect& rect2, const Rect& clip, int n,
Color color, int type, int animation)
{
ViewDraw w(&q);
uint64 pattern = type == DRAWDRAGRECT_DASHED ? I64(0xf0783c1e0f87c3e1) :
type == DRAWDRAGRECT_NORMAL ? I64(0x55aa55aa55aa55aa) : 0;
DrawDragRect(w, rect1, rect2, clip, n, color, sGetAniPat(pattern, animation));
}
END_UPP_NAMESPACE
#endif