Changes in kernel/genarch/src/fb/fb.c [888c06e:eb2187c4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/fb/fb.c
r888c06e reb2187c4 267 267 } 268 268 269 /** Scroll screen down by one row 270 * 271 */ 272 static void screen_scroll(fb_instance_t *instance) 273 { 274 if ((!instance->parea.mapped) || (console_override)) { 275 for (unsigned int rel_row = 0; rel_row < instance->screen_rows; rel_row++) { 276 unsigned int y = ROW2Y(rel_row); 277 unsigned int row = rel_row + instance->offset_row; 278 279 for (unsigned int yd = 0; yd < FONT_SCANLINES; yd++) { 280 unsigned int x; 281 unsigned int col; 282 size_t bb_pos = BB_POS(instance, 0, row); 283 size_t bb_pos1 = BB_POS(instance, 0, row + 1); 284 285 for (col = 0, x = 0; col < instance->cols; 286 col++, x += FONT_WIDTH) { 287 uint16_t glyph; 288 289 if (row < instance->rows - 1) { 290 if (instance->backbuf[bb_pos] == 291 instance->backbuf[bb_pos1]) 292 goto skip; 293 294 glyph = instance->backbuf[bb_pos1]; 295 } else 296 glyph = 0; 297 298 memcpy(&instance->addr[FB_POS(instance, x, y + yd)], 299 &instance->glyphs[GLYPH_POS(instance, glyph, yd)], 300 instance->glyphscanline); 301 skip: 302 BB_NEXT_COL(bb_pos); 303 BB_NEXT_COL(bb_pos1); 304 } 305 } 306 } 307 } 308 309 /* 310 * Implement backbuffer scrolling by wrapping around 311 * the cyclic buffer. 312 */ 313 314 instance->start_row++; 315 if (instance->start_row == instance->rows) 316 instance->start_row = 0; 317 318 memsetw(&instance->backbuf[BB_POS(instance, 0, instance->rows - 1)], 319 instance->cols, 0); 320 } 321 269 322 static void cursor_put(fb_instance_t *instance) 270 323 { … … 365 418 memcpy(&instance->addr[FB_POS(instance, 0, y)], 366 419 instance->bgscan, instance->bgscanbytes); 367 }368 }369 370 /** Scroll screen down by one row371 *372 */373 static void screen_scroll(fb_instance_t *instance)374 {375 /*376 * Implement backbuffer scrolling by wrapping around377 * the cyclic buffer.378 */379 380 instance->start_row++;381 if (instance->start_row == instance->rows)382 instance->start_row = 0;383 384 if ((!instance->parea.mapped) || (console_override)) {385 fb_redraw_internal(instance);386 420 } 387 421 }
Note:
See TracChangeset
for help on using the changeset viewer.