Ignore:
Timestamp:
2014-09-01T19:17:55Z (10 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
21365c0
Parents:
a4666a9 (diff), 00ddb40 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge improvements in the graphics stack.

  • Support for drawing proportional fonts (although no actual font file included yet)
  • Implementation of bilinear filter
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/compositor/compositor.c

    ra4666a9 r5713e5f  
    8484static sysarg_t coord_origin;
    8585static pixel_t bg_color;
     86static filter_t filter = filter_bilinear;
     87static unsigned int filter_index = 1;
    8688
    8789typedef struct {
     
    408410
    409411                        source_init(&source);
    410                         source_set_filter(&source, filter_nearest);
     412                        source_set_filter(&source, filter);
    411413                        drawctx_init(&context, vp->surface);
    412414                        drawctx_set_compose(&context, compose_over);
     
    442444
    443445                                        source_set_transform(&source, transform);
    444                                         source_set_texture(&source, win->surface, false);
     446                                        source_set_texture(&source, win->surface,
     447                                            PIXELMAP_EXTEND_TRANSPARENT_SIDES);
    445448                                        source_set_alpha(&source, PIXEL(win->opacity, 0, 0, 0));
    446449
     
    18181821            key == KC_O || key == KC_P);
    18191822        bool kconsole_switch = (mods & KM_ALT) && (key == KC_M);
    1820 
    1821         bool filter = (type == KEY_RELEASE) && (win_transform || win_resize ||
     1823        bool filter_switch = (mods & KM_ALT) && (key == KC_Y);
     1824
     1825        bool key_filter = (type == KEY_RELEASE) && (win_transform || win_resize ||
    18221826            win_opacity || win_close || win_switch || viewport_move ||
    1823             viewport_change || kconsole_switch);
    1824 
    1825         if (filter) {
     1827            viewport_change || kconsole_switch || filter_switch);
     1828
     1829        if (key_filter) {
    18261830                /* no-op */
    18271831        } else if (win_transform) {
     
    20912095                if (console_kcon())
    20922096                        active = false;
     2097        } else if (filter_switch) {
     2098                filter_index++;
     2099                if (filter_index > 1)
     2100                        filter_index = 0;
     2101                if (filter_index == 0) {
     2102                        filter = filter_nearest;
     2103                }
     2104                else {
     2105                        filter = filter_bilinear;
     2106                }
     2107                comp_damage(0, 0, UINT32_MAX, UINT32_MAX);
    20932108        } else {
    20942109                window_event_t *event = (window_event_t *) malloc(sizeof(window_event_t));
Note: See TracChangeset for help on using the changeset viewer.