Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/draw/source.c

    rb3222a3 r6d5e378  
    4545        source->color = PIXEL(0, 0, 0, 0);
    4646        source->texture = NULL;
    47         source->texture_extend = PIXELMAP_EXTEND_TRANSPARENT_BLACK;
     47        source->texture_tile = false;
    4848
    4949        source->alpha = PIXEL(255, 0, 0, 0);
    5050        source->mask = NULL;
    51         source->mask_extend = PIXELMAP_EXTEND_TRANSPARENT_BLACK;
     51        source->mask_tile = false;
    5252}
    5353
     
    7373}
    7474
    75 void source_set_texture(source_t *source, surface_t *texture,
    76     pixelmap_extend_t extend)
     75void source_set_texture(source_t *source, surface_t *texture, bool tile)
    7776{
    7877        source->texture = texture;
    79         source->texture_extend = extend;
     78        source->texture_tile = tile;
    8079}
    8180
     
    8584}
    8685
    87 void source_set_mask(source_t *source, surface_t *mask,
    88     pixelmap_extend_t extend)
     86void source_set_mask(source_t *source, surface_t *mask, bool tile)
    8987{
    9088        source->mask = mask;
    91         source->mask_extend = extend;
    92 }
    93 
    94 bool source_is_fast(source_t *source)
    95 {
    96         return ((source->mask == NULL) &&
    97             (source->alpha == (pixel_t) PIXEL(255, 0, 0, 0)) &&
    98             (source->texture != NULL) &&
    99             (transform_is_fast(&source->transform)));
    100 }
    101 
    102 pixel_t *source_direct_access(source_t *source, double x, double y)
    103 {
    104         assert(source_is_fast(source));
    105 
    106         long _x = (long) (x + source->transform.matrix[0][2]);
    107         long _y = (long) (y + source->transform.matrix[1][2]);
    108 
    109         return pixelmap_pixel_at(
    110             surface_pixmap_access(source->texture), (sysarg_t) _x, (sysarg_t) _y);
     89        source->mask_tile = tile;
    11190}
    11291
     
    121100                mask_pix = source->filter(
    122101                    surface_pixmap_access(source->mask),
    123                     x, y, source->mask_extend);
     102                    x, y, source->mask_tile);
    124103        } else {
    125104                mask_pix = source->alpha;
     
    134113                texture_pix = source->filter(
    135114                    surface_pixmap_access(source->texture),
    136                     x, y, source->texture_extend);
     115                    x, y, source->texture_tile);
    137116        } else {
    138117                texture_pix = source->color;
Note: See TracChangeset for help on using the changeset viewer.