Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/memgfx/src/memgc.c

    r5271e4c r0d62c10  
    225225
    226226        /* Check that we support all requested flags */
    227         if ((params->flags & ~(bmpf_color_key | bmpf_direct_output)) != 0)
     227        if ((params->flags & ~(bmpf_color_key | bmpf_colorize |
     228            bmpf_direct_output)) != 0)
    228229                return ENOTSUP;
    229230
     
    367368                /* Nothing to do */
    368369        } else if ((mbm->flags & bmpf_color_key) == 0) {
     370                /* Simple copy */
    369371                for (y = drect.p0.y; y < drect.p1.y; y++) {
    370372                        for (x = drect.p0.x; x < drect.p1.x; x++) {
     
    375377                        }
    376378                }
    377         } else {
     379        } else if ((mbm->flags & bmpf_colorize) == 0) {
     380                /* Color key */
    378381                for (y = drect.p0.y; y < drect.p1.y; y++) {
    379382                        for (x = drect.p0.x; x < drect.p1.x; x++) {
     
    385388                        }
    386389                }
     390        } else {
     391                /* Color key & colorization */
     392                for (y = drect.p0.y; y < drect.p1.y; y++) {
     393                        for (x = drect.p0.x; x < drect.p1.x; x++) {
     394                                pixel = pixelmap_get_pixel(&smap,
     395                                    x - mbm->rect.p0.x - offs.x,
     396                                    y - mbm->rect.p0.y - offs.y);
     397                                if (pixel != mbm->key_color)
     398                                        pixelmap_put_pixel(&dmap, x, y,
     399                                            mbm->mgc->color);
     400                        }
     401                }
    387402        }
    388403
Note: See TracChangeset for help on using the changeset viewer.