• src/conio/bitmap_con.c cterm.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Feb 8 23:07:40 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/3dfa12a6cacf3f1289f8c66c
    Modified Files:
    src/conio/bitmap_con.c cterm.c
    Log Message:
    Fix crash found by vttest.

    If DL was passed a parameter equal to or greater than the number of
    lines from the current line to the last line in the region, it would
    try to move a negative-sized box up, which resulted in a crash.

    This fixes that three ways:
    1) Do not allow moving boxes with negative X/Y sizes
    2) In dellines, clamp the lines to the number that could be deleted
    3) Don't move lines up of all rest of the lines are being deleted
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Nov 2 21:19:18 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d07815a94f78fa5a3bfc9f02
    Modified Files:
    src/conio/bitmap_con.c cterm.c
    Log Message:
    Implement double-height.

    This is so gross... outputting any character depends on every
    character above it, so it must be checked every time. If the state
    was ste up differently, this could be avoided, but it's not, so it
    can't.

    For v2, I'm going to want to store some per-line data in a separate
    struct so I can track this.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Nov 27 09:34:34 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d5d7762cfb39f366d6870192
    Modified Files:
    src/conio/bitmap_con.c cterm.c
    Log Message:
    Fix double-height drawing

    Top/bottom detection was somewhat broken.
    Interestingly, now the previous commit isn't working anymore.
    So issue 172 is not quite fixed yet.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Jan 9 19:08:33 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/9c871efc203959ef38f4e3be
    Modified Files:
    src/conio/bitmap_con.c cterm.c
    Log Message:
    Massive SyncTERM performance overhaul.

    This makes the performance about seven times better. Previously,
    outputting the entire works of Shakespeare took about two minutes,
    nineteen seconds on my system. With this change, it takes about
    19 seconds.

    This is still far behind non-BBS terminals like XTerm and Alacritty
    which tend to do that job in under one second.

    The main improvements:
    - For the bitmaps in memory, make them a ring buffer, and for
    full-width scrolling of more than half the screen, just move the
    top instead of a memmove()
    - Eliminate unnecessary comparisons and calculations in the glyph
    rendering loop
    - Combine drawing glyphs beside each other for better cache usage

    This still needs some cleanup, and much testing.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From MRO@VERT/BBSESINF to Deuc¿ on Thu Jan 9 22:39:11 2025
    Re: src/conio/bitmap_con.c cterm.c
    By: Deuc¿ to Git commit to main/sbbs/master on Thu Jan 09 2025 07:08 pm


    This makes the performance about seven times better. Previously,
    outputting the entire works of Shakespeare took about two minutes,
    nineteen seconds on my system. With this change, it takes about
    19 seconds.

    This is still far behind non-BBS terminals like XTerm and Alacritty
    which tend to do that job in under one second.

    The main improvements:
    - For the bitmaps in memory, make them a ring buffer, and for


    okay i am a speed reader and i absolutely need to read shakespeare as fast as possible so please correct this issue further.
    ---
    ■ Synchronet ■ ::: BBSES.info - free BBS services :::