Home | History | Annotate | Download | only in libpixelflinger

Lines Matching refs:sbits

37 static uint32_t expand(uint32_t v, int sbits, int dbits);
252 uint32_t ggl_expand(uint32_t v, int sbits, int dbits)
254 return expand(v, sbits, dbits);
290 // expand a component from sbits to dbits
291 uint32_t expand(uint32_t v, int sbits, int dbits)
293 if (dbits > sbits) {
294 assert(sbits);
295 if (sbits==1) {
298 if (dbits % sbits) {
299 v <<= (dbits-sbits);
300 dbits -= sbits;
302 v |= v>>sbits;
303 dbits -= sbits;
304 sbits *= 2;
307 dbits -= sbits;
309 v |= v<<sbits;
310 dbits -= sbits;
311 if (sbits*2 < dbits) {
312 sbits *= 2;
321 // downsample a component from sbits to dbits
329 const int sbits = sh-sl;
332 assert(sbits>=dbits);
335 if (sbits>dbits) {
338 const int shift = (GGL_DITHER_BITS - (sbits-dbits));
347 // v += 1 << ((sbits-dbits)-1); // rounding
361 if (cl || (sbits>dbits)) {
367 // sbits==dbits and we don't need to clean the lower bits