Lines Matching defs:framebuffer

58 } framebuffer;
87 grub_free (framebuffer.palette);
88 framebuffer.render_target = 0;
89 framebuffer.back_target = 0;
90 framebuffer.palette = 0;
91 framebuffer.palette_size = 0;
92 framebuffer.set_page = 0;
101 grub_free (framebuffer.offscreen_buffer);
102 grub_free (framebuffer.palette);
103 framebuffer.render_target = 0;
104 framebuffer.back_target = 0;
105 framebuffer.palette = 0;
106 framebuffer.palette_size = 0;
107 framebuffer.set_page = 0;
108 framebuffer.offscreen_buffer = 0;
116 grub_memcpy (mode_info, &framebuffer.render_target->mode_info,
129 for (i = 0; (i < count) && ((i + start) < framebuffer.palette_size); i++)
130 palette_data[i] = framebuffer.palette[start + i];
140 if (start + count > framebuffer.palette_size)
142 framebuffer.palette_size = start + count;
143 framebuffer.palette = grub_realloc (framebuffer.palette,
144 sizeof (framebuffer.palette[0])
145 * framebuffer.palette_size);
146 if (!framebuffer.palette)
152 for (i = 0; (i < count) && ((i + start) < framebuffer.palette_size); i++)
153 framebuffer.palette[start + i] = palette_data[i];
163 if (x > framebuffer.render_target->mode_info.width)
169 if (y > framebuffer.render_target->mode_info.height)
175 if (x + width > framebuffer.render_target->mode_info.width)
176 width = framebuffer.render_target->mode_info.width - x;
178 if (y + height > framebuffer.render_target->mode_info.height)
179 height = framebuffer.render_target->mode_info.height - y;
181 framebuffer.render_target->viewport.x = x;
182 framebuffer.render_target->viewport.y = y;
183 framebuffer.render_target->viewport.width = width;
184 framebuffer.render_target->viewport.height = height;
193 if (x) *x = framebuffer.render_target->viewport.x;
194 if (y) *y = framebuffer.render_target->viewport.y;
195 if (width) *width = framebuffer.render_target->viewport.width;
196 if (height) *height = framebuffer.render_target->viewport.height;
207 if (color_name < framebuffer.palette_size)
209 if ((framebuffer.render_target->mode_info.mode_type
216 color = grub_video_fb_map_rgb (framebuffer.palette[color_name].r,
217 framebuffer.palette[color_name].g,
218 framebuffer.palette[color_name].b);
232 if ((framebuffer.render_target->mode_info.mode_type
242 for (i = 0; i < framebuffer.palette_size; i++)
244 val = framebuffer.palette[i].r - red;
246 val = framebuffer.palette[i].g - green;
248 val = framebuffer.palette[i].b - blue;
265 else if ((framebuffer.render_target->mode_info.mode_type
268 if (red == framebuffer.render_target->mode_info.fg_red
269 && green == framebuffer.render_target->mode_info.fg_green
270 && blue == framebuffer.render_target->mode_info.fg_blue)
280 red >>= 8 - framebuffer.render_target->mode_info.red_mask_size;
281 green >>= 8 - framebuffer.render_target->mode_info.green_mask_size;
282 blue >>= 8 - framebuffer.render_target->mode_info.blue_mask_size;
283 alpha >>= 8 - framebuffer.render_target->mode_info.reserved_mask_size;
285 value = red << framebuffer.render_target->mode_info.red_field_pos;
286 value |= green << framebuffer.render_target->mode_info.green_field_pos;
287 value |= blue << framebuffer.render_target->mode_info.blue_field_pos;
288 value |= alpha << framebuffer.render_target->mode_info.reserved_field_pos;
300 if ((framebuffer.render_target->mode_info.mode_type
305 else if ((framebuffer.render_target->mode_info.mode_type
308 if (red == framebuffer.render_target->mode_info.fg_red
309 && green == framebuffer.render_target->mode_info.fg_green
310 && blue == framebuffer.render_target->mode_info.fg_blue
311 && alpha == framebuffer.render_target->mode_info.fg_alpha)
320 red >>= 8 - framebuffer.render_target->mode_info.red_mask_size;
321 green >>= 8 - framebuffer.render_target->mode_info.green_mask_size;
322 blue >>= 8 - framebuffer.render_target->mode_info.blue_mask_size;
323 alpha >>= 8 - framebuffer.render_target->mode_info.reserved_mask_size;
325 value = red << framebuffer.render_target->mode_info.red_field_pos;
326 value |= green << framebuffer.render_target->mode_info.green_field_pos;
327 value |= blue << framebuffer.render_target->mode_info.blue_field_pos;
328 value |= alpha << framebuffer.render_target->mode_info.reserved_field_pos;
342 target_info.mode_info = &framebuffer.render_target->mode_info;
343 target_info.data = framebuffer.render_target->data;
373 *red = framebuffer.palette[color].r;
374 *green = framebuffer.palette[color].g;
375 *blue = framebuffer.palette[color].b;
376 *alpha = framebuffer.palette[color].a;
441 if (framebuffer.render_target != framebuffer.back_target)
443 if (framebuffer.current_dirty.first_line > y)
444 framebuffer.current_dirty.first_line = y;
445 if (framebuffer.current_dirty.last_line < y + height)
446 framebuffer.current_dirty.last_line = y + height;
456 if ((x >= (int)framebuffer.render_target->viewport.width) || (x + (int)width < 0))
458 if ((y >= (int)framebuffer.render_target->viewport.height) || (y + (int)height < 0))
473 if ((x + width) > framebuffer.render_target->viewport.width)
474 width = framebuffer.render_target->viewport.width - x;
475 if ((y + height) > framebuffer.render_target->viewport.height)
476 height = framebuffer.render_target->viewport.height - y;
479 x += framebuffer.render_target->viewport.x;
480 y += framebuffer.render_target->viewport.y;
485 target.mode_info = &framebuffer.render_target->mode_info;
486 target.data = framebuffer.render_target->data;
819 if ((x >= (int)framebuffer.render_target->viewport.width) || (x + (int)width < 0))
821 if ((y >= (int)framebuffer.render_target->viewport.height) || (y + (int)height < 0))
864 if ((x + width) > framebuffer.render_target->viewport.width)
865 width = framebuffer.render_target->viewport.width - x;
866 if ((y + height) > framebuffer.render_target->viewport.height)
867 height = framebuffer.render_target->viewport.height - y;
882 x += framebuffer.render_target->viewport.x;
883 y += framebuffer.render_target->viewport.y;
888 target.mode_info = &framebuffer.render_target->mode_info;
889 target.data = framebuffer.render_target->data;
910 if ((x >= (int)framebuffer.render_target->viewport.width) || (x + (int)width < 0))
912 if ((y >= (int)framebuffer.render_target->viewport.height) || (y + (int)height < 0))
955 if ((x + width) > framebuffer.render_target->viewport.width)
956 width = framebuffer.render_target->viewport.width - x;
957 if ((y + height) > framebuffer.render_target->viewport.height)
958 height = framebuffer.render_target->viewport.height - y;
973 x += framebuffer.render_target->viewport.x;
974 y += framebuffer.render_target->viewport.y;
979 target_info.mode_info = &framebuffer.render_target->mode_info;
980 target_info.data = framebuffer.render_target->data;
1003 width = framebuffer.render_target->viewport.width - grub_abs (dx);
1004 height = framebuffer.render_target->viewport.height - grub_abs (dy);
1006 dirty (framebuffer.render_target->viewport.y,
1007 framebuffer.render_target->viewport.height);
1011 src_x = framebuffer.render_target->viewport.x - dx;
1012 dst_x = framebuffer.render_target->viewport.x;
1016 src_x = framebuffer.render_target->viewport.x;
1017 dst_x = framebuffer.render_target->viewport.x + dx;
1022 src_y = framebuffer.render_target->viewport.y - dy;
1023 dst_y = framebuffer.render_target->viewport.y;
1027 src_y = framebuffer.render_target->viewport.y;
1028 dst_y = framebuffer.render_target->viewport.y + dy;
1032 if ((grub_abs (dx) < framebuffer.render_target->viewport.width)
1033 && (grub_abs (dy) < framebuffer.render_target->viewport.height))
1040 target.mode_info = &framebuffer.render_target->mode_info;
1041 target.data = framebuffer.render_target->data;
1124 grub_video_fb_fill_rect (color, 0, 0, framebuffer.render_target->viewport.width, dy);
1127 if (framebuffer.render_target->viewport.height < grub_abs (dy))
1128 dy = -framebuffer.render_target->viewport.height;
1130 grub_video_fb_fill_rect (color, 0, framebuffer.render_target->viewport.height + dy,
1131 framebuffer.render_target->viewport.width, -dy);
1137 dx, framebuffer.render_target->viewport.height);
1140 if (framebuffer.render_target->viewport.width < grub_abs (dx))
1141 dx = -framebuffer.render_target->viewport.width;
1143 grub_video_fb_fill_rect (color, framebuffer.render_target->viewport.width + dx, 0,
1144 -dx, framebuffer.render_target->viewport.height);
1191 target->mode_info.number_of_colors = framebuffer.palette_size; /* Emulated palette. */
1246 /* Mark framebuffer memory as non allocated. */
1293 target = framebuffer.back_target;
1299 framebuffer.render_target = target;
1307 *target = framebuffer.render_target;
1309 if (*target == framebuffer.back_target)
1318 if (framebuffer.current_dirty.first_line
1319 <= framebuffer.current_dirty.last_line)
1320 grub_memcpy ((char *) framebuffer.pages[0]
1321 + framebuffer.current_dirty.first_line
1322 * framebuffer.back_target->mode_info.pitch,
1323 (char *) framebuffer.back_target->data
1324 + framebuffer.current_dirty.first_line
1325 * framebuffer.back_target->mode_info.pitch,
1326 framebuffer.back_target->mode_info.pitch
1327 * (framebuffer.current_dirty.last_line
1328 - framebuffer.current_dirty.first_line));
1329 framebuffer.current_dirty.first_line
1330 = framebuffer.back_target->mode_info.height;
1331 framebuffer.current_dirty.last_line = 0;
1344 framebuffer.offscreen_buffer = grub_zalloc (page_size);
1345 if (! framebuffer.offscreen_buffer)
1348 err = grub_video_fb_create_render_target_from_pointer (&framebuffer.back_target,
1350 framebuffer.offscreen_buffer);
1354 grub_free (framebuffer.offscreen_buffer);
1355 framebuffer.offscreen_buffer = 0;
1360 framebuffer.update_screen = doublebuf_blit_update_screen;
1361 framebuffer.pages[0] = framebuf;
1362 framebuffer.displayed_page = 0;
1363 framebuffer.render_page = 0;
1364 framebuffer.current_dirty.first_line = mode_info.height;
1365 framebuffer.current_dirty.last_line = 0;
1377 first_line = framebuffer.current_dirty.first_line;
1378 last_line = framebuffer.current_dirty.last_line;
1379 if (first_line > framebuffer.previous_dirty.first_line)
1380 first_line = framebuffer.previous_dirty.first_line;
1381 if (last_line < framebuffer.previous_dirty.last_line)
1382 last_line = framebuffer.previous_dirty.last_line;
1385 grub_memcpy ((char *) framebuffer.pages[framebuffer.render_page]
1386 + first_line * framebuffer.back_target->mode_info.pitch,
1387 (char *) framebuffer.back_target->data
1388 + first_line * framebuffer.back_target->mode_info.pitch,
1389 framebuffer.back_target->mode_info.pitch
1391 framebuffer.previous_dirty = framebuffer.current_dirty;
1392 framebuffer.current_dirty.first_line
1393 = framebuffer.back_target->mode_info.height;
1394 framebuffer.current_dirty.last_line = 0;
1396 /* Swap the page numbers in the framebuffer struct. */
1397 new_displayed_page = framebuffer.render_page;
1398 framebuffer.render_page = framebuffer.displayed_page;
1399 framebuffer.displayed_page = new_displayed_page;
1401 err = framebuffer.set_page (framebuffer.displayed_page);
1405 framebuffer.render_page = framebuffer.displayed_page;
1406 framebuffer.displayed_page = new_displayed_page;
1422 framebuffer.offscreen_buffer = grub_malloc (page_size);
1423 if (! framebuffer.offscreen_buffer)
1428 err = grub_video_fb_create_render_target_from_pointer (&framebuffer.back_target,
1430 framebuffer.offscreen_buffer);
1434 grub_free (framebuffer.offscreen_buffer);
1435 framebuffer.offscreen_buffer = 0;
1438 framebuffer.back_target->is_allocated = 1;
1440 framebuffer.displayed_page = 0;
1441 framebuffer.render_page = 1;
1443 framebuffer.update_screen = doublebuf_pageflipping_update_screen;
1444 framebuffer.pages[0] = page0_ptr;
1445 framebuffer.pages[1] = page1_ptr;
1447 framebuffer.current_dirty.first_line
1448 = framebuffer.back_target->mode_info.height;
1449 framebuffer.current_dirty.last_line = 0;
1450 framebuffer.previous_dirty.first_line
1451 = framebuffer.back_target->mode_info.height;
1452 framebuffer.previous_dirty.last_line = 0;
1454 /* Set the framebuffer memory data pointer and display the right page. */
1455 err = set_page_in (framebuffer.displayed_page);
1458 grub_video_fb_delete_render_target (framebuffer.back_target);
1461 framebuffer.set_page = set_page_in;
1489 framebuffer.render_target = framebuffer.back_target;
1509 err = grub_video_fb_doublebuf_blit_init (&framebuffer.back_target,
1515 framebuffer.render_target = framebuffer.back_target;
1526 err = grub_video_fb_create_render_target_from_pointer (&framebuffer.back_target,
1533 framebuffer.update_screen = 0;
1534 framebuffer.pages[0] = page0_ptr;
1535 framebuffer.displayed_page = 0;
1536 framebuffer.render_page = 0;
1537 framebuffer.set_page = 0;
1538 framebuffer.current_dirty.first_line
1539 = framebuffer.back_target->mode_info.height;
1540 framebuffer.current_dirty.last_line = 0;
1544 framebuffer.render_target = framebuffer.back_target;
1554 if (!framebuffer.update_screen)
1557 err = framebuffer.update_screen ();
1568 grub_memcpy (mode_info, &(framebuffer.back_target->mode_info),
1573 if (framebuffer.set_page && framebuffer.displayed_page != 0)
1575 framebuffer.update_screen ();
1578 *framebuf = (void *) framebuffer.pages[framebuffer.displayed_page];