Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset c8cf261 in mainline


Ignore:
Timestamp:
2019-10-03T09:10:01Z (13 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
6af4b4f
Parents:
aac5069
git-author:
Jiri Svoboda <jiri@…> (2019-10-02 17:09:46)
git-committer:
Jiri Svoboda <jiri@…> (2019-10-03 09:10:01)
Message:

Display server scaffolding

Files:
16 added
9 edited

Legend:

Unmodified
Added
Removed
  • abi/include/abi/ipc/interfaces.h

    raac5069 rc8cf261  
    187187            FOURCC_COMPACT('i', 'p', 'c', 't') | IFACE_EXCHANGE_SERIALIZE,
    188188        INTERFACE_PCI =
    189             FOURCC_COMPACT('p', 'c', 'i', ' ') | IFACE_EXCHANGE_SERIALIZE
     189            FOURCC_COMPACT('p', 'c', 'i', ' ') | IFACE_EXCHANGE_SERIALIZE,
     190        INTERFACE_DISPLAY =
     191            FOURCC_COMPACT('d', 's', 'p', 'l') | IFACE_EXCHANGE_SERIALIZE,
     192        INTERFACE_GC =
     193            FOURCC_COMPACT('g', 'f', 'x', 'c') | IFACE_EXCHANGE_SERIALIZE,
    190194} iface_t;
    191195
  • uspace/app/gfxdemo/gfxdemo.c

    raac5069 rc8cf261  
    3636#include <congfx/console.h>
    3737#include <draw/surface.h>
     38#include <display.h>
    3839#include <fibril.h>
    3940#include <guigfx/canvas.h>
     
    117118static errno_t demo_canvas(void)
    118119{
    119         console_ctrl_t *con = NULL;
    120120        canvas_gc_t *cgc = NULL;
    121121        gfx_context_t *gc;
     
    128128
    129129        printf("Init canvas..\n");
    130         con = console_init(stdin, stdout);
    131         if (con == NULL)
    132                 return EIO;
    133130
    134131        window = window_open("comp:0/winreg", NULL,
     
    145142        if (pixbuf == NULL) {
    146143                printf("Error allocating memory for pixel buffer.\n");
    147                 return -1;
     144                return ENOMEM;
    148145        }
    149146
     
    151148        if (surface == NULL) {
    152149                printf("Error creating surface.\n");
    153                 return -1;
     150                return EIO;
    154151        }
    155152
     
    158155        if (canvas == NULL) {
    159156                printf("Error creating canvas.\n");
    160                 return -1;
     157                return EIO;
    161158        }
    162159
     
    182179}
    183180
     181/** Run demo on display server. */
     182static errno_t demo_display(void)
     183{
     184        display_t *display = NULL;
     185        gfx_context_t *gc;
     186        display_window_t *window = NULL;
     187        errno_t rc;
     188
     189        printf("Init display..\n");
     190
     191        rc = display_open(NULL, &display);
     192        if (rc != EOK) {
     193                printf("Error opening display.\n");
     194                return rc;
     195        }
     196
     197        rc = display_window_create(display, &window);
     198        if (rc != EOK) {
     199                printf("Error creating window.\n");
     200                return rc;
     201        }
     202
     203        rc = display_window_get_gc(window, &gc);
     204        if (rc != EOK) {
     205                printf("Error getting graphics context.\n");
     206        }
     207
     208        rc = demo_rects(gc, 400, 300);
     209        if (rc != EOK)
     210                return rc;
     211
     212        rc = gfx_context_delete(gc);
     213        if (rc != EOK)
     214                return rc;
     215
     216        return EOK;
     217}
     218
    184219static void print_syntax(void)
    185220{
    186         printf("syntax: gfxdemo {canvas|console}\n");
     221        printf("syntax: gfxdemo {canvas|console|display}\n");
    187222}
    188223
     
    202237        } else if (str_cmp(argv[1], "canvas") == 0) {
    203238                rc = demo_canvas();
     239                if (rc != EOK)
     240                        return 1;
     241        } else if (str_cmp(argv[1], "display") == 0) {
     242                rc = demo_display();
    204243                if (rc != EOK)
    205244                        return 1;
  • uspace/app/gfxdemo/meson.build

    raac5069 rc8cf261  
    2727#
    2828
    29 deps = [ 'gfx', 'guigfx', 'congfx', 'ipcgfx' ]
     29deps = [ 'gfx', 'guigfx', 'congfx', 'ipcgfx', 'display' ]
    3030src = files(
    3131        'gfxdemo.c',
  • uspace/lib/c/include/ipc/services.h

    raac5069 rc8cf261  
    5454#define SERVICE_NAME_CLIPBOARD "clipboard"
    5555#define SERVICE_NAME_CORECFG  "corecfg"
     56#define SERVICE_NAME_DISPLAY  "hid/display"
    5657#define SERVICE_NAME_DHCP     "net/dhcp"
    5758#define SERVICE_NAME_DNSR     "net/dnsr"
  • uspace/lib/ipcgfx/include/ipcgfx/server.h

    raac5069 rc8cf261  
    4141#include <gfx/context.h>
    4242
    43 extern errno_t gc_conn(ipc_call_t *icall, gfx_context_t *gc)
     43extern errno_t gc_conn(ipc_call_t *icall, gfx_context_t *gc);
    4444
    4545#endif
  • uspace/lib/ipcgfx/src/client.c

    raac5069 rc8cf261  
    5151};
    5252
     53#include <stdio.h>
     54
    5355/** Set color on IPC GC.
    5456 *
     
    6769        errno_t rc;
    6870
     71        printf("ipc_gc_set_color\n");
    6972        gfx_color_get_rgb_i16(color, &r, &g, &b);
    7073
     
    8992        errno_t rc;
    9093
     94        printf("ipc_gc_fill_rect\n");
    9195        exch = async_exchange_begin(ipcgc->sess);
    9296        rc = async_req_4_0(exch, GC_FILL_RECT, rect->p0.x, rect->p0.y,
  • uspace/lib/ipcgfx/src/server.c

    raac5069 rc8cf261  
    4444#include <stdint.h>
    4545
     46#include <stdio.h>
     47
    4648#include <bd_srv.h>
    4749
     
    6466        rc = gfx_set_color(gc, color);
    6567        async_answer_0(call, rc);
     68        printf("done with rgb_color_srv\n");
    6669}
    6770
     
    8588        async_accept_0(icall);
    8689
     90        printf("gc_conn: accepted connection\n");
     91
    8792        while (true) {
    8893                ipc_call_t call;
     
    98103                switch (method) {
    99104                case GC_SET_RGB_COLOR:
     105                        printf("gc_conn: set_rgb_color\n");
    100106                        gc_set_rgb_color_srv(gc, &call);
     107                        printf("gc_conn: done set_rgb_color\n");
    101108                        break;
    102109                case GC_FILL_RECT:
     110                        printf("gc_conn: fill_rect_srv\n");
    103111                        gc_fill_rect_srv(gc, &call);
     112                        printf("gc_conn: done fill_rect_srv\n");
    104113                        break;
    105114                default:
     115                        printf("gc_conn: answer einval\n");
    106116                        async_answer_0(&call, EINVAL);
     117                        printf("gc_conn: done answer einval\n");
    107118                }
    108119        }
  • uspace/lib/meson.build

    raac5069 rc8cf261  
    8686        'guigfx',
    8787        'ieee80211',
    88         'ipcgfx'
     88        'ipcgfx',
     89
     90        'display'
    8991]
    9092
  • uspace/srv/meson.build

    raac5069 rc8cf261  
    4545        'hid/compositor',
    4646        'hid/console',
     47        'hid/display',
    4748        'hid/input',
    4849        'hid/isdv4_tablet',
Note: See TracChangeset for help on using the changeset viewer.