ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/server/utils/cfhq2xa.C
(Generate patch)

Comparing cf.schmorp.de/server/utils/cfhq2xa.C (file contents):
Revision 1.14 by root, Wed Nov 16 23:42:03 2016 UTC vs.
Revision 1.16 by root, Sat Nov 17 23:40:05 2018 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2017,2018 Marc Alexander Lehmann / the Deliantra team
4 * Copyright (©) 2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 5 * Copyright (©) 2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2003 MaxSt <maxst@hiend3d.com> 6 * Copyright (©) 2003 MaxSt <maxst@hiend3d.com>
6 * 7 *
7 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
8 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
52 53
53# define trY 0x30 54# define trY 0x30
54# define trU 0x11 55# define trU 0x11
55# define trV 0x10 56# define trV 0x10
56# define trA 0x40 57# define trA 0x40
58
59static int32_t
60udiff (uint32_t a, uint32_t b)
61{
62 return a > b ? a - b : b - a;
63
64}
57 65
58static inline pixel lerp (pixel c1, int w1, pixel c2, int w2, pixel c3, int w3, int shift) 66static inline pixel lerp (pixel c1, int w1, pixel c2, int w2, pixel c3, int w3, int shift)
59{ 67{
60#if 0 68#if 0
61 if (!(c1 >> Ashift) & Cmask) w1 = 0; 69 if (!(c1 >> Ashift) & Cmask) w1 = 0;
180static inline bool Diff (pixel w1, pixel w2) 188static inline bool Diff (pixel w1, pixel w2)
181{ 189{
182 pixel YUV1 = RGBAtoYUVA (w1); 190 pixel YUV1 = RGBAtoYUVA (w1);
183 pixel YUV2 = RGBAtoYUVA (w2); 191 pixel YUV2 = RGBAtoYUVA (w2);
184 192
185 return ((abs (((YUV1 >> Rshift) & Cmask) - ((YUV2 >> Rshift) & Cmask)) > trY) || 193 return ((udiff ((YUV1 >> Rshift) & Cmask, (YUV2 >> Rshift) & Cmask) > trY) ||
186 (abs (((YUV1 >> Gshift) & Cmask) - ((YUV2 >> Gshift) & Cmask)) > trU) || 194 (udiff ((YUV1 >> Gshift) & Cmask, (YUV2 >> Gshift) & Cmask) > trU) ||
187 (abs (((YUV1 >> Bshift) & Cmask) - ((YUV2 >> Bshift) & Cmask)) > trV) || 195 (udiff ((YUV1 >> Bshift) & Cmask, (YUV2 >> Bshift) & Cmask) > trV) ||
188 (abs (((YUV1 >> Ashift) & Cmask) - ((YUV2 >> Ashift) & Cmask)) > trA) ); 196 (udiff ((YUV1 >> Ashift) & Cmask, (YUV2 >> Ashift) & Cmask) > trA) );
189} 197}
190 198
191static void 199static void
192hq2x_32 (unsigned char *pIn, unsigned char *pOut, int Xres, int Yres, int BpL, bool wrap) 200hq2x_32 (unsigned char *pIn, unsigned char *pOut, int Xres, int Yres, int BpL, bool wrap)
193{ 201{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines