Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/fb/kfb/port.c

    r6d527cff r7470d97  
    11/*
    2  * Copyright (c) 2019 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * Copyright (c) 2006 Jakub Vana
    44 * Copyright (c) 2006 Ondrej Palkovsky
     
    6969        sysarg_t paddr;
    7070        gfx_rect_t rect;
     71        gfx_rect_t clip_rect;
    7172        size_t offset;
    7273        size_t scanline;
     
    9798static errno_t kfb_ddev_get_info(void *, ddev_info_t *);
    9899
     100static errno_t kfb_gc_set_clip_rect(void *, gfx_rect_t *);
    99101static errno_t kfb_gc_set_color(void *, gfx_color_t *);
    100102static errno_t kfb_gc_fill_rect(void *, gfx_rect_t *);
     
    111113
    112114static gfx_context_ops_t kfb_gc_ops = {
     115        .set_clip_rect = kfb_gc_set_clip_rect,
    113116        .set_color = kfb_gc_set_color,
    114117        .fill_rect = kfb_gc_fill_rect,
     
    134137        ddev_info_init(info);
    135138        info->rect = kfb->rect;
     139        return EOK;
     140}
     141
     142/** Set clipping rectangle on KFB.
     143 *
     144 * @param arg KFB
     145 * @param rect Rectangle or @c NULL
     146 *
     147 * @return EOK on success or an error code
     148 */
     149static errno_t kfb_gc_set_clip_rect(void *arg, gfx_rect_t *rect)
     150{
     151        kfb_t *kfb = (kfb_t *) arg;
     152
     153        if (rect != NULL)
     154                gfx_rect_clip(rect, &kfb->rect, &kfb->clip_rect);
     155        else
     156                kfb->clip_rect = kfb->rect;
     157
    136158        return EOK;
    137159}
     
    361383}
    362384
    363 #include <stdio.h>
    364385static void kfb_client_conn(ipc_call_t *icall, void *arg)
    365386{
     
    372393        kfb = (kfb_t *) ddf_fun_data_get((ddf_fun_t *) arg);
    373394
    374         printf("kfb_client_conn arg2=%lu arg3=%lu arg4=%lu\n",
    375             (unsigned long) ipc_get_arg2(icall),
    376             (unsigned long) ipc_get_arg3(icall),
    377             (unsigned long) ipc_get_arg4(icall));
    378 
    379395        gc_id = ipc_get_arg3(icall);
    380396
     
    450466
    451467        if (!present) {
    452                 ddf_fun_destroy(fun);
    453468                rc = ENOENT;
    454469                goto error;
     
    501516        kfb->rect.p1.x = width;
    502517        kfb->rect.p1.y = height;
     518
     519        kfb->clip_rect = kfb->rect;
    503520
    504521        kfb->paddr = paddr;
Note: See TracChangeset for help on using the changeset viewer.