History log of /src/sys/dev/rasops/rasops2.c |
Revision | | Date | Author | Comments |
1.34 |
| 29-May-2022 |
andvar | s/littel/little/ mainly in copy pasted comments.
|
1.33 |
| 14-Aug-2019 |
rin | When using stamp, drop attributions other than back and foreground colors so that stamp is not updated unnecessarily.
|
1.32 |
| 10-Aug-2019 |
rin | Misc style clean up's. - Introduce and use proper macros. - Use not ambiguous variable names. - Unify similar functions as possible as I can. - G/C unused headers. - Use #include <dev/rasops/foo.h> instead of "foo.h" No particular functional changes intended.
|
1.31 |
| 07-Aug-2019 |
rin | Separate general putchar for 1-4bpp from rasops_bitops: - Support anti-aliasing for 2bpp, which works perfectly! - Support scaling underline dimensions with font height.
|
1.30 |
| 07-Aug-2019 |
rin | Stop allocating ri_buf and ri_stamp dynamically. As commented in rasops.h, it is not safe to use kmem_alloc(9) in rasops_init(); rasops routines can be used for early putchar, which means that UVM is not fully initialized.
Should fix a problem reported by macallan: http://mail-index.netbsd.org/tech-kern/2019/08/02/msg025327.html
Instead of using ri_buf, inline function rasops_memcpy32() is introduced to fill 32bit data efficiently.
Instead of using ri_stamp (per device stamp), stamp_ri is introduced to distinguish for which device stamp is calculated.
|
1.29 |
| 02-Aug-2019 |
rin | Add general putchar functions for 2 and 4bpp.
Note that 1bpp continues to use its local version in rasops1.c, which is much faster and simpler.
|
1.28 |
| 31-Jul-2019 |
rin | Switch to per-device stamp, and retire stamp_mutex.
XXX Bump kernel version after other changes for struct rasops_info.
|
1.27 |
| 31-Jul-2019 |
rin | Misc clean-up's: - protect private stuff in rasops.h by _RASOPS_PRIVATE - staticify rasops_copycols() and rasops_isgray[] - G/C unused extern int cold
|
1.26 |
| 29-Jul-2019 |
rin | branches: 1.26.2; Convert rasops2.c and rasops4.c to use rasops_putchar_width.h. Style.
|
1.25 |
| 28-Jul-2019 |
rin | Cast attr to uint32_t before right shift to avoid undefined behavior.
Also, misc style/cosmetic changes for clarity.
|
1.24 |
| 28-Jul-2019 |
rin | Fix corruption of background-colored white space and underline when font width is 8 or 16 on 2bpp screen.
|
1.23 |
| 25-Jul-2019 |
rin | Provide and use FONT_GLYPH macro, tiny optimization version of WSFONT_GLYPH.
|
1.22 |
| 25-Jul-2019 |
rin | Misc cleen up: - Make 32bit mask unsigned - DPRINTF --> __nothing ifndef DEBUG_RASOPS - "#ifdef DIAGNOSTIC if (x) panic(); #endif" --> KASSERT(!x); - KNF
No functional changes intended.
|
1.21 |
| 24-Jul-2019 |
rin | Use unsigned integers for binary data storage. No functional changes intended.
|
1.20 |
| 24-Jul-2019 |
rin | Style: - u_char --> uint8_t - u_int*_t --> uint*_t
No functional changes.
|
1.19 |
| 04-Dec-2018 |
mlelstv | rasops reused wscons attribute bits for internal control. - make upper 4 attribute bits available for such use - use wscons flag names instead of literal constants.
|
1.18 |
| 21-Apr-2013 |
kiyohara | branches: 1.18.34; 1.18.36; Support little endian makestamp.
|
1.17 |
| 04-May-2010 |
macallan | branches: 1.17.8; 1.17.18; remove now redundant ri = ... lines in putchar() methods Looks like none of my usual test builds used rasops2.c
|
1.16 |
| 04-May-2010 |
nonaka | fix compile failure.
|
1.15 |
| 04-May-2010 |
macallan | autogenerate box drawing characters for fonts that don't have them, put them into an alternate font pointed at by the recently added mappings in wsfont, adapt all putchar() methods except the rotated ones to use them XXX no attempt has been made to make this work with rotation
|
1.14 |
| 14-Mar-2009 |
dsl | branches: 1.14.2; 1.14.4; ANSIfy another 1261 function definitions. The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
|
1.13 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.12 |
| 28-Apr-2008 |
martin | branches: 1.12.8; 1.12.14; Remove clause 3 and 4 from TNF licenses
|
1.11 |
| 11-Dec-2005 |
christos | branches: 1.11.70; 1.11.72; 1.11.74; merge ktrace-lwp.
|
1.10 |
| 04-Feb-2005 |
perry | de-__P
|
1.9 |
| 15-Nov-2001 |
lukem | branches: 1.9.16; 1.9.24; 1.9.26; don't need <sys/types.h> when including <sys/param.h>
|
1.8 |
| 13-Nov-2001 |
lukem | add/cleanup RCSIDs
|
1.7 |
| 10-Aug-2001 |
bjh21 | Adjust #ifdefs so RASOPS_SMALL doesn't give "defined but not used" warnings.
|
1.6 |
| 13-Jun-2000 |
ad | branches: 1.6.4; 1.6.6; Use my proper name.
|
1.5 |
| 12-Apr-2000 |
pk | branches: 1.5.2; * Spell shift counts in decimal and masks in hex * Optimize numerous array references * Cleanup whitespace turds
|
1.4 |
| 23-Oct-1999 |
ad | - New option (RASOPS_SMALL) for the tight-fisted. - Don't use int32_t/u_int32_t unless we must. - Remove C++ single line comment delimeters that crept in. - Remove defs pertaining to byte granularity 'ragged-edge' bitmasks. - Move all declarations of per-depth initialization functions to rasops.h. - Other minor cleanup.
|
1.3 |
| 21-Jul-1999 |
ad | branches: 1.3.2; 1.3.4; 1.3.6; - Style nits - Kill some of the dainbramage in variable-depth copycols()
|
1.2 |
| 18-May-1999 |
ad | branches: 1.2.2; Assign ownership & copyright to TNF. There is probably a procedure for this that I am unaware of. Also some KNF.
|
1.1 |
| 26-Apr-1999 |
ad | Innumerable fixes and improvements. README contains list of remaining bugs that need to be squashed.
|
1.2.2.2 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
1.2.2.1 |
| 21-Jun-1999 |
thorpej | Sync w/ -current.
|
1.3.6.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.3.4.1 |
| 15-Nov-1999 |
fvdl | Sync with -current
|
1.3.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.5.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.6.6.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.6.6.1 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.6.4.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.6.4.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.6.4.1 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.9.26.1 |
| 12-Feb-2005 |
yamt | sync with head.
|
1.9.24.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.9.16.1 |
| 04-Feb-2005 |
skrll | Sync with HEAD.
|
1.11.74.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.11.74.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.11.74.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.11.72.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.11.70.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.12.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.12.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.14.4.1 |
| 30-May-2010 |
rmind | sync with head
|
1.14.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.17.18.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.17.8.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.18.36.2 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.18.36.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.18.34.1 |
| 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.26.2.1 |
| 15-Aug-2019 |
martin | Pull up following revision(s) (requested by rin in ticket #56):
sys/dev/rasops/rasops.c: revision 1.120 sys/dev/rasops/rasops.h: revision 1.40 sys/dev/rasops/rasops.c: revision 1.121 sys/dev/rasops/rasops.h: revision 1.41 sys/dev/rasops/rasops.c: revision 1.122 sys/dev/rasops/rasops.h: revision 1.42 sys/dev/rasops/rasops.h: revision 1.43 sys/dev/rasops/rasops.h: revision 1.44 sys/dev/rasops/rasops.h: revision 1.45 sys/dev/rasops/rasops.h: revision 1.46 sys/dev/rasops/rasops.h: revision 1.47 sys/dev/rasops/rasops.h: revision 1.48 sys/dev/rasops/rasops32.c: revision 1.40 sys/dev/rasops/rasops32.c: revision 1.41 sys/dev/rasops/rasops32.c: revision 1.42 sys/dev/rasops/rasops32.c: revision 1.43 sys/dev/rasops/rasops32.c: revision 1.44 sys/dev/rasops/rasops32.c: revision 1.45 sys/dev/rasops/rasops32.c: revision 1.46 sys/dev/rasops/rasops1-4_putchar.h: revision 1.1 sys/dev/rasops/rasops1-4_putchar.h: revision 1.2 sys/dev/rasops/rasops1-4_putchar.h: revision 1.3 sys/dev/rasops/rasops1_putchar_width.h: revision 1.3 sys/dev/rasops/rasops1_putchar_width.h: revision 1.4 sys/dev/rasops/rasops1_putchar_width.h: revision 1.5 sys/dev/rasops/rasops1_putchar_width.h: revision 1.6 sys/dev/rasops/README: revision 1.7 sys/dev/rasops/rasops_putchar_aa.h: revision 1.5 sys/dev/rasops/rasops_putchar_aa.h: revision 1.6 sys/dev/rasops/rasops8.c: revision 1.45 sys/dev/rasops/rasops8.c: revision 1.46 sys/dev/rasops/rasops8.c: revision 1.47 sys/dev/rasops/rasops24.c: revision 1.40 sys/dev/rasops/rasops8.c: revision 1.48 sys/dev/rasops/rasops24.c: revision 1.41 sys/dev/rasops/rasops8.c: revision 1.49 sys/dev/rasops/rasops24.c: revision 1.42 sys/dev/rasops/rasops24.c: revision 1.43 sys/dev/rasops/rasops24.c: revision 1.44 sys/dev/rasops/rasops_masks.c: revision 1.10 doc/CHANGES: revision 1.2566 sys/dev/rasops/rasops24.c: revision 1.45 doc/CHANGES: revision 1.2567 sys/dev/rasops/rasops24.c: revision 1.46 sys/dev/rasops/rasops24.c: revision 1.47 sys/dev/rasops/rasops24.c: revision 1.48 sys/dev/rasops/rasops24.c: revision 1.49 sys/dev/rasops/rasops_bitops.h: revision 1.19 sys/dev/rasops/rasops_putchar_aa.h: file removal sys/dev/wscons/wsdisplay_vcons.c: revision 1.40 sys/dev/rasops/rasops8.c: revision 1.50 sys/dev/rasops/rasops8.c: revision 1.51 sys/dev/rasops/rasops24.c: revision 1.50 sys/arch/luna68k/dev/omrasops.c: revision 1.21 sys/dev/rasops/rasops_bitops.h: revision 1.20 sys/dev/wsfb/genfb.c: revision 1.68 sys/dev/rasops/rasops_bitops.h: revision 1.21 sys/dev/wsfb/genfb.c: revision 1.69 sys/dev/rasops/rasops_putchar_width.h: revision 1.10 sys/dev/rasops/rasops_bitops.h: revision 1.22 sys/dev/rasops/rasops_putchar_width.h: revision 1.11 sys/dev/rasops/rasops_bitops.h: revision 1.23 sys/dev/rasops/rasops_putchar_width.h: revision 1.12 sys/dev/rasops/rasops_bitops.h: revision 1.24 sys/dev/rasops/rasops_putchar_width.h: revision 1.13 sys/dev/rasops/rasops_bitops.h: revision 1.25 sys/dev/rasops/rasops_putchar_width.h: revision 1.14 sys/dev/rasops/rasops_putchar_width.h: revision 1.15 sys/dev/rasops/rasops1.c: revision 1.32 sys/dev/rasops/rasops1.c: revision 1.33 sys/dev/rasops/rasops1.c: revision 1.34 sys/dev/rasops/rasops1.c: revision 1.35 sys/dev/rasops/rasops1.c: revision 1.36 sys/dev/rasops/rasops1.c: revision 1.37 sys/dev/rasops/rasops4.c: revision 1.21 sys/dev/rasops/rasops4.c: revision 1.22 sys/dev/rasops/rasops4.c: revision 1.23 sys/dev/rasops/rasops4.c: revision 1.24 sys/dev/rasops/rasops4.c: revision 1.25 sys/dev/rasops/rasops4.c: revision 1.26 sys/dev/rasops/rasops4.c: revision 1.27 sys/dev/rasops/rasops4.c: revision 1.28 sys/dev/wsfb/genfb.c: revision 1.70 sys/dev/rasops/rasops2.c: revision 1.27 sys/dev/rasops/rasops2.c: revision 1.28 share/man/man9/rasops.9: revision 1.18 sys/dev/rasops/rasops.c: revision 1.102 sys/dev/rasops/rasops2.c: revision 1.29 share/man/man9/rasops.9: revision 1.19 sys/dev/rasops/rasops.c: revision 1.103 sys/dev/rasops/rasops.c: revision 1.104 sys/dev/rasops/rasops.c: revision 1.105 sys/dev/rasops/rasops.c: revision 1.106 sys/dev/rasops/rasops.c: revision 1.107 sys/dev/rasops/rasops_putchar.h: revision 1.6 sys/dev/rasops/rasops.c: revision 1.108 sys/dev/rasops/rasops_putchar.h: revision 1.7 sys/dev/rasops/rasops.c: revision 1.109 sys/dev/rasops/rasops_putchar.h: revision 1.8 sys/dev/rasops/rasops2.c: revision 1.30 sys/dev/rasops/rasops2.c: revision 1.31 sys/dev/rasops/rasops15.c: revision 1.32 sys/dev/rasops/rasops2.c: revision 1.32 sys/dev/rasops/rasops15.c: revision 1.33 sys/dev/rasops/rasops2.c: revision 1.33 sys/dev/rasops/rasops15.c: revision 1.34 sys/dev/rasops/rasops15.c: revision 1.35 sys/dev/rasops/rasops15.c: revision 1.36 sys/dev/rasops/rasops.c: revision 1.110 sys/dev/rasops/rasops15.c: revision 1.37 sys/dev/rasops/rasops.c: revision 1.111 sys/dev/rasops/rasops15.c: revision 1.38 sys/dev/rasops/rasops.c: revision 1.112 sys/dev/rasops/rasops15.c: revision 1.39 sys/dev/rasops/rasops.c: revision 1.113 sys/dev/rasops/rasops.c: revision 1.114 sys/dev/rasops/rasops.c: revision 1.115 sys/dev/rasops/rasops_masks.h: revision 1.9 sys/dev/rasops/rasops.c: revision 1.116 sys/dev/rasops/rasops.c: revision 1.117 sys/dev/rasops/rasops.c: revision 1.118 sys/dev/rasops/rasops.c: revision 1.119 sys/dev/rasops/rasops.h: revision 1.39
Misc clean-up's: - protect private stuff in rasops.h by _RASOPS_PRIVATE - staticify rasops_copycols() and rasops_isgray[] - G/C unused extern int cold Switch to per-device stamp, and retire stamp_mutex.
Provide buffer capable of single-row pixels in order to make things simpler.
Factor out copy-paste. No functional changes. When font is switched, not only putchar, but also other ri_ops can be changed by backend driver, e.g., see rasops1.c: https://nxr.netbsd.org/xref/src/sys/dev/rasops/rasops1.c#58 4 is 1 << 2, not 1 << 3...
Fix erasecols and do_cursor for font width >= 32 bits. Also, some cosmetic clean-up's.
Oops, for rasops_copycols(), we cannot use memmove even if src == dst. On the other hand, memmove is safe for rasops_copyrows(). Fix unaligned writes to buffer, that are introduced in 1.105: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/rasops/rasops.c#rev1.105
Support font width 32 on monochrome screen.
Remove duplicate substitution. Style. No functional changes.
Correct copy count. This affects ``left-to-right'' copy for region including word boundary.
Fix a bug in shadow fb support for copycols on 1, 2, and 4bpp screen, which was introduced in 1.18: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/rasops/rasops_bitops.h#rev1.18
Add general putchar functions for 2 and 4bpp. Note that 1bpp continues to use its local version in rasops1.c, which is much faster and simpler.
Cosmetic changes. No functional changes.
Reflect reality.
Notify size of shadow framebuffer if enabled.
Fix unaligned word write's to buffer, introduced in rev 1.42: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/rasops/rasops24.c#rev1.42
Real fix for 24-bpp color: - When centering screen, locate effective base address of framebuffer to both word and 24-bit color boundary. - Consistently convert ri_devcmap to ``big endian'' if not RI_BSWAP.
Also, fix possible bug for 15/16-bpp with RI_BSWAP (not tested).
Protect rasops_copy{rows,cols}() by _RASOPS_PRIVATE.
Use _KERNEL_OPT.
Simplify calculation for 12-byte alignment. No functional changes.
Fix black color-attribution for depths 2 and 4.
Depth 2 is monochrome. IMO, it is impossible to support ANSI colors on 2-bpp display; fore- and background can be same value even if they are different colors logically.
Fix a critical bug for rasops_copyrows() introduced in rev. 1.90: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/rasops/rasops.c#rev1.90 When src < dst, we have to copy backward.
Simplify rasops_do_cursor(): - Use static masks similar to that used in rasops_bitops.h, rather than generating them on the fly. - Use pointer for proper type to avoid unnecessary casts.
Use "hp" instead of "hrp" consistently with other files. No functional changes.
Stop allocating ri_buf and ri_stamp dynamically. As commented in rasops.h, it is not safe to use kmem_alloc(9) in rasops_init(); rasops routines can be used for early putchar, which means that UVM is not fully initialized.
Should fix a problem reported by macallan: http://mail-index.netbsd.org/tech-kern/2019/08/02/msg025327.html
Instead of using ri_buf, inline function rasops_memcpy32() is introduced to fill 32bit data efficiently.
Instead of using ri_stamp (per device stamp), stamp_ri is introduced to distinguish for which device stamp is calculated.
Oops, revert an unintentional change for now.
If RI_CLEAR is set, do not forget to clear real framebuffer.
Modify struct rasops_info again (ride 9.99.4 bump). - remove ri_buf and friends. - remove ri_stamp and frieds. - introduce ri_ul, which will be used for scaling underline with font.
Also add hack for ri_ul; adjust its size to obsoleted member, ri_delta, which was only used rasops routines internally. Now, size and offsets of all members of struct rasops_info become same with netbsd-9, -8, and -7, again. So we can safelly pull up fixes to any release branches!
Scaling dimensions of underline by font height.
Currently, - offset of underline is fixed to 1-row from bottom of characters, and - height of underline is fixed to 1. Both are good for standard 8x16 fonts. However, it is too thin for larger fonts, especially when used on display of high resolution. Also, 1-row offset of underline is ugly for small fonts, e.g., spleen5x8. Therefore, adjust offset and height as, - no changes for standard 16-height fonts. - scaling by font height for larger fonts. - set offset to zero for fonts of height smaller than 16.
Merge rasops_putchar_aa.h into rasops_putchar.h.
Support scaling underline dimensions by font height.
Separate general putchar for 1-4bpp from rasops_bitops: - Support anti-aliasing for 2bpp, which works perfectly! - Support scaling underline dimensions with font height.
We support anti-aliasing for depth 2. Use switch appropriately. - Stop showing struct rasops_info; readers can read the header itself. - Correct description for optimized font widths. - Remove strange blank line.
Try to improve formatting and naration.
Make rasops_erase{rows,cols}() public again; hp300/diofb uses them. Pointed out by martin.
When legacy Apple 4-bpp color palette is used, make green dark so that kernel messages are printed nicely on white background.
Fix color range overflow; we cannot make bright colors more brighter.
Correctly check whether character is in font in rasops_mapchar(). Also, make sure that in putchar functions for completeness.
Fix bug introduced in rev. 1.69: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/wsfb/genfb.c#rev1.69 is_bgr should be initialized to false. Otherwise, color becomes strange for depths 24 and 32 unless backend explicitly set "is_bgr" property.
Set 4-bpp devcmap in a similar manner to non-RGB case of 8-bpp. No functional changes since this is not in use (4-bpp is monochrome).
Misc style clean up's. - Introduce and use proper macros. - Use not ambiguous variable names. - Unify similar functions as possible as I can. - G/C unused headers. - Use #include <dev/rasops/foo.h> instead of "foo.h"
No particular functional changes intended.
My work for rasops(9) was finished (hopefully).
I will send pull-up request for netbsd-9, if there are no new failures reported within few days.
Fix format in order not to confuse changes2html script. Minor improvements of wording for my entry.
When using stamp, drop attributions other than back and foreground colors so that stamp is not updated unnecessarily.
|