Home | History | Annotate | Download | only in rasops
History log of /src/sys/dev/rasops/rasops.h
RevisionDateAuthorComments
 1.51  25-Jul-2025  martin PR 58582: make rasops and wsdisplay headers idempotent.
 1.50  24-Dec-2021  jmcneill branches: 1.50.10;
wsfb: Prefer wide fonts when EDID data is available.

To give us a better chance of picking a readable font, prefer fonts that
will render at least 3mm wide instead of picking the font that will be
closest to that size.
 1.49  02-Nov-2019  tsutsui Fix "Alignment Fault 3" kernel failure of NetBSD/zaurus 8.1 GENERIC.

#ifdef switch per kernel config options in definition of device driver
structure in header files could be problematic.

See my post in port-zaurus@ for details:
https://mail-index.netbsd.org/port-zaurus/2019/10/31/msg000079.html

Should be pulled up to netbsd-8 and netbsd-9.
 1.48  14-Aug-2019  rin When using stamp, drop attributions other than back and foreground
colors so that stamp is not updated unnecessarily.
 1.47  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.46  07-Aug-2019  rin Make rasops_erase{rows,cols}() public again; hp300/diofb uses them.

Pointed out by martin.
 1.45  07-Aug-2019  rin 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!
 1.44  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.43  03-Aug-2019  rin Protect rasops_copy{rows,cols}() by _RASOPS_PRIVATE.
 1.42  31-Jul-2019  rin Provide buffer capable of single-row pixels in order to make things simpler.

XXX
Bump kernel version for rasops_info later.
 1.41  31-Jul-2019  rin G/C ri_delta.

XXX
Bump kernel version after other changes for struct rasops_info.
 1.40  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.39  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.38  29-Jul-2019  rin branches: 1.38.2;
Avoid undefined behavior when converting unaligned be32 data to
host integer, found by kUBSan.

Pointed out by msaitoh.
 1.37  28-Jul-2019  rin Cast attr to uint32_t before right shift to avoid undefined behavior.

Also, misc style/cosmetic changes for clarity.
 1.36  25-Jul-2019  rin Provide and use FONT_GLYPH macro, tiny optimization version of WSFONT_GLYPH.
 1.35  24-Jul-2019  rin Use unsigned integers for binary data storage.
No functional changes intended.
 1.34  24-Jul-2019  rin Adjust white space.
 1.33  24-Jul-2019  rin Style:
- u_char --> uint8_t
- u_int*_t --> uint*_t

No functional changes.
 1.32  22-Apr-2017  macallan branches: 1.32.4; 1.32.12;
add RI_PREFER_ALPHA flag, for drivers that can draw such fonts by hardware
 1.31  19-Apr-2012  macallan branches: 1.31.2; 1.31.16; 1.31.20;
add another convenience function:
rasops_get_cmap() which returns either the ANSI map or an R3G3B2 map,
depending on the rasops_info handed to it so drivers don't have to
duplicate this particular code snippet
 1.30  11-Jan-2012  macallan make rasops_init()'s font selection code a bit less boneheaded by:
- actually trying to pick a font which gets as close as possible to the
requested terminal size
- accepting 0,0 as 'use system default' which can be changed by
options RASOPS_DEFAULT_WIDTH=100
options RASOPS_DEFAULT_HEIGHT=30
default is 80x25
- putting alpha and bitmap fonts in the same list and making wsfont_find()
aware of wether we support alpha fonts or not
- if supported, prefer alpha fonts over otherwise equally suitable bitmap
fonts
 1.29  03-Jan-2012  macallan add a macro to identify alpha fonts
 1.28  28-Dec-2011  macallan add a new flag for ri_flg to allow drivers to request an r3g3b2 devcmap
in 8 bit colour. Drivers are still responsible to generate an appropriate
colour map for the actual hardware.
For use with alpha blending which needs some sort of 'true' colour.
 1.27  22-Dec-2011  macallan support anti-aliased fonts ( as in, pre-rendered alpha maps ), for now only
in rasops32 although adding support in 15, 16 and 24 would be trivial.
Enabled only if the driver explicitly requests it by setting the
RI_ENABLE_ALPHA flag.
 1.26  06-May-2010  macallan branches: 1.26.8; 1.26.12;
Introduce a new flag for rasops_info to keep rasops_reconfig() from trying
to allocate memory. Use this when calling rasops_reconfig() before it is safe
to call kmem_alloc().
 1.25  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.24  17-Apr-2010  nonaka Added Sharp W-ZERO3 series support.
 1.23  21-Jan-2010  macallan branches: 1.23.2; 1.23.4;
make RI_CENTER and RI_FULLCLEAR work with a shadow framebuffer
 1.22  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.21  04-Mar-2007  christos branches: 1.21.36; 1.21.38; 1.21.40;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.20  02-Feb-2007  ober branches: 1.20.2;
Updates to allow Zaurus screen to rotate 90 degrees to a usable state with the keyboard. Patch from peter@ copied from OpenBSD. Feedback and OK from matt@
 1.19  18-Feb-2006  jmcneill branches: 1.19.14;
Add shadow framebuffer support.
 1.18  11-Dec-2005  christos branches: 1.18.2; 1.18.4; 1.18.6;
merge ktrace-lwp.
 1.17  04-Feb-2005  perry branches: 1.17.6;
de-__P
 1.16  05-Mar-2004  petrov branches: 1.16.8; 1.16.10;
Check character if it in font limits before drawing it in rasops8_putchar
functions.
 1.15  18-Sep-2001  wiz branches: 1.15.18;
Give initiali[sz]e all the "i"s it deserves.
 1.14  21-Jan-2001  takemura branches: 1.14.2; 1.14.4; 1.14.6;
Rasops supports 4bit depth.
 1.13  13-Jun-2000  ad Use my proper name.
 1.12  12-Apr-2000  pk branches: 1.12.2;
* Spell shift counts in decimal and masks in hex
* Optimize numerous array references
* Cleanup whitespace turds
 1.11  14-Dec-1999  ad Note that per-depth initialization functions shouldn't be called by mere
mortals.
 1.10  14-Dec-1999  ad The ri_hw member was added to 'struct rasops_info'. This does the same thing
as ri_priv; since ri_priv is not used anywhere in the kernel, nuke it.
 1.9  02-Dec-1999  drochner -initialize the colormap completely at compile time, to allow drivers
to use it early
-now we can declare it "const" (as "rasops_isgray[]", while we are here)
-don't use the fg/bg colors in ...alloc_attr() if the WSATTR_WSCOLORS
flag was not given - use reasonable defaults instead
-add an opaque "ri_hw" member to "rasops_info", for driver use
 1.8  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.7  24-Aug-1999  ad branches: 1.7.2; 1.7.4; 1.7.6;
- Change the semantics of rasops_init slightly
- Re-name rasops_setfont to rasops_reconfig
- Add some new run-time 'features'
- Bring all run-time 'features' under control of rasops_info::ri_flg
- Some cosmetic changes
 1.6  18-May-1999  ad branches: 1.6.2;
Assign ownership & copyright to TNF. There is probably a procedure for this
that I am unaware of. Also some KNF.
 1.5  29-Apr-1999  ad Add cookie for wsfont to rasops_info.
 1.4  26-Apr-1999  ad Innumerable fixes and improvements. README contains list of remaining bugs
that need to be squashed.
 1.3  13-Apr-1999  ad Code cleanup. Add ri_bswap member to 'struct rasops_info' to indicate that
framebuffer endianness differs from CPU (for 15,16,32-bit displays).
 1.2  13-Apr-1999  ad Fixed licensing due to a foobar on my behalf.
 1.1  13-Apr-1999  ad Initial import of 'rasops', the new raster operations set for wscons/rcons.
 1.6.2.1  21-Jun-1999  thorpej Sync w/ -current.
 1.7.6.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.7.4.1  15-Nov-1999  fvdl Sync with -current
 1.7.2.2  11-Feb-2001  bouyer Sync with HEAD.
 1.7.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.12.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.14.6.1  01-Oct-2001  fvdl Catch up with -current.
 1.14.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.14.2.1  21-Sep-2001  nathanw Catch up to -current.
 1.15.18.4  04-Feb-2005  skrll Sync with HEAD.
 1.15.18.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.18.2  18-Sep-2004  skrll Sync with HEAD.
 1.15.18.1  03-Aug-2004  skrll Sync with HEAD
 1.16.10.1  12-Feb-2005  yamt sync with head.
 1.16.8.1  29-Apr-2005  kent sync with -current
 1.17.6.3  03-Sep-2007  yamt sync with head.
 1.17.6.2  26-Feb-2007  yamt sync with head.
 1.17.6.1  21-Jun-2006  yamt sync with head.
 1.18.6.1  22-Apr-2006  simonb Sync with head.
 1.18.4.1  09-Sep-2006  rpaulo sync with head
 1.18.2.1  18-Feb-2006  yamt sync with head.
 1.19.14.1  09-Feb-2007  ad Sync with HEAD.
 1.20.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.21.40.3  11-Aug-2010  yamt sync with head.
 1.21.40.2  11-Mar-2010  yamt sync with head
 1.21.40.1  16-May-2008  yamt sync with head.
 1.21.38.1  18-May-2008  yamt sync with head.
 1.21.36.1  02-Jun-2008  mjf Sync with HEAD.
 1.23.4.1  30-May-2010  rmind sync with head
 1.23.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.23.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.26.12.2  29-Apr-2012  mrg sync to latest -current.
 1.26.12.1  18-Feb-2012  mrg merge to -current.
 1.26.8.2  23-May-2012  yamt sync with head.
 1.26.8.1  17-Apr-2012  yamt sync with head
 1.31.20.1  26-Apr-2017  pgoyette Sync with HEAD
 1.31.16.1  28-Aug-2017  skrll Sync with HEAD
 1.31.2.1  03-Dec-2017  jdolecek update from HEAD
 1.32.12.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.32.4.1  04-Nov-2019  martin Pull up following revision(s) (requested by tsutsui in ticket #1422):

sys/dev/rasops/rasops.h: revision 1.49

Fix "Alignment Fault 3" kernel failure of NetBSD/zaurus 8.1 GENERIC.
structure in header files could be problematic.

See my post in port-zaurus@ for details:
https://mail-index.netbsd.org/port-zaurus/2019/10/31/msg000079.html

Should be pulled up to netbsd-8 and netbsd-9.
 1.38.2.2  04-Nov-2019  martin Pull up following revision(s) (requested by tsutsui in ticket #394):

sys/dev/rasops/rasops.h: revision 1.49

Fix "Alignment Fault 3" kernel failure of NetBSD/zaurus 8.1 GENERIC.
structure in header files could be problematic.

See my post in port-zaurus@ for details:
https://mail-index.netbsd.org/port-zaurus/2019/10/31/msg000079.html

Should be pulled up to netbsd-8 and netbsd-9.
 1.38.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.
 1.50.10.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed