~ubuntu-branches/ubuntu/lucid/mesa/lucid

« back to all changes in this revision

Viewing changes to src/gallium/winsys/drm/vmware/xorg/vmw_screen.c

  • Committer: Bazaar Package Importer
  • Author(s): Timo Aaltonen, Timo Aaltonen, Rolf Leggewie
  • Date: 2010-03-02 17:11:31 UTC
  • mfrom: (3.3.4 sid)
  • Revision ID: james.westby@ubuntu.com-20100302171131-gf6gvuqrhzoq8c8e
Tags: 7.7-4ubuntu1
[Timo Aaltonen]
* libgl1-mesa-dri: Get rid of the old hook (65mesa-check-x86-64).
  (LP: #460809)

[Rolf Leggewie]
* debian/control: depend on dpkg package where u-a supports --force
  (LP: #525592)

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
static void
42
42
vmw_screen_cursor_load_argb(xf86CrtcPtr crtc, CARD32 *image)
43
43
{
44
 
    struct vmw_driver *vmw = modesettingPTR(crtc->scrn)->winsys_priv;
 
44
    struct vmw_customizer *vmw =
 
45
        vmw_customizer(xorg_customizer(crtc->scrn));
45
46
    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
46
47
    xf86CrtcFuncsPtr funcs = vmw->cursor_priv;
47
48
    CursorPtr c = config->cursor;
53
54
}
54
55
 
55
56
static void
56
 
vmw_screen_cursor_init(ScrnInfoPtr pScrn, struct vmw_driver *vmw)
 
57
vmw_screen_cursor_init(struct vmw_customizer *vmw)
57
58
{
 
59
    ScrnInfoPtr pScrn = vmw->pScrn;
58
60
    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
59
61
    int i;
60
62
 
70
72
}
71
73
 
72
74
static void
73
 
vmw_screen_cursor_close(ScrnInfoPtr pScrn, struct vmw_driver *vmw)
 
75
vmw_screen_cursor_close(struct vmw_customizer *vmw)
74
76
{
75
 
    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
 
77
    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(vmw->pScrn);
76
78
    int i;
77
79
 
78
80
    vmw_ioctl_cursor_bypass(vmw, 0, 0);
82
84
}
83
85
 
84
86
static Bool
85
 
vmw_screen_init(ScrnInfoPtr pScrn)
 
87
vmw_screen_init(CustomizerPtr cust, int fd)
86
88
{
87
 
    modesettingPtr ms = modesettingPTR(pScrn);
88
 
    struct vmw_driver *vmw;
89
 
 
90
 
    vmw = xnfcalloc(sizeof(*vmw), 1);
91
 
    if (!vmw)
92
 
        return FALSE;
93
 
 
94
 
    vmw->fd = ms->fd;
95
 
    ms->winsys_priv = vmw;
96
 
 
97
 
    vmw_screen_cursor_init(pScrn, vmw);
 
89
    struct vmw_customizer *vmw = vmw_customizer(cust);
 
90
 
 
91
    vmw->fd = fd;
 
92
    vmw_screen_cursor_init(vmw);
98
93
 
99
94
    /* if gallium is used then we don't need to do anything more. */
100
 
    if (ms->screen)
 
95
    if (xorg_has_gallium(vmw->pScrn))
101
96
        return TRUE;
102
97
 
103
 
    vmw_video_init(pScrn, vmw);
 
98
    vmw_video_init(vmw);
104
99
 
105
100
    return TRUE;
106
101
}
107
102
 
108
103
static Bool
109
 
vmw_screen_close(ScrnInfoPtr pScrn)
 
104
vmw_screen_close(CustomizerPtr cust)
110
105
{
111
 
    modesettingPtr ms = modesettingPTR(pScrn);
112
 
    struct vmw_driver *vmw = vmw_driver(pScrn);
 
106
    struct vmw_customizer *vmw = vmw_customizer(cust);
113
107
 
114
108
    if (!vmw)
115
109
        return TRUE;
116
110
 
117
 
    vmw_screen_cursor_close(pScrn, vmw);
118
 
 
119
 
    vmw_video_close(pScrn, vmw);
120
 
 
121
 
    ms->winsys_priv = NULL;
122
 
    xfree(vmw);
123
 
 
124
 
    return TRUE;
125
 
}
126
 
 
127
 
static Bool
128
 
vmw_screen_enter_vt(ScrnInfoPtr pScrn)
129
 
{
130
 
    debug_printf("%s: enter\n", __func__);
131
 
 
132
 
    return TRUE;
133
 
}
134
 
 
135
 
static Bool
136
 
vmw_screen_leave_vt(ScrnInfoPtr pScrn)
137
 
{
138
 
    struct vmw_driver *vmw = vmw_driver(pScrn);
139
 
 
140
 
    debug_printf("%s: enter\n", __func__);
141
 
 
142
 
    vmw_video_stop_all(pScrn, vmw);
 
111
    vmw_screen_cursor_close(vmw);
 
112
 
 
113
    vmw_video_close(vmw);
 
114
 
 
115
    return TRUE;
 
116
}
 
117
 
 
118
static Bool
 
119
vmw_screen_enter_vt(CustomizerPtr cust)
 
120
{
 
121
    debug_printf("%s: enter\n", __func__);
 
122
 
 
123
    return TRUE;
 
124
}
 
125
 
 
126
static Bool
 
127
vmw_screen_leave_vt(CustomizerPtr cust)
 
128
{
 
129
    struct vmw_customizer *vmw = vmw_customizer(cust);
 
130
 
 
131
    debug_printf("%s: enter\n", __func__);
 
132
 
 
133
    vmw_video_stop_all(vmw);
143
134
 
144
135
    return TRUE;
145
136
}
153
144
static Bool
154
145
vmw_screen_pre_init(ScrnInfoPtr pScrn, int flags)
155
146
{
156
 
    modesettingPtr ms;
 
147
    struct vmw_customizer *vmw;
 
148
    CustomizerPtr cust;
 
149
 
 
150
    vmw = xnfcalloc(1, sizeof(*vmw));
 
151
    if (!vmw)
 
152
        return FALSE;
 
153
 
 
154
    cust = &vmw->base;
 
155
 
 
156
    cust->winsys_screen_init = vmw_screen_init;
 
157
    cust->winsys_screen_close = vmw_screen_close;
 
158
    cust->winsys_enter_vt = vmw_screen_enter_vt;
 
159
    cust->winsys_leave_vt = vmw_screen_leave_vt;
 
160
    vmw->pScrn = pScrn;
 
161
 
 
162
    pScrn->driverPrivate = cust;
157
163
 
158
164
    pScrn->PreInit = vmw_screen_pre_init_saved;
159
165
    if (!pScrn->PreInit(pScrn, flags))
160
166
        return FALSE;
161
167
 
162
 
    ms = modesettingPTR(pScrn);
163
 
    ms->winsys_screen_init = vmw_screen_init;
164
 
    ms->winsys_screen_close = vmw_screen_close;
165
 
    ms->winsys_enter_vt = vmw_screen_enter_vt;
166
 
    ms->winsys_leave_vt = vmw_screen_leave_vt;
167
 
 
168
168
    return TRUE;
169
169
}
170
170