Changeset 90f5d64 in mainline for console/gcons.c


Ignore:
Timestamp:
2006-06-03T14:54:51Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
dc5a0fe1
Parents:
0861786
Message:

AS_AREA_CACHEABLE not needed anymore for sharing.
Added icons to console.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • console/gcons.c

    r0861786 r90f5d64  
    3131#include <async.h>
    3232#include <stdio.h>
     33#include <sys/mman.h>
     34#include <string.h>
    3335
    3436#include "console.h"
    3537#include "gcons.h"
    3638
    37 #define CONSOLE_TOP      50
     39#define CONSOLE_TOP      65
    3840#define CONSOLE_MARGIN   10
    3941
    40 #define STATUS_SPACE    20
     42#define STATUS_START    120
     43#define STATUS_SPACE    5
    4144#define STATUS_WIDTH    40
    4245#define STATUS_HEIGHT   30
    4346
    44 #define MAIN_COLOR      0x118811
     47#define MAIN_COLOR      0xffffff
    4548
    4649static int use_gcons = 0;
     
    146149}
    147150
     151static void draw_pixmap(char *logo, size_t size, int x, int y)
     152{
     153        char *shm;
     154        int rc;
     155
     156        /* Create area */
     157        shm = mmap(NULL, size, PROTO_READ | PROTO_WRITE, MAP_SHARED | MAP_ANONYMOUS, 0, 0);
     158        if (shm == MAP_FAILED)
     159                return;
     160
     161        memcpy(shm, logo, size);
     162        /* Send area */
     163        rc = sync_send_2(fbphone, FB_PREPARE_SHM, (ipcarg_t)shm, 0, NULL, NULL);
     164        if (rc)
     165                goto exit;
     166        rc = sync_send_3(fbphone, IPC_M_AS_AREA_SEND, (ipcarg_t)shm, 0, PROTO_READ, NULL, NULL, NULL);
     167        if (rc)
     168                goto drop;
     169        /* Draw logo */
     170        send_call_2(fbphone, FB_DRAW_PPM, x, y);
     171drop:
     172        /* Drop area */
     173        nsend_call(fbphone, FB_DROP_SHM, 0);
     174exit:       
     175        /* Remove area */
     176        munmap(shm, size);
     177}
     178
     179extern char _binary_helenos_ppm_start[0];
     180extern int _binary_helenos_ppm_size;
     181extern char _binary_nameic_ppm_start[0];
     182extern int _binary_nameic_ppm_size;
    148183void gcons_redraw_console(void)
    149184{
    150185        int i;
     186        size_t hsize = (size_t)&_binary_helenos_ppm_size;
    151187
    152188        if (!use_gcons)
     
    156192        set_style(MAIN_COLOR, MAIN_COLOR);
    157193        clear();
     194        draw_pixmap(_binary_helenos_ppm_start, (size_t)&_binary_helenos_ppm_size, xres-64, 0);
     195        draw_pixmap(_binary_nameic_ppm_start, (size_t)&_binary_nameic_ppm_size, 5, 10);
     196
    158197
    159198        for (i=0;i < CONSOLE_COUNT; i++)
     
    185224        /* Create status buttons */
    186225        for (i=0; i < CONSOLE_COUNT; i++) {
    187                 cstatus_vp[i] = vp_create(CONSOLE_MARGIN+i*(STATUS_WIDTH+STATUS_SPACE),
     226                cstatus_vp[i] = vp_create(STATUS_START+CONSOLE_MARGIN+i*(STATUS_WIDTH+STATUS_SPACE),
    188227                                          CONSOLE_MARGIN, STATUS_WIDTH, STATUS_HEIGHT);
    189228                if (cstatus_vp[i] < 0)
Note: See TracChangeset for help on using the changeset viewer.