Home | History | Annotate | Download | only in libpixelflinger

Lines Matching refs:dbits

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) {
296 v = (v<<dbits) - v;
298 if (dbits % sbits) {
299 v <<= (dbits-sbits);
300 dbits -= sbits;
303 dbits -= sbits;
305 } while (dbits>0);
307 dbits -= sbits;
310 dbits -= sbits;
311 if (sbits*2 < dbits) {
314 } while (dbits > 0);
321 // downsample a component from sbits to dbits
330 const int dbits = dh-dl;
332 assert(sbits>=dbits);
335 if (sbits>dbits) {
337 v -= (v>>dbits); // fix up
338 const int shift = (GGL_DITHER_BITS - (sbits-dbits));
345 //if (dBits > 1) { // result already OK if dBits==1
346 // v -= (v>>dbits); // fix up
347 // v += 1 << ((sbits-dbits)-1); // rounding
361 if (cl || (sbits>dbits)) {
362 v >>= sh-dbits;
364 sh = dbits;
367 // sbits==dbits and we don't need to clean the lower bits
374 // ie: sh-dh == sh-dbits