LCOV - code coverage report
Current view: directory - gfx/cairo/libpixman/src - pixman-solid-fill.c (source / functions) Found Hit Coverage
Test: app.info Lines: 35 0 0.0 %
Date: 2012-06-02 Functions: 4 0 0.0 %

       1                 : /*
       2                 :  * Copyright © 2000 SuSE, Inc.
       3                 :  * Copyright © 2007, 2009 Red Hat, Inc.
       4                 :  * Copyright © 2009 Soren Sandmann
       5                 :  *
       6                 :  * Permission to use, copy, modify, distribute, and sell this software and its
       7                 :  * documentation for any purpose is hereby granted without fee, provided that
       8                 :  * the above copyright notice appear in all copies and that both that
       9                 :  * copyright notice and this permission notice appear in supporting
      10                 :  * documentation, and that the name of SuSE not be used in advertising or
      11                 :  * publicity pertaining to distribution of the software without specific,
      12                 :  * written prior permission.  SuSE makes no representations about the
      13                 :  * suitability of this software for any purpose.  It is provided "as is"
      14                 :  * without express or implied warranty.
      15                 :  *
      16                 :  * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
      17                 :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
      18                 :  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
      19                 :  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
      20                 :  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
      21                 :  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
      22                 :  */
      23                 : 
      24                 : #ifdef HAVE_CONFIG_H
      25                 : #include <config.h>
      26                 : #endif
      27                 : #include "pixman-private.h"
      28                 : 
      29                 : void
      30               0 : _pixman_solid_fill_iter_init (pixman_image_t *image, pixman_iter_t  *iter)
      31                 : {
      32               0 :     if (iter->flags & ITER_NARROW)
      33                 :     {
      34               0 :         uint32_t *b = (uint32_t *)iter->buffer;
      35               0 :         uint32_t *e = b + iter->width;
      36               0 :         uint32_t color = iter->image->solid.color_32;
      37                 : 
      38               0 :         while (b < e)
      39               0 :             *(b++) = color;
      40                 :     }
      41                 :     else
      42                 :     {
      43               0 :         uint64_t *b = (uint64_t *)iter->buffer;
      44               0 :         uint64_t *e = b + iter->width;
      45               0 :         uint64_t color = image->solid.color_64;
      46                 : 
      47               0 :         while (b < e)
      48               0 :             *(b++) = color;
      49                 :     }
      50                 : 
      51               0 :     iter->get_scanline = _pixman_iter_get_scanline_noop;
      52               0 : }
      53                 : 
      54                 : static uint32_t
      55               0 : color_to_uint32 (const pixman_color_t *color)
      56                 : {
      57               0 :     return
      58               0 :         (color->alpha >> 8 << 24) |
      59               0 :         (color->red >> 8 << 16) |
      60               0 :         (color->green & 0xff00) |
      61               0 :         (color->blue >> 8);
      62                 : }
      63                 : 
      64                 : static uint64_t
      65               0 : color_to_uint64 (const pixman_color_t *color)
      66                 : {
      67               0 :     return
      68               0 :         ((uint64_t)color->alpha << 48) |
      69               0 :         ((uint64_t)color->red << 32) |
      70               0 :         ((uint64_t)color->green << 16) |
      71               0 :         ((uint64_t)color->blue);
      72                 : }
      73                 : 
      74                 : PIXMAN_EXPORT pixman_image_t *
      75               0 : pixman_image_create_solid_fill (pixman_color_t *color)
      76                 : {
      77               0 :     pixman_image_t *img = _pixman_image_allocate ();
      78                 : 
      79               0 :     if (!img)
      80               0 :         return NULL;
      81                 : 
      82               0 :     img->type = SOLID;
      83               0 :     img->solid.color = *color;
      84               0 :     img->solid.color_32 = color_to_uint32 (color);
      85               0 :     img->solid.color_64 = color_to_uint64 (color);
      86                 : 
      87               0 :     return img;
      88                 : }
      89                 : 

Generated by: LCOV version 1.7