~ubuntu-branches/ubuntu/precise/xorg-server/precise

« back to all changes in this revision

Viewing changes to render/renderedge.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2011-01-31 19:45:19 UTC
  • mfrom: (1.1.38 upstream) (0.1.19 experimental)
  • Revision ID: james.westby@ubuntu.com-20110131194519-fx30d1zsg83invba
Tags: 2:1.9.99.901+git20110131.be3be758-0ubuntu1
* Merge from (unreleased) debian-experimental.  Remaining Ubuntu changes:
  - rules:
    + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226)
    + Enable xcsecurity. (LP: #247537)
    + Add --with-extra-module-dir to support GL alternatives.
  - control: 
    + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102)
    + Add breaks for incompatible drivers. (LP: #614993)
    + Drop libaudit-dev from build-deps.
  - local/xvfb-run*: Add correct docs about error codes. (LP #328205)
  - debian/patches:
    + 100_rethrow_signals.patch:
      When aborting, re-raise signals for apport
    + 109_fix-swcursor-crash.patch:
      Avoid dereferencing null pointer while reloading cursors during
      resume. (LP: #371405)
    + 111_armel-drv-fallbacks.patch:
      Add support for armel driver fallbacks.
    + 121_only_switch_vt_when_active.diff:
      Add a check to prevent the X server from changing the VT when killing
      GDM from the console.
    + 122_xext_fix_card32_overflow_in_xauth.patch:
      Fix server crash when “xauth generate” is called with large timeout.
    + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch,
      166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch
      169_mipointer_nullptr_checks.patch,
      172_cwgetbackingpicture_nullptr_check.patch:
      Fix various segfaults in xserver by checking pointers for NULL
      values before dereferencing them.
    + 165_man_xorg_conf_no_device_ident.patch
      Correct man page
    + 168_glibc_trace_to_stderr.patch:
      Report abort traces to stderr instead of terminal
    + 184_virtual_devices_autodetect.patch:
      Use vesa for qemu device, which is not supported by cirrus
    + 188_default_primary_to_first_busid.patch:
      Pick the first device and carry on (LP: #459512)
    + 190_cache-xkbcomp_output_for_fast_start_up.patch:
    + 191-Xorg-add-an-extra-module-path.patch:
      Add support for the alternatives module path.
    + 198_nohwaccess.patch:
      Adds a -nohwaccess argument to make X not access the hardware
      ports directly.
    + 200_randr-null.patch:
      Clarify a pointer initialization.
    + 206_intel_8xx_default_to_fbdev.patch:
      Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593)
* Refresh 121_only_switch_vt_when_active.diff for new upstream.
* Drop 187_edid_quirk_hp_nc8430.patch; upstream.
* Drop 189_xserver_1.5.0_bg_none_root.patch; functionality now upstream.
* Refresh 190_cache-xkbcomp_output_for_fast_start_up.patch for new upstream.
* Drop 197_xvfb-randr.patch:
  - miRandR, which this used, has been removed from the server. 
* Drop 204_fix-neg-sync-transition.patch; upstream.
* Drop 207_dga_master_device.patch; upstream.
* Drop 208_switch_on_release.diff; upstream.
* debian/patches/209_add_legacy_bgnone_option.patch:
  - Add "-nr" as a synonym for "-background none" to ease the transition from
    the old 189_xserver_1.5.0_bg_none_root.patch patch.  Can be dropped once
    all the ?DM have been updated to use the new option.
* debian/control:
  - Add Breaks: to xserver-xorg-video-8 and current fglrx.  These proprietary
    drivers don't yet have appropriate dependency information, so manually
    handle them here to prevent broken upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright © 2004 Keith Packard
3
 
 *
4
 
 * Permission to use, copy, modify, distribute, and sell this software and its
5
 
 * documentation for any purpose is hereby granted without fee, provided that
6
 
 * the above copyright notice appear in all copies and that both that
7
 
 * copyright notice and this permission notice appear in supporting
8
 
 * documentation, and that the name of Keith Packard not be used in
9
 
 * advertising or publicity pertaining to distribution of the software without
10
 
 * specific, written prior permission.  Keith Packard makes no
11
 
 * representations about the suitability of this software for any purpose.  It
12
 
 * is provided "as is" without express or implied warranty.
13
 
 *
14
 
 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15
 
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16
 
 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17
 
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18
 
 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19
 
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
 
 * PERFORMANCE OF THIS SOFTWARE.
21
 
 */
22
 
 
23
 
#ifdef HAVE_DIX_CONFIG_H
24
 
#include <dix-config.h>
25
 
#endif
26
 
 
27
 
#include "renderedge.h"
28
 
 
29
 
/*
30
 
 * Compute the smallest value no less than y which is on a
31
 
 * grid row
32
 
 */
33
 
 
34
 
xFixed
35
 
RenderSampleCeilY (xFixed y, int n)
36
 
{
37
 
    return pixman_sample_ceil_y (y, n);
38
 
}
39
 
 
40
 
#define _div(a,b)    ((a) >= 0 ? (a) / (b) : -((-(a) + (b) - 1) / (b)))
41
 
 
42
 
/*
43
 
 * Compute the largest value no greater than y which is on a
44
 
 * grid row
45
 
 */
46
 
xFixed
47
 
RenderSampleFloorY (xFixed y, int n)
48
 
{
49
 
    return pixman_sample_floor_y (y, n);
50
 
}
51
 
 
52
 
/*
53
 
 * Step an edge by any amount (including negative values)
54
 
 */
55
 
void
56
 
RenderEdgeStep (RenderEdge *e, int n)
57
 
{
58
 
    pixman_edge_step (e, n);
59
 
}
60
 
 
61
 
/*
62
 
 * Initialize one edge structure given the line endpoints and a
63
 
 * starting y value
64
 
 */
65
 
void
66
 
RenderEdgeInit (RenderEdge      *e,
67
 
                int             n,
68
 
                xFixed          y_start,
69
 
                xFixed          x_top,
70
 
                xFixed          y_top,
71
 
                xFixed          x_bot,
72
 
                xFixed          y_bot)
73
 
{
74
 
    pixman_edge_init (e, n, y_start, x_top, y_top, x_bot, y_bot);
75
 
}
76
 
 
77
 
/*
78
 
 * Initialize one edge structure given a line, starting y value
79
 
 * and a pixel offset for the line
80
 
 */
81
 
void
82
 
RenderLineFixedEdgeInit (RenderEdge *e,
83
 
                         int        n,
84
 
                         xFixed     y,
85
 
                         xLineFixed *line,
86
 
                         int        x_off,
87
 
                         int        y_off)
88
 
{
89
 
    pixman_line_fixed_edge_init (e, n, y, (pixman_line_fixed_t *)line, x_off, y_off);
90
 
}
91