Changeset 7470d97 in mainline for uspace/drv/fb
- Timestamp:
- 2021-04-30T15:05:06Z (4 years ago)
- Branches:
- master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 051349b
- Parents:
- 252d03c
- Location:
- uspace/drv/fb
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.c
r252d03c r7470d97 1 1 /* 2 * Copyright (c) 202 0Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * Copyright (c) 2013 Jan Vesely 4 4 * All rights reserved. … … 67 67 static errno_t amdm37x_ddev_get_info(void *, ddev_info_t *); 68 68 69 static errno_t amdm37x_gc_set_clip_rect(void *, gfx_rect_t *); 69 70 static errno_t amdm37x_gc_set_color(void *, gfx_color_t *); 70 71 static errno_t amdm37x_gc_fill_rect(void *, gfx_rect_t *); … … 81 82 82 83 gfx_context_ops_t amdm37x_gc_ops = { 84 .set_clip_rect = amdm37x_gc_set_clip_rect, 83 85 .set_color = amdm37x_gc_set_color, 84 86 .fill_rect = amdm37x_gc_fill_rect, … … 291 293 dispc->rect.p1.x = x; 292 294 dispc->rect.p1.y = y; 295 dispc->clip_rect = dispc->rect; 293 296 dispc->size = size; 294 297 … … 321 324 } 322 325 326 /** Set clipping rectangle on AMDM37x display controller. 327 * 328 * @param arg AMDM37x display controller 329 * @param rect Rectangle 330 * 331 * @return EOK on success or an error code 332 */ 333 static errno_t amdm37x_gc_set_clip_rect(void *arg, gfx_rect_t *rect) 334 { 335 amdm37x_dispc_t *dispc = (amdm37x_dispc_t *) arg; 336 337 if (rect != NULL) 338 gfx_rect_clip(rect, &dispc->rect, &dispc->clip_rect); 339 else 340 dispc->clip_rect = dispc->rect; 341 342 return EOK; 343 } 344 323 345 /** Set color on AMDM37x display controller. 324 346 * … … 354 376 355 377 /* Make sure we have a sorted, clipped rectangle */ 356 gfx_rect_clip(rect, &dispc-> rect, &crect);378 gfx_rect_clip(rect, &dispc->clip_rect, &crect); 357 379 358 380 for (y = crect.p0.y; y < crect.p1.y; y++) { … … 479 501 pbm.data = dcbm->alloc.pixels; 480 502 481 /* Transform AMDM37x bounding rectangle back to bitmap coordinate system */482 gfx_rect_rtranslate(&offs, &dispc-> rect, &skfbrect);503 /* Transform AMDM37x clipping rectangle back to bitmap coordinate system */ 504 gfx_rect_rtranslate(&offs, &dispc->clip_rect, &skfbrect); 483 505 484 506 /* -
uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.h
r252d03c r7470d97 1 1 /* 2 * Copyright (c) 202 0Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * Copyright (c) 2013 Jan Vesely 4 4 * All rights reserved. … … 63 63 pixel_t color; 64 64 gfx_rect_t rect; 65 gfx_rect_t clip_rect; 65 66 size_t size; 66 67 void *fb_data; -
uspace/drv/fb/kfb/port.c
r252d03c r7470d97 1 1 /* 2 * Copyright (c) 20 19Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * Copyright (c) 2006 Jakub Vana 4 4 * Copyright (c) 2006 Ondrej Palkovsky … … 69 69 sysarg_t paddr; 70 70 gfx_rect_t rect; 71 gfx_rect_t clip_rect; 71 72 size_t offset; 72 73 size_t scanline; … … 97 98 static errno_t kfb_ddev_get_info(void *, ddev_info_t *); 98 99 100 static errno_t kfb_gc_set_clip_rect(void *, gfx_rect_t *); 99 101 static errno_t kfb_gc_set_color(void *, gfx_color_t *); 100 102 static errno_t kfb_gc_fill_rect(void *, gfx_rect_t *); … … 111 113 112 114 static gfx_context_ops_t kfb_gc_ops = { 115 .set_clip_rect = kfb_gc_set_clip_rect, 113 116 .set_color = kfb_gc_set_color, 114 117 .fill_rect = kfb_gc_fill_rect, … … 134 137 ddev_info_init(info); 135 138 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 */ 149 static 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 136 158 return EOK; 137 159 } … … 361 383 } 362 384 363 #include <stdio.h>364 385 static void kfb_client_conn(ipc_call_t *icall, void *arg) 365 386 { … … 372 393 kfb = (kfb_t *) ddf_fun_data_get((ddf_fun_t *) arg); 373 394 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 379 395 gc_id = ipc_get_arg3(icall); 380 396 … … 500 516 kfb->rect.p1.x = width; 501 517 kfb->rect.p1.y = height; 518 519 kfb->clip_rect = kfb->rect; 502 520 503 521 kfb->paddr = paddr;
Note:
See TracChangeset
for help on using the changeset viewer.