Changeset 4912dd59 in mainline for uspace/srv/hid/display/ddev.c


Ignore:
Timestamp:
2020-05-19T10:21:12Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4c4d6142
Parents:
4d8002d
git-author:
Jiri Svoboda <jiri@…> (2020-05-18 18:17:47)
git-committer:
Jiri Svoboda <jiri@…> (2020-05-19 10:21:12)
Message:

Actually fill in fake cursor unit tests (paint, get_rect)

Fixed ds_cursor_paint() to work without GC (fixes post_ptd_event_wnd_switch
test) and fixed ds_cursor_paint() to render bitmap also when called
for the first time (found by the unit test).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/display/ddev.c

    r4d8002d r4912dd59  
    4242#include "display.h"
    4343#include "ddev.h"
     44
     45/** Create display device object.
     46 *
     47 * @param display Parent display
     48 * @param dd Display device
     49 * @param info Display device info
     50 * @param svc_id Display device service ID
     51 * @param svc_name Display device service name
     52 * @param gc Display device GC
     53 * @param rddev Place to store pointer to new display device.
     54 * @return EOK on success, ENOMEM if out of memory
     55 */
     56errno_t ds_ddev_create(ds_display_t *display, ddev_t *dd,
     57    ddev_info_t *info, char *svc_name, service_id_t svc_id,
     58    gfx_context_t *gc, ds_ddev_t **rddev)
     59{
     60        ds_ddev_t *ddev;
     61
     62        ddev = calloc(1, sizeof(ds_ddev_t));
     63        if (ddev == NULL)
     64                return ENOMEM;
     65
     66        ddev->svc_name = svc_name;
     67        ddev->svc_id = svc_id;
     68        ddev->dd = dd;
     69        ddev->gc = gc;
     70        ddev->info = *info;
     71
     72        ds_display_add_ddev(display, ddev);
     73
     74        *rddev = ddev;
     75        return EOK;
     76}
    4477
    4578/** Open display device.
     
    95128        }
    96129
    97         ddev = calloc(1, sizeof(ds_ddev_t));
    98         if (ddev == NULL) {
     130        rc = ds_ddev_create(display, dd, &info, name, svc_id, gc, &ddev);
     131        if (rc != EOK) {
    99132                free(name);
    100133                ddev_close(dd);
    101                 return ENOMEM;
     134                gfx_context_delete(gc);
     135                return rc;
    102136        }
    103 
    104         ddev->svc_name = name;
    105         ddev->svc_id = svc_id;
    106         ddev->dd = dd;
    107         ddev->gc = gc;
    108         ddev->info = info;
    109 
    110         ds_display_add_ddev(display, ddev);
    111137
    112138        rc = ds_display_paint_bg(display, NULL);
Note: See TracChangeset for help on using the changeset viewer.