Revision c78f7137 hw/milkymist-vgafb.c
b/hw/milkymist-vgafb.c | ||
---|---|---|
66 | 66 |
struct MilkymistVgafbState { |
67 | 67 |
SysBusDevice busdev; |
68 | 68 |
MemoryRegion regs_region; |
69 |
DisplayState *ds;
|
|
69 |
QemuConsole *con;
|
|
70 | 70 |
|
71 | 71 |
int invalidate; |
72 | 72 |
uint32_t fb_offset; |
... | ... | |
84 | 84 |
static void vgafb_update_display(void *opaque) |
85 | 85 |
{ |
86 | 86 |
MilkymistVgafbState *s = opaque; |
87 |
DisplaySurface *surface = qemu_console_surface(s->con); |
|
87 | 88 |
int first = 0; |
88 | 89 |
int last = 0; |
89 | 90 |
drawfn fn; |
... | ... | |
94 | 95 |
|
95 | 96 |
int dest_width = s->regs[R_HRES]; |
96 | 97 |
|
97 |
switch (ds_get_bits_per_pixel(s->ds)) {
|
|
98 |
switch (surface_bits_per_pixel(surface)) {
|
|
98 | 99 |
case 0: |
99 | 100 |
return; |
100 | 101 |
case 8: |
... | ... | |
121 | 122 |
break; |
122 | 123 |
} |
123 | 124 |
|
124 |
framebuffer_update_display(s->ds, sysbus_address_space(&s->busdev),
|
|
125 |
framebuffer_update_display(surface, sysbus_address_space(&s->busdev),
|
|
125 | 126 |
s->regs[R_BASEADDRESS] + s->fb_offset, |
126 | 127 |
s->regs[R_HRES], |
127 | 128 |
s->regs[R_VRES], |
... | ... | |
134 | 135 |
&first, &last); |
135 | 136 |
|
136 | 137 |
if (first >= 0) { |
137 |
dpy_gfx_update(s->ds, 0, first, s->regs[R_HRES], last - first + 1);
|
|
138 |
dpy_gfx_update(s->con, 0, first, s->regs[R_HRES], last - first + 1);
|
|
138 | 139 |
} |
139 | 140 |
s->invalidate = 0; |
140 | 141 |
} |
... | ... | |
151 | 152 |
return; |
152 | 153 |
} |
153 | 154 |
|
154 |
qemu_console_resize(s->ds, s->regs[R_HRES], s->regs[R_VRES]);
|
|
155 |
qemu_console_resize(s->con, s->regs[R_HRES], s->regs[R_VRES]);
|
|
155 | 156 |
s->invalidate = 1; |
156 | 157 |
} |
157 | 158 |
|
... | ... | |
277 | 278 |
"milkymist-vgafb", R_MAX * 4); |
278 | 279 |
sysbus_init_mmio(dev, &s->regs_region); |
279 | 280 |
|
280 |
s->ds = graphic_console_init(vgafb_update_display,
|
|
281 |
vgafb_invalidate_display, |
|
282 |
NULL, NULL, s); |
|
281 |
s->con = graphic_console_init(vgafb_update_display,
|
|
282 |
vgafb_invalidate_display,
|
|
283 |
NULL, NULL, s);
|
|
283 | 284 |
|
284 | 285 |
return 0; |
285 | 286 |
} |
Also available in: Unified diff