Example #1
0
def setup_for_testing(family='monospace', size=11.0, dpi=96.0):
    opts = defaults._replace(font_family=family)
    set_options(opts)
    sprites = {}

    def send_to_gpu(x, y, z, data):
        sprites[(x, y, z)] = data

    sprite_map_set_limits(100000, 100)
    set_send_sprite_to_gpu(send_to_gpu)
    set_logical_dpi(dpi, dpi)
    cell_width, cell_height = set_font_family(opts, override_font_size=size)
    prerender()
    return sprites, cell_width, cell_height
Example #2
0
def test_rendering(text='\'PingšŸ‘aā§½ī‚°',
                   sz=144,
                   family='monospace',
                   underline=2,
                   strikethrough=True):
    from kitty.config import defaults
    from kitty.fast_data_types import glfw_init, glfw_terminate
    if not glfw_init():
        raise SystemExit('Failed to initialize glfw')
    try:
        opts = defaults._replace(font_family=family, font_size=sz)
        set_font_family(opts)
        display_bitmap(*render_string(
            text, underline=underline, strikethrough=strikethrough))
    finally:
        glfw_terminate()
Example #3
0
    def __enter__(self) -> Tuple[Dict[Tuple[int, int, int], bytes], int, int]:
        opts = defaults._replace(font_family=self.family, font_size=self.size)
        set_options(opts)
        sprites = {}

        def send_to_gpu(x: int, y: int, z: int, data: bytes) -> None:
            sprites[(x, y, z)] = data

        sprite_map_set_limits(100000, 100)
        set_send_sprite_to_gpu(send_to_gpu)
        try:
            set_font_family(opts)
            cell_width, cell_height = create_test_font_group(self.size, self.dpi, self.dpi)
            return sprites, cell_width, cell_height
        except Exception:
            set_send_sprite_to_gpu(None)
            raise
Example #4
0
def develop(family='monospace', sz=288):
    import pickle
    from .render import render_string
    from kitty.fast_data_types import glfw_init
    from kitty.config import defaults
    import os
    glfw_init()
    try:
        os.remove('/tmp/cell.data')
    except EnvironmentError:
        pass
    opts = defaults._replace(font_family=family, font_size=sz)
    set_font_family(opts, ignore_dpi_failure=True)
    for (bold, italic), face in main_font.items():
        print('bold: {} italic: {} {}'.format(bold, italic, face))
    print('cell_width: {}, cell_height: {}, baseline: {}'.format(
        cell_width, cell_height, baseline))
    buf, w, h = render_string()
    open('/tmp/cell.data', 'wb').write(pickle.dumps((bytearray(buf), w, h)))
Example #5
0
    def __enter__(self):
        from collections import OrderedDict
        opts = defaults._replace(font_family=self.family, font_size=self.size)
        set_options(opts)
        sprites = OrderedDict()

        def send_to_gpu(x, y, z, data):
            sprites[(x, y, z)] = data

        sprite_map_set_limits(100000, 100)
        set_send_sprite_to_gpu(send_to_gpu)
        try:
            set_font_family(opts)
            cell_width, cell_height = create_test_font_group(
                self.size, self.dpi, self.dpi)
            return sprites, cell_width, cell_height
        except Exception:
            set_send_sprite_to_gpu(None)
            raise
Example #6
0
def test_drawing(sz=32, family='monospace'):
    from .render import join_cells, display_bitmap, render_cell, set_font_family
    from kitty.config import defaults
    opts = defaults._replace(font_family=family, font_size=sz)
    width, height = set_font_family(opts)
    pos = 0x2500
    rows = []
    space = render_cell()[0]
    space_row = join_cells(width, height, *repeat(space, 32))

    for r in range(8):
        row = []
        for i in range(16):
            row.append(render_cell(chr(pos))[0]), row.append(space)
            pos += 1
        rows.append(join_cells(width, height, *row))
        rows.append(space_row)
    width *= 32
    im = join_rows(width, height, rows)
    display_bitmap(im, width, height * len(rows))
Example #7
0
def test_rendering(text='\'PingšŸ‘aā§½ī‚°', sz=144, family='monospace'):
    from kitty.config import defaults
    opts = defaults._replace(font_family=family, font_size=sz)
    set_font_family(opts)
    display_bitmap(*render_string(text))