0
0
mirror of https://github.com/termux/termux-packages.git synced 2025-02-22 16:57:09 +00:00
termux-packages/packages/aalib/0011-aalib-fix-aarender.patch
Robert Kirkman ab0141c44e fix(main/aalib): update patches to match Arch Linux (#21894)
Fixes "`error: incomplete definition of type 'struct _win_st'`" during
build.

Progress on https://github.com/termux/termux-packages/issues/21130

Copied and pasted from 05e22fdc66

`0005-aalib-m4.patch`: Fix --with-aalib-prefix argument

`0006-aalib-c99.patch`: Fix builtin-declaration-mismatch compiler warnings

`0007-aalib-free-offset-pointer.patch`: Fix free-nonheap-object compiler warning

`0008-aalib-key-down-OOB.patch`: Fix aggressive-loop-optimizations compiler warning

`0009-aalib-aalinuxkbd-return.patch`: Fix 'return' with no value compiler warning

`0010-aalib-opaque-ncurses-fix.patch`: Fix build for ncurses built with opaque-curses option

`0011-aalib-fix-aarender.patch`: Fix rendering with custom aspect ratio

`0012-aalib-mouse.patch`: Fix typo for KEY_MOUSE condition
2024-12-18 03:46:11 +01:00

35 lines
1.3 KiB
Diff

This bug can be seen very clearly with e.g. mplayer -vo aa -monitoraspect 3
in which case a big part of the picture is missing or there is even completely
black output.
The reason for this is, when drawing only a part of the picture via aarender()
the first X coordinate is used for the loop count, but it is not applied to the
destination and source image index, thus instead of (re)drawing the middle part
of the image, it draws always the left part.
Actual Results:
only the left part of the image is draw (depending on the video, only the left
black bar might be draw, so you will see nothing at all - if so use a slightly
smaller value for -monitoraspect).
Expected Results:
All of the image should be drawn, and -monitoraspect should only squeeze the
image, not cause part of it to miss.
Gentoo-bug: http://bugs.gentoo.org/id=214142
Reported-by: Reimar Döffinger
Fixed-by: Reimar Döffinger
--- a/src/aarender.c.orig 2008-03-18 23:55:32.000000000 +0100
+++ b/src/aarender.c 2008-03-18 23:55:50.000000000 +0100
@@ -94,8 +94,8 @@
gamma = randomval / 2;
mval = (c->parameters[c->filltable[255]].p[4]);
for (y = y1; y < y2; y++) {
- pos = 2 * y * wi;
- pos1 = y * aa_scrwidth(c);
+ pos = 2 * (y * wi + x1);
+ pos1 = y * aa_scrwidth(c) + x1;
esum = 0;
for (x = x1; x < x2; x++) {
i1 = table[((((int) c->imagebuffer[pos])))];