Changes in uspace/lib/ipcgfx/src/server.c [cdd6fc9:fc4abca] in mainline
- File:
-
- 1 edited
-
uspace/lib/ipcgfx/src/server.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ipcgfx/src/server.c
rcdd6fc9 rfc4abca 1 1 /* 2 * Copyright (c) 20 23Jiri Svoboda2 * Copyright (c) 2019 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 41 41 #include <gfx/color.h> 42 42 #include <gfx/render.h> 43 #include <ipc/bd.h> 43 44 #include <ipcgfx/ipc/gc.h> 44 45 #include <ipcgfx/server.h> … … 51 52 static ipc_gc_srv_bitmap_t *gc_bitmap_lookup(ipc_gc_srv_t *, sysarg_t); 52 53 53 static void gc_set_clip_rect_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call) 54 static void gc_set_rgb_color_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call) 55 { 56 uint16_t r, g, b; 57 gfx_color_t *color; 58 errno_t rc; 59 60 r = ipc_get_arg1(call); 61 g = ipc_get_arg2(call); 62 b = ipc_get_arg3(call); 63 64 rc = gfx_color_new_rgb_i16(r, g, b, &color); 65 if (rc != EOK) { 66 async_answer_0(call, ENOMEM); 67 return; 68 } 69 70 rc = gfx_set_color(srvgc->gc, color); 71 async_answer_0(call, rc); 72 } 73 74 static void gc_fill_rect_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call) 54 75 { 55 76 gfx_rect_t rect; … … 61 82 rect.p1.y = ipc_get_arg4(call); 62 83 63 rc = gfx_set_clip_rect(srvgc->gc, &rect);64 async_answer_0(call, rc);65 }66 67 static void gc_set_clip_rect_null_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call)68 {69 errno_t rc;70 71 rc = gfx_set_clip_rect(srvgc->gc, NULL);72 async_answer_0(call, rc);73 }74 75 static void gc_set_rgb_color_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call)76 {77 uint16_t r, g, b;78 gfx_color_t *color;79 errno_t rc;80 81 r = ipc_get_arg1(call);82 g = ipc_get_arg2(call);83 b = ipc_get_arg3(call);84 85 rc = gfx_color_new_rgb_i16(r, g, b, &color);86 if (rc != EOK) {87 async_answer_0(call, ENOMEM);88 return;89 }90 91 rc = gfx_set_color(srvgc->gc, color);92 async_answer_0(call, rc);93 }94 95 static void gc_fill_rect_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call)96 {97 gfx_rect_t rect;98 errno_t rc;99 100 rect.p0.x = ipc_get_arg1(call);101 rect.p0.y = ipc_get_arg2(call);102 rect.p1.x = ipc_get_arg3(call);103 rect.p1.y = ipc_get_arg4(call);104 105 84 rc = gfx_fill_rect(srvgc->gc, &rect); 106 async_answer_0(call, rc);107 }108 109 static void gc_update_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call)110 {111 errno_t rc;112 113 rc = gfx_update(srvgc->gc);114 85 async_answer_0(call, rc); 115 86 } … … 151 122 152 123 if (!async_share_out_receive(&call, &size, &flags)) { 153 async_answer_0(&call, EINVAL);154 124 async_answer_0(icall, EINVAL); 155 125 return; … … 158 128 /* Check size */ 159 129 if (size != PAGES2SIZE(SIZE2PAGES(dim.x * dim.y * sizeof(uint32_t)))) { 160 async_answer_0(&call, EINVAL);161 130 async_answer_0(icall, EINVAL); 162 131 return; … … 165 134 rc = async_share_out_finalize(&call, &pixels); 166 135 if (rc != EOK || pixels == AS_MAP_FAILED) { 167 async_answer_0(&call, ENOMEM);168 136 async_answer_0(icall, ENOMEM); 169 137 return; … … 385 353 386 354 switch (method) { 387 case GC_SET_CLIP_RECT:388 gc_set_clip_rect_srv(&srvgc, &call);389 break;390 case GC_SET_CLIP_RECT_NULL:391 gc_set_clip_rect_null_srv(&srvgc, &call);392 break;393 355 case GC_SET_RGB_COLOR: 394 356 gc_set_rgb_color_srv(&srvgc, &call); … … 396 358 case GC_FILL_RECT: 397 359 gc_fill_rect_srv(&srvgc, &call); 398 break;399 case GC_UPDATE:400 gc_update_srv(&srvgc, &call);401 360 break; 402 361 case GC_BITMAP_CREATE:
Note:
See TracChangeset
for help on using the changeset viewer.
