Changes in uspace/lib/ipcgfx/src/server.c [fc4abca:5fc8244] in mainline
- File:
-
- 1 edited
-
uspace/lib/ipcgfx/src/server.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ipcgfx/src/server.c
rfc4abca r5fc8244 1 1 /* 2 * Copyright (c) 20 19Jiri Svoboda2 * Copyright (c) 2021 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>44 43 #include <ipcgfx/ipc/gc.h> 45 44 #include <ipcgfx/server.h> … … 52 51 static ipc_gc_srv_bitmap_t *gc_bitmap_lookup(ipc_gc_srv_t *, sysarg_t); 53 52 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) 53 static void gc_set_clip_rect_srv(ipc_gc_srv_t *srvgc, ipc_call_t *call) 75 54 { 76 55 gfx_rect_t rect; … … 82 61 rect.p1.y = ipc_get_arg4(call); 83 62 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 84 105 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); 85 114 async_answer_0(call, rc); 86 115 } … … 353 382 354 383 switch (method) { 384 case GC_SET_CLIP_RECT: 385 gc_set_clip_rect_srv(&srvgc, &call); 386 break; 387 case GC_SET_CLIP_RECT_NULL: 388 gc_set_clip_rect_null_srv(&srvgc, &call); 389 break; 355 390 case GC_SET_RGB_COLOR: 356 391 gc_set_rgb_color_srv(&srvgc, &call); … … 358 393 case GC_FILL_RECT: 359 394 gc_fill_rect_srv(&srvgc, &call); 395 break; 396 case GC_UPDATE: 397 gc_update_srv(&srvgc, &call); 360 398 break; 361 399 case GC_BITMAP_CREATE:
Note:
See TracChangeset
for help on using the changeset viewer.
