• src/conio/scale.c

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri May 14 11:23:13 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/519520da478586166e0cbe5f
    Modified Files:
    src/conio/scale.c
    Log Message:
    Make a generic odd pointy scaler.Since we have all odd numbers thanks to the pointy scaler, and wehave 2x thanks to xBR, we should now be able to build any integerscaling from a combination of those two scalers.This, of course, assumes you have enough CPU and RAM to actuallydo the scaling you want... powers of two will likely be the worstcase for scaling.Also, do pointy scaling before xBR.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri May 14 16:11:05 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/27980120d384a8180f69ac22
    Modified Files:
    src/conio/scale.c
    Log Message:
    Include the necessary
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed May 19 12:55:05 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/176075498ed8cc04b6eb0581
    Modified Files:
    src/conio/scale.c
    Log Message:
    On scale fail, but both buffers back in the poolIf do_scale ever failed, it would result in graphics buffers notreturning to the pool, resulting in them never being reused.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Thu May 20 01:17:03 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/a47c0a08a85fdb9fff8234c5
    Modified Files:
    src/conio/scale.c
    Log Message:
    Declare blend() as inline to eliminate gcc warningwarning: always_inline function might not be inlinable [-Wattributes]
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu May 20 01:28:27 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/0c28f0192b77c5b42e47a33a
    Modified Files:
    src/conio/scale.c
    Log Message:
    Screw it, if the compiler doesn't optimize it, just use more CPU.At least the warnings are gone.
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Thu May 20 20:34:08 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/e5207b5673336e23e80c0754
    Modified Files:
    src/conio/scale.c
    Log Message:
    Fix error: ‘stderr’ undeclared (first use in this function)
    --- SBBSecho 3.14-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sun Apr 30 23:55:12 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/3d8c103ac68b26d823749c94
    Modified Files:
    src/conio/scale.c
    Log Message:
    Fix off-by-one error and increase precisionCleans up artifacts in interpolated values nicely.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon May 1 09:16:26 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/2d915f2b0149c11b98b68d5d
    Modified Files:
    src/conio/scale.c
    Log Message:
    Scaling optimizationsUse weight == 0 instead of int == double when deciding to copy pixelWhen interpolating width, do it by column, not row
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Jul 3 22:58:58 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/476f5e8a5f2b11e42c5e19dc
    Modified Files:
    src/conio/scale.c
    Log Message:
    UBSan claims this is undefined behaviour...I don't believe them, but I'll fix it anyway.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Oct 22 13:51:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/19e20fd9e27799f0c9bc77bd
    Modified Files:
    src/conio/scale.c
    Log Message:
    Decorate some arguments to allow compiler to optimize harder
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Oct 22 14:35:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/30a163fae2b0e9fe34f08acb
    Modified Files:
    src/conio/scale.c
    Log Message:
    Don't use the C99 restrict keyword because MSVC is apparently still
    more than 25 years behind the C standard.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Nov 4 19:49:46 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/80b9fccc77dbfe64da1ff062
    Modified Files:
    src/conio/scale.c
    Log Message:
    Add most const decorations.

    Not sure what macOS is doing, but it looks like something weird is
    happening in interpolate_width... maybe some unexpected integer
    promotion?
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Nov 5 09:13:24 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/76d03c231fcf2d6bd76a2bef
    Modified Files:
    src/conio/scale.c
    Log Message:
    Use uint64_t instead of double for interpolation.

    More effort to fix the macOS issue. This could potentially result
    in slight problens with the rightmost pixel, but will protect
    against any weird FP issues and -ffast-math concerns.
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)