line-width.c 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * Copyright © 2004 Red Hat, Inc.
  3. *
  4. * Permission to use, copy, modify, distribute, and sell this software
  5. * and its documentation for any purpose is hereby granted without
  6. * fee, provided that the above copyright notice appear in all copies
  7. * and that both that copyright notice and this permission notice
  8. * appear in supporting documentation, and that the name of
  9. * Red Hat, Inc. not be used in advertising or publicity pertaining to
  10. * distribution of the software without specific, written prior
  11. * permission. Red Hat, Inc. makes no representations about the
  12. * suitability of this software for any purpose. It is provided "as
  13. * is" without express or implied warranty.
  14. *
  15. * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
  16. * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  17. * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
  18. * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  19. * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  20. * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
  21. * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  22. *
  23. * Author: Carl D. Worth <cworth@cworth.org>
  24. */
  25. #include "cairo-test.h"
  26. #define LINES 5
  27. #define LINE_LENGTH 10
  28. #define IMAGE_WIDTH 2 * LINE_LENGTH + 6
  29. #define IMAGE_HEIGHT ((LINES+4)*LINES)/2 + 2
  30. static cairo_test_status_t
  31. draw (cairo_t *cr, int width, int height)
  32. {
  33. int i;
  34. /* We draw in black, so paint white first. */
  35. cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
  36. cairo_paint (cr);
  37. cairo_set_source_rgb (cr, 0, 0, 0);
  38. cairo_translate (cr, 2, 2);
  39. for (i=0; i < LINES; i++) {
  40. cairo_set_line_width (cr, i+1);
  41. cairo_move_to (cr, 0, 0);
  42. cairo_rel_line_to (cr, LINE_LENGTH, 0);
  43. cairo_stroke (cr);
  44. cairo_move_to (cr, LINE_LENGTH + 2, 0.5);
  45. cairo_rel_line_to (cr, LINE_LENGTH, 0);
  46. cairo_stroke (cr);
  47. cairo_translate (cr, 0, i+3);
  48. }
  49. return CAIRO_TEST_SUCCESS;
  50. }
  51. static cairo_test_status_t
  52. draw_a1 (cairo_t *cr, int width, int height)
  53. {
  54. cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
  55. return draw (cr, width, height);
  56. }
  57. CAIRO_TEST (line_width,
  58. "Tests cairo_set_line_width",
  59. "stroke", /* keywords */
  60. NULL, /* requirements */
  61. IMAGE_WIDTH, IMAGE_HEIGHT,
  62. NULL, draw)
  63. CAIRO_TEST (a1_line_width,
  64. "Tests cairo_set_line_width",
  65. "stroke", /* keywords */
  66. "target=raster", /* requirements */
  67. IMAGE_WIDTH, IMAGE_HEIGHT,
  68. NULL, draw_a1)