Evas

Evas is a clean display canvas API, cross-platform, for several target display systems that can draw anti-aliased text, smooth super and sub-sampled scaled images, alpha-blend objects and much more.

Things to be done:

  • Text-grid object: That object is needed for a terminal application to not have the overhead of one text object per grid element of the terminal. The next step would be to write a smart object, then edjify all this (theme would manage scrollbars, etc...). The terminal application would provide multiple tabs, one shell for each tab. On the evas side, we need to:
    • set (x,y) grid element to a char or UTF-8 string
    • set grid size of the cells
    • set background and foreground color
    • set a background if background not transparent to char
    • keep track of which chars changed (maybe just track rows that changed and each row has a first/last char for a run of chars that changed)
    • be able to blit (copy) the array or sections of the array for scrolling
      • Could expose this via shift type functions. Either shift chars to the left/right with wrapping, rows up/down, or columns left/right. The possibility for custom copies may be available, not sure if it would serve any purpose though. --mekius
    • set a "run" of chars (eg just set a string without changing fg/bg color per char - just use the given fg/bg color for the run of chars)
    • set font / size
    • set style for each grid element (bold, italic, underline, other ?) usig a flag for each cell
      • To expand on this maybe we can use start and stop flags that way we can easily turn the escape codes (I think that's how they do color/styles) from the shell into flags? --mekius

Attachments