Lines Matching +full:y +full:- +full:offset

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
70 KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o)); in vt_fb_mem_wr1()
71 *(uint8_t *)(sc->fb_vbase + o) = v; in vt_fb_mem_wr1()
78 KASSERT((o + 1 < sc->fb_size), ("Offset %#08x out of fb size", o + 1)); in vt_fb_mem_wr2()
79 *(uint16_t *)(sc->fb_vbase + o) = v; in vt_fb_mem_wr2()
85 uint8_t *b = (uint8_t *)sc->fb_vbase + o; in vt_fb_mem_wr3()
87 KASSERT((o + 2 < sc->fb_size), ("Offset %#08x out of fb size", o + 2)); in vt_fb_mem_wr3()
102 KASSERT((o + 3 < sc->fb_size), ("Offset %#08x out of fb size", o + 3)); in vt_fb_mem_wr4()
103 *(uint32_t *)(sc->fb_vbase + o) = v; in vt_fb_mem_wr4()
112 info = vd->vd_softc; in vt_fb_ioctl()
124 ((video_display_start_t *)data)->x = 0; in vt_fb_ioctl()
125 ((video_display_start_t *)data)->y = 0; in vt_fb_ioctl()
129 *(u_int *)data = info->fb_stride; in vt_fb_ioctl()
133 if (vd->vd_driver->vd_blank == NULL) in vt_fb_ioctl()
135 vd->vd_driver->vd_blank(vd, TC_BLACK); in vt_fb_ioctl()
139 if (info->fb_rgboffs.red == 0 && info->fb_rgboffs.green == 0 && in vt_fb_ioctl()
140 info->fb_rgboffs.blue == 0) in vt_fb_ioctl()
142 memcpy((struct fb_rgboffs *)data, &info->fb_rgboffs, in vt_fb_ioctl()
155 vt_fb_mmap(struct vt_device *vd, vm_ooffset_t offset, vm_paddr_t *paddr, in vt_fb_mmap() argument
160 info = vd->vd_softc; in vt_fb_mmap()
162 if (info->fb_flags & FB_FLAG_NOMMAP) in vt_fb_mmap()
165 if (offset < info->fb_size) { in vt_fb_mmap()
166 if (info->fb_pbase == 0) { in vt_fb_mmap()
167 *paddr = vtophys((uint8_t *)info->fb_vbase + offset); in vt_fb_mmap()
169 *paddr = info->fb_pbase + offset; in vt_fb_mmap()
170 if (info->fb_flags & FB_FLAG_MEMATTR) in vt_fb_mmap()
171 *memattr = info->fb_memattr; in vt_fb_mmap()
184 vt_fb_setpixel(struct vt_device *vd, int x, int y, term_color_t color) in vt_fb_setpixel() argument
190 info = vd->vd_softc; in vt_fb_setpixel()
191 c = info->fb_cmap[color]; in vt_fb_setpixel()
192 o = info->fb_stride * y + x * FBTYPE_GET_BYTESPP(info); in vt_fb_setpixel()
194 if (info->fb_flags & FB_FLAG_NOWRITE) in vt_fb_setpixel()
197 KASSERT((info->fb_vbase != 0), ("Unmapped framebuffer")); in vt_fb_setpixel()
222 int x, y; in vt_fb_drawrect() local
224 for (y = y1; y <= y2; y++) { in vt_fb_drawrect()
225 if (fill || (y == y1) || (y == y2)) { in vt_fb_drawrect()
227 vt_fb_setpixel(vd, x, y, color); in vt_fb_drawrect()
229 vt_fb_setpixel(vd, x1, y, color); in vt_fb_drawrect()
230 vt_fb_setpixel(vd, x2, y, color); in vt_fb_drawrect()
242 info = vd->vd_softc; in vt_fb_blank()
243 c = info->fb_cmap[color]; in vt_fb_blank()
245 if (info->fb_flags & FB_FLAG_NOWRITE) in vt_fb_blank()
248 KASSERT((info->fb_vbase != 0), ("Unmapped framebuffer")); in vt_fb_blank()
252 for (h = 0; h < info->fb_height; h++) in vt_fb_blank()
253 for (o = 0; o < info->fb_stride; o++) in vt_fb_blank()
254 vt_fb_mem_wr1(info, h*info->fb_stride + o, c); in vt_fb_blank()
257 for (h = 0; h < info->fb_height; h++) in vt_fb_blank()
258 for (o = 0; o < info->fb_stride - 1; o += 2) in vt_fb_blank()
259 vt_fb_mem_wr2(info, h*info->fb_stride + o, c); in vt_fb_blank()
262 for (h = 0; h < info->fb_height; h++) in vt_fb_blank()
263 for (o = 0; o < info->fb_stride - 2; o += 3) { in vt_fb_blank()
264 vt_fb_mem_wr3(info, h*info->fb_stride + o, c); in vt_fb_blank()
268 for (h = 0; h < info->fb_height; h++) in vt_fb_blank()
269 for (o = 0; o < info->fb_stride - 3; o += 4) in vt_fb_blank()
270 vt_fb_mem_wr4(info, h*info->fb_stride + o, c); in vt_fb_blank()
282 unsigned int x, unsigned int y, term_color_t fg, term_color_t bg) in vt_fb_bitblt_bitmap() argument
289 info = vd->vd_softc; in vt_fb_bitblt_bitmap()
291 fgc = info->fb_cmap[fg]; in vt_fb_bitblt_bitmap()
292 bgc = info->fb_cmap[bg]; in vt_fb_bitblt_bitmap()
295 if (info->fb_flags & FB_FLAG_NOWRITE) in vt_fb_bitblt_bitmap()
298 KASSERT((info->fb_vbase != 0), ("Unmapped framebuffer")); in vt_fb_bitblt_bitmap()
301 if (y + height > vw->vw_draw_area.tr_end.tp_row) { in vt_fb_bitblt_bitmap()
302 if (y >= vw->vw_draw_area.tr_end.tp_row) in vt_fb_bitblt_bitmap()
304 height = vw->vw_draw_area.tr_end.tp_row - y; in vt_fb_bitblt_bitmap()
306 if (x + width > vw->vw_draw_area.tr_end.tp_col) { in vt_fb_bitblt_bitmap()
307 if (x >= vw->vw_draw_area.tr_end.tp_col) in vt_fb_bitblt_bitmap()
309 width = vw->vw_draw_area.tr_end.tp_col - x; in vt_fb_bitblt_bitmap()
318 o = (y + yi) * info->fb_stride + (x + xi) * bpp; in vt_fb_bitblt_bitmap()
319 o += vd->vd_transpose; in vt_fb_bitblt_bitmap()
347 unsigned int x, unsigned int y) in vt_fb_bitblt_argb() argument
353 info = vd->vd_softc; in vt_fb_bitblt_argb()
358 if (info->fb_flags & FB_FLAG_NOWRITE) in vt_fb_bitblt_argb()
361 KASSERT((info->fb_vbase != 0), ("Unmapped framebuffer")); in vt_fb_bitblt_argb()
364 if (y + height > vw->vw_draw_area.tr_end.tp_row) { in vt_fb_bitblt_argb()
365 if (y >= vw->vw_draw_area.tr_end.tp_row) in vt_fb_bitblt_argb()
367 height = vw->vw_draw_area.tr_end.tp_row - y; in vt_fb_bitblt_argb()
369 if (x + width > vw->vw_draw_area.tr_end.tp_col) { in vt_fb_bitblt_argb()
370 if (x >= vw->vw_draw_area.tr_end.tp_col) in vt_fb_bitblt_argb()
372 width = vw->vw_draw_area.tr_end.tp_col - x; in vt_fb_bitblt_argb()
376 o = (y + yi) * info->fb_stride + (x + (xi / 4)) * bpp; in vt_fb_bitblt_argb()
377 o += vd->vd_transpose; in vt_fb_bitblt_argb()
393 unsigned int col, row, x, y; in vt_fb_bitblt_text() local
400 vf = vw->vw_font; in vt_fb_bitblt_text()
402 for (row = area->tr_begin.tp_row; row < area->tr_end.tp_row; ++row) { in vt_fb_bitblt_text()
403 for (col = area->tr_begin.tp_col; col < area->tr_end.tp_col; in vt_fb_bitblt_text()
405 x = col * vf->vf_width + in vt_fb_bitblt_text()
406 vw->vw_draw_area.tr_begin.tp_col; in vt_fb_bitblt_text()
407 y = row * vf->vf_height + in vt_fb_bitblt_text()
408 vw->vw_draw_area.tr_begin.tp_row; in vt_fb_bitblt_text()
410 c = VTBUF_GET_FIELD(&vw->vw_buf, row, col); in vt_fb_bitblt_text()
413 VTBUF_ISCURSOR(&vw->vw_buf, row, col), &fg, &bg); in vt_fb_bitblt_text()
419 if (vd->vd_drawn && (vd->vd_drawn[z] == c) && in vt_fb_bitblt_text()
420 vd->vd_drawnfg && (vd->vd_drawnfg[z] == fg) && in vt_fb_bitblt_text()
421 vd->vd_drawnbg && (vd->vd_drawnbg[z] == bg)) in vt_fb_bitblt_text()
425 pattern, NULL, vf->vf_width, vf->vf_height, in vt_fb_bitblt_text()
426 x, y, fg, bg); in vt_fb_bitblt_text()
428 if (vd->vd_drawn) in vt_fb_bitblt_text()
429 vd->vd_drawn[z] = c; in vt_fb_bitblt_text()
430 if (vd->vd_drawnfg) in vt_fb_bitblt_text()
431 vd->vd_drawnfg[z] = fg; in vt_fb_bitblt_text()
432 if (vd->vd_drawnbg) in vt_fb_bitblt_text()
433 vd->vd_drawnbg[z] = bg; in vt_fb_bitblt_text()
438 if (!vd->vd_mshown) in vt_fb_bitblt_text()
443 drawn_area.tr_begin.tp_col = area->tr_begin.tp_col * vf->vf_width; in vt_fb_bitblt_text()
444 drawn_area.tr_begin.tp_row = area->tr_begin.tp_row * vf->vf_height; in vt_fb_bitblt_text()
445 drawn_area.tr_end.tp_col = area->tr_end.tp_col * vf->vf_width; in vt_fb_bitblt_text()
446 drawn_area.tr_end.tp_row = area->tr_end.tp_row * vf->vf_height; in vt_fb_bitblt_text()
450 vd->vd_mcursor->map, vd->vd_mcursor->mask, in vt_fb_bitblt_text()
451 vd->vd_mcursor->width, vd->vd_mcursor->height, in vt_fb_bitblt_text()
452 vd->vd_mx_drawn + vw->vw_draw_area.tr_begin.tp_col, in vt_fb_bitblt_text()
453 vd->vd_my_drawn + vw->vw_draw_area.tr_begin.tp_row, in vt_fb_bitblt_text()
454 vd->vd_mcursor_fg, vd->vd_mcursor_bg); in vt_fb_bitblt_text()
465 for (row = area->tr_begin.tp_row; row < area->tr_end.tp_row; ++row) { in vt_fb_invalidate_text()
466 for (col = area->tr_begin.tp_col; col < area->tr_end.tp_col; in vt_fb_invalidate_text()
472 if (vd->vd_drawn) in vt_fb_invalidate_text()
473 vd->vd_drawn[z] = 0; in vt_fb_invalidate_text()
474 if (vd->vd_drawnfg) in vt_fb_invalidate_text()
475 vd->vd_drawnfg[z] = 0; in vt_fb_invalidate_text()
476 if (vd->vd_drawnbg) in vt_fb_invalidate_text()
477 vd->vd_drawnbg[z] = 0; in vt_fb_invalidate_text()
487 info = vd->vd_softc; in vt_fb_postswitch()
489 if (info->enter != NULL) in vt_fb_postswitch()
490 info->enter(info->fb_priv); in vt_fb_postswitch()
524 info = vd->vd_softc; in vt_fb_init()
525 vd->vd_height = MIN(VT_FB_MAX_HEIGHT, info->fb_height); in vt_fb_init()
526 margin = (info->fb_height - vd->vd_height) >> 1; in vt_fb_init()
527 vd->vd_transpose = margin * info->fb_stride; in vt_fb_init()
528 vd->vd_width = MIN(VT_FB_MAX_WIDTH, info->fb_width); in vt_fb_init()
529 margin = (info->fb_width - vd->vd_width) >> 1; in vt_fb_init()
530 vd->vd_transpose += margin * (info->fb_bpp / NBBY); in vt_fb_init()
531 vd->vd_video_dev = info->fb_video_dev; in vt_fb_init()
533 if (info->fb_size == 0) in vt_fb_init()
536 if (info->fb_pbase == 0 && info->fb_vbase == 0) in vt_fb_init()
537 info->fb_flags |= FB_FLAG_NOMMAP; in vt_fb_init()
539 if (info->fb_cmsize <= 0) { in vt_fb_init()
543 info->fb_cmsize = 16; in vt_fb_init()
553 vd->vd_driver->vd_blank(vd, c); in vt_fb_init()
565 vd->vd_video_dev = NULL; in vt_fb_fini()