The NetBSD Project

CVS log for src/sys/dev/rasops/rasops_putchar.h

[BACK] Up to [] / src / sys / dev / rasops

Request diff between arbitrary revisions

Default branch: MAIN

Revision / (download) - annotate - [select for diffs], Mon Apr 13 08:04:47 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since +234 -0 lines
Diff to previous (colored) to branchpoint 1.8 (colored)

Mostly merge changes from HEAD upto 20200411

Revision / (download) - annotate - [select for diffs], Thu Aug 15 12:21:27 2019 UTC (4 years, 8 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Changes since 1.5: +117 -41 lines
Diff to previous 1.5 (colored) next main 1.6 (colored)

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:
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:

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:

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:

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.


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

Fix a critical bug for rasops_copyrows() introduced in rev. 1.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:

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.

- 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.,
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:
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.

Revision, Sat Aug 10 01:24:17 2019 UTC (4 years, 8 months ago) by martin
Branch: phil-wifi
Changes since 1.8: +0 -234 lines

file rasops_putchar.h was added on branch phil-wifi on 2020-04-13 08:04:47 +0000

Revision 1.8 / (download) - annotate - [select for diffs], Sat Aug 10 01:24:17 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, thorpej-altq-separation-base, thorpej-altq-separation, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, bouyer-sunxi-drm-base, bouyer-sunxi-drm, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache, HEAD
Branch point for: phil-wifi
Changes since 1.7: +21 -25 lines
Diff to previous 1.7 (colored)

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.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Aug 9 12:05:51 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored)

Correctly check whether character is in font in rasops_mapchar().
Also, make sure that in putchar functions for completeness.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Aug 7 12:33:48 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.5: +113 -33 lines
Diff to previous 1.5 (colored)

Merge rasops_putchar_aa.h into rasops_putchar.h.
Support scaling underline dimensions by font height.

Revision 1.5 / (download) - annotate - [select for diffs], Tue Jul 30 15:29:40 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
CVS Tags: netbsd-9-base
Branch point for: netbsd-9
Changes since 1.4: +48 -44 lines
Diff to previous 1.4 (colored)

Try to improve performance when shadow framebuffer is present;
Use block copy from shadow fb to real fb, instead of repeating
the same operations to two fb's.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Jul 29 08:13:50 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.3: +4 -4 lines
Diff to previous 1.3 (colored)

Avoid undefined behavior when converting unaligned be32 data to
host integer, found by kUBSan.

Pointed out by msaitoh.

Revision 1.3 / (download) - annotate - [select for diffs], Sun Jul 28 12:10:52 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.2: +1 -13 lines
Diff to previous 1.2 (colored)

Avoid memset to framebuffer.

There still remains memset in rasops8.c, which will be removed soon
when putchar_aa functions are factorized.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Jul 28 12:06:10 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.1: +6 -6 lines
Diff to previous 1.1 (colored)

Cast attr to uint32_t before right shift to avoid undefined behavior.

Also, misc style/cosmetic changes for clarity.

Revision 1.1 / (download) - annotate - [select for diffs], Thu Jul 25 15:18:53 2019 UTC (4 years, 8 months ago) by rin
Branch: MAIN

Factor out putchar and width-optimized putchar functions into
rasops_putchar.h and rasops_putchar_width.h, respectively.

Possibly, we can do the same for putchar_aa functions. But it is
currently missing for 24-bpp.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

CVSweb <>