Revision 0e1f5a0c hw/omap_lcdc.c
b/hw/omap_lcdc.c | ||
---|---|---|
125 | 125 |
uint8_t *s, *d; |
126 | 126 |
|
127 | 127 |
if (!omap_lcd || omap_lcd->plm == 1 || |
128 |
!omap_lcd->enable || !omap_lcd->state->depth)
|
|
128 |
!omap_lcd->enable || !ds_get_bits_per_pixel(omap_lcd->state))
|
|
129 | 129 |
return; |
130 | 130 |
|
131 | 131 |
frame_offset = 0; |
... | ... | |
145 | 145 |
/* Colour depth */ |
146 | 146 |
switch ((omap_lcd->palette[0] >> 12) & 7) { |
147 | 147 |
case 1: |
148 |
draw_line = draw_line_table2[omap_lcd->state->depth];
|
|
148 |
draw_line = draw_line_table2[ds_get_bits_per_pixel(omap_lcd->state)];
|
|
149 | 149 |
bpp = 2; |
150 | 150 |
break; |
151 | 151 |
|
152 | 152 |
case 2: |
153 |
draw_line = draw_line_table4[omap_lcd->state->depth];
|
|
153 |
draw_line = draw_line_table4[ds_get_bits_per_pixel(omap_lcd->state)];
|
|
154 | 154 |
bpp = 4; |
155 | 155 |
break; |
156 | 156 |
|
157 | 157 |
case 3: |
158 |
draw_line = draw_line_table8[omap_lcd->state->depth];
|
|
158 |
draw_line = draw_line_table8[ds_get_bits_per_pixel(omap_lcd->state)];
|
|
159 | 159 |
bpp = 8; |
160 | 160 |
break; |
161 | 161 |
|
162 | 162 |
case 4 ... 7: |
163 | 163 |
if (!omap_lcd->tft) |
164 |
draw_line = draw_line_table12[omap_lcd->state->depth];
|
|
164 |
draw_line = draw_line_table12[ds_get_bits_per_pixel(omap_lcd->state)];
|
|
165 | 165 |
else |
166 |
draw_line = draw_line_table16[omap_lcd->state->depth];
|
|
166 |
draw_line = draw_line_table16[ds_get_bits_per_pixel(omap_lcd->state)];
|
|
167 | 167 |
bpp = 16; |
168 | 168 |
break; |
169 | 169 |
|
... | ... | |
174 | 174 |
|
175 | 175 |
/* Resolution */ |
176 | 176 |
width = omap_lcd->width; |
177 |
if (width != omap_lcd->state->width ||
|
|
178 |
omap_lcd->height != omap_lcd->state->height) {
|
|
177 |
if (width != ds_get_width(omap_lcd->state) ||
|
|
178 |
omap_lcd->height != ds_get_height(omap_lcd->state)) {
|
|
179 | 179 |
qemu_console_resize(omap_lcd->console, |
180 | 180 |
omap_lcd->width, omap_lcd->height); |
181 | 181 |
omap_lcd->invalidate = 1; |
... | ... | |
202 | 202 |
if (omap_lcd->dma->dual) |
203 | 203 |
omap_lcd->dma->current_frame ^= 1; |
204 | 204 |
|
205 |
if (!omap_lcd->state->depth)
|
|
205 |
if (!ds_get_bits_per_pixel(omap_lcd->state))
|
|
206 | 206 |
return; |
207 | 207 |
|
208 | 208 |
line = 0; |
... | ... | |
217 | 217 |
step = width * bpp >> 3; |
218 | 218 |
scanline = frame_base + step * line; |
219 | 219 |
s = (uint8_t *) (phys_ram_base + scanline); |
220 |
d = omap_lcd->state->data;
|
|
221 |
linesize = omap_lcd->state->linesize;
|
|
220 |
d = ds_get_data(omap_lcd->state);
|
|
221 |
linesize = ds_get_linesize(omap_lcd->state);
|
|
222 | 222 |
|
223 | 223 |
dirty[0] = dirty[1] = |
224 | 224 |
cpu_physical_memory_get_dirty(scanline, VGA_DIRTY_FLAG); |
... | ... | |
293 | 293 |
static void omap_screen_dump(void *opaque, const char *filename) { |
294 | 294 |
struct omap_lcd_panel_s *omap_lcd = opaque; |
295 | 295 |
omap_update_display(opaque); |
296 |
if (omap_lcd && omap_lcd->state->data)
|
|
297 |
ppm_save(filename, omap_lcd->state->data,
|
|
296 |
if (omap_lcd && ds_get_data(omap_lcd->state))
|
|
297 |
ppm_save(filename, ds_get_data(omap_lcd->state),
|
|
298 | 298 |
omap_lcd->width, omap_lcd->height, |
299 |
omap_lcd->state->linesize);
|
|
299 |
ds_get_linesize(omap_lcd->state));
|
|
300 | 300 |
} |
301 | 301 |
|
302 | 302 |
static void omap_invalidate_display(void *opaque) { |
Also available in: Unified diff