Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tetris/screen.c

    r09f41d3 r87822ce  
    11/*
    2  * Copyright (c) 2024 Jiri Svoboda
    32 * Copyright (c) 2011 Martin Decky
    43 * All rights reserved.
     
    7372static int isset;               /* true => terminal is in game mode */
    7473
    75 static bool use_rgb;          /* true => use RGB colors */
    76 static bool use_color;          /* true => use indexed colors */
     74static bool use_color;          /* true => use colors */
    7775
    7876static const struct shape *lastshape;
     
    8078static usec_t timeleft = 0;
    8179
    82 bool size_changed;
    8380console_ctrl_t *console;
    8481
     
    9592static void start_standout(uint32_t color)
    9693{
    97         uint8_t bg;
    98         uint8_t attr;
    99 
    10094        console_flush(console);
    101         if (use_rgb) {
    102                 console_set_rgb_color(console, color, 0xffffff);
    103         } else if (use_color) {
    104                 bg = 0x00;
    105                 attr = 0;
    106                 if ((color & 0xff0000) != 0)
    107                         bg |= 0x4;
    108                 if ((color & 0x00ff00) != 0)
    109                         bg |= 0x2;
    110                 if ((color & 0x0000ff) != 0)
    111                         bg |= 0x1;
    112                 console_set_color(console, bg, 0x00, attr);
    113         }
     95        console_set_rgb_color(console, use_color ? color : 0x000000,
     96            0xffffff);
    11497}
    11598
     
    144127        console_cursor_visibility(console, 0);
    145128        resume_normal();
    146         scr_set();
     129        scr_clear();
    147130}
    148131
     
    160143}
    161144
    162 static void get_display_color_sup(bool *rgb, bool *color)
     145static bool get_display_color_sup(void)
    163146{
    164147        sysarg_t ccap;
    165148        errno_t rc = console_get_color_cap(console, &ccap);
    166149
    167         if (rc != EOK) {
    168                 *rgb = false;
    169                 *color = false;
    170                 return;
    171         }
    172 
    173         if ((ccap & CONSOLE_CAP_CURSORCTL) == 0) {
    174                 stop("Your screen does not support cursor control.\n");
    175                 return;
    176         }
    177         *rgb = ((ccap & CONSOLE_CAP_RGB) == CONSOLE_CAP_RGB);
    178         *color = ((ccap & CONSOLE_CAP_INDEXED) == CONSOLE_CAP_INDEXED);
     150        if (rc != EOK)
     151                return false;
     152
     153        return ((ccap & CONSOLE_CAP_RGB) == CONSOLE_CAP_RGB);
    179154}
    180155
     
    194169        }
    195170
    196         get_display_color_sup(&use_rgb, &use_color);
     171        use_color = get_display_color_sup();
    197172
    198173        if ((Rows < MINROWS) || (Cols < MINCOLS)) {
     
    200175
    201176                snprintf(smallscr, sizeof(smallscr),
    202                     "the screen is too small (must be at least %dx%d)\n",
     177                    "the screen is too small (must be at least %dx%d)",
    203178                    MINROWS, MINCOLS);
    204179                stop(smallscr);
     
    223198
    224199        fprintf(stderr, "aborting: %s", why);
    225         exit(1);
     200        abort();
    226201}
    227202
     
    416391                        exit(1);
    417392
    418                 if (event.type == CEV_RESIZE)
    419                         size_changed = true;
    420 
    421393                if (event.type == CEV_KEY && event.ev.key.type == KEY_PRESS)
    422394                        c = event.ev.key.c;
Note: See TracChangeset for help on using the changeset viewer.