Subpixel / RGB antialiasing

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Subpixel / RGB antialiasing

Simon McFarlane-2
Hi,

I've been having some trouble enabling subpixel smoothing on my
system. There have been a couple mailing list threads about this, but
none seem to have any resolution:

https://marc.info/?l=openbsd-misc&m=145815835126687&w=2
https://marc.info/?l=openbsd-misc&m=130565999007881&w=2
https://marc.info/?l=openbsd-ports&m=129870303523612&w=2

I have a fonts.conf that reduces the hinting to hintslight, and produces
a noticeable difference, so I know it's being read. This is also the
same fonts.conf I use on Linux and FreeBSD, where it works as expected.
But subpixel smoothing does not seem to want to turn on on OpenBSD, on
any of my systems.

Has OpenBSD deliberately disabled this feature?

Thanks,
Simon

contents of /etc/fonts/conf.d:
lrwxr-xr-x  1 root  wheel   40 Mar  6 18:43 10-scale-bitmap-fonts.conf -> ../conf.avail/10-scale-bitmap-fonts.conf
lrwxr-xr-x  1 root  wheel   35 Apr 14 10:37 10-sub-pixel-rgb.conf -> ../conf.avail/10-sub-pixel-rgb.conf
lrwxr-xr-x  1 root  wheel   51 Mar  6 18:55 20-unhint-small-dejavu-sans-mono.conf -> ../conf.avail/20-unhint-small-dejavu-sans-mono.conf
lrwxr-xr-x  1 root  wheel   46 Mar  6 18:55 20-unhint-small-dejavu-sans.conf -> ../conf.avail/20-unhint-small-dejavu-sans.conf
lrwxr-xr-x  1 root  wheel   47 Mar  6 18:55 20-unhint-small-dejavu-serif.conf -> ../conf.avail/20-unhint-small-dejavu-serif.conf
lrwxr-xr-x  1 root  wheel   39 Mar  6 18:43 20-unhint-small-vera.conf -> ../conf.avail/20-unhint-small-vera.conf
lrwxr-xr-x  1 root  wheel   36 Mar  6 18:43 30-lucida-aliases.conf -> ../conf.avail/30-lucida-aliases.conf
lrwxr-xr-x  1 root  wheel   36 Mar  6 18:43 30-metric-aliases.conf -> ../conf.avail/30-metric-aliases.conf
lrwxr-xr-x  1 root  wheel   33 Mar  6 18:43 30-urw-aliases.conf -> ../conf.avail/30-urw-aliases.conf
lrwxr-xr-x  1 root  wheel   28 Mar  6 18:43 31-nonmst.conf -> ../conf.avail/31-nonmst.conf
lrwxr-xr-x  1 root  wheel   30 Mar  6 18:43 40-nonlatin.conf -> ../conf.avail/40-nonlatin.conf
lrwxr-xr-x  1 root  wheel   31 Mar  6 18:55 42-luxi-mono.conf -> ../conf.avail/42-luxi-mono.conf
lrwxr-xr-x  1 root  wheel   27 Mar  6 18:43 45-latin.conf -> ../conf.avail/45-latin.conf
lrwxr-xr-x  1 root  wheel   31 Mar  6 18:43 49-sansserif.conf -> ../conf.avail/49-sansserif.conf
lrwxr-xr-x  1 root  wheel   26 Mar  6 18:43 50-user.conf -> ../conf.avail/50-user.conf
lrwxr-xr-x  1 root  wheel   27 Mar  6 18:43 51-local.conf -> ../conf.avail/51-local.conf
lrwxr-xr-x  1 root  wheel   27 Mar  6 18:43 60-latin.conf -> ../conf.avail/60-latin.conf
lrwxr-xr-x  1 root  wheel   35 Mar  6 18:43 65-fonts-persian.conf -> ../conf.avail/65-fonts-persian.conf
lrwxr-xr-x  1 root  wheel   30 Mar  6 18:43 65-nonlatin.conf -> ../conf.avail/65-nonlatin.conf
lrwxr-xr-x  1 root  wheel   29 Mar  6 18:43 69-unifont.conf -> ../conf.avail/69-unifont.conf
lrwxr-xr-x  1 root  wheel   31 Mar  6 18:43 80-delicious.conf -> ../conf.avail/80-delicious.conf
lrwxr-xr-x  1 root  wheel   31 Mar  6 18:43 90-synthetic.conf -> ../conf.avail/90-synthetic.conf

My ~/.config/fontconfig/fonts.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
  <match target="font">
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
<match target="font">
  <test qual="any" name="family">
    <string>Calibri</string>
  </test>
  <edit name="embeddedbitmap"><bool>false</bool></edit>
</match>
<match>
    <test name="family"><string>Helvetica</string></test>
    <edit name="family" mode="assign" binding="strong">
        <string>Arial</string>
    </edit>
</match>
<rejectfont>
    <pattern>
        <patelt name='family'>
            <string>Nimbus Sans L</string>
        </patelt>
    </pattern>
    <pattern>
        <patelt name='family'>
            <string>Nimbus Roman No9 L</string>
        </patelt>
    </pattern>
    <pattern>
        <patelt name='family'>
            <string>Nimbus Mono L</string>
        </patelt>
    </pattern>
</rejectfont>
</fontconfig>

and a dmesg:
(kernel is -current with mlarkin's keyboard resume patch applied.
I've seen this problem on snapshots as long as I've been using OpenBSD, including the latest April 4th snapshot)

OpenBSD 5.9-current (GENERIC.MP) #0: Mon Apr 11 10:43:31 PDT 2016
    simon@simonmcfar-laptop:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 7945580544 (7577MB)
avail mem = 7700533248 (7343MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0x8be3f000 (32 entries)
bios0: vendor Hewlett-Packard version "M85 Ver. 01.32" date 07/20/2015
bios0: Hewlett-Packard HP EliteBook Folio 9480m
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP HPET APIC MCFG SSDT SSDT SLIC MSDM FPDT BGRT SSDT SSDT SSDT SSDT ASF! DMAR
acpi0: wakeup devices LANC(S5) EHC1(S3) XHC_(S3) PCIB(S5) RP03(S5) NIC_(S5) RP04(S5) WNIC(S5) HST1(S5)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz, 1995.71 MHz
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz, 1995.39 MHz
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,SENSOR,ARAT
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 1, core 0, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz, 1995.39 MHz
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,SENSOR,ARAT
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 0, core 1, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz, 1995.39 MHz
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,SENSOR,ARAT
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 1, core 1, package 0
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 20, 40 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpiprt0 at acpi0: bus -1 (PEGP)
acpiprt1 at acpi0: bus 1 (RP01)
acpiprt2 at acpi0: bus 7 (RP02)
acpiprt3 at acpi0: bus 8 (RP04)
acpiprt4 at acpi0: bus -1 (RP07)
acpiprt5 at acpi0: bus -1 (RP08)
acpiprt6 at acpi0: bus 0 (PCI0)
acpiec0 at acpi0
acpicpu0 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu1 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu2 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu3 at acpi0: C3(200@506 mwait.1@0x60), C2(200@148 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpipwrres0 at acpi0: APPR, resource for HDEF
acpipwrres1 at acpi0: COMP, resource for COM1
acpipwrres2 at acpi0: LPP_, resource for LPT0
acpipwrres3 at acpi0: PXP2, resource for RP02
acpipwrres4 at acpi0: WRST
acpitz0 at acpi0: critical temperature is 128 degC
acpitz1 at acpi0: critical temperature is 128 degC
acpitz2 at acpi0: critical temperature is 128 degC
acpitz3 at acpi0: critical temperature is 128 degC
acpitz4 at acpi0: critical temperature is 128 degC
acpitz5 at acpi0: critical temperature is 128 degC
acpitz6 at acpi0: critical temperature is 128 degC
acpitz7 at acpi0: critical temperature is 128 degC
"HPQ6001" at acpi0 not configured
"PNP0C09" at acpi0 not configured
"PNP0103" at acpi0 not configured
"PNP0A06" at acpi0 not configured
"HPQ8002" at acpi0 not configured
"SYN3027" at acpi0 not configured
"HPQ6007" at acpi0 not configured
acpibat0 at acpi0: BAT0 model "Primary" serial 08622 2014/11/04 type LIon oem "Hewlett-Packard"
acpibat1 at acpi0: BAT1 not present
acpiac0 at acpi0: AC unit online
acpibtn0 at acpi0: SLPB
acpibtn1 at acpi0: LID_
"PNP0C14" at acpi0 not configured
"INT340E" at acpi0 not configured
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD01
cpu0: Enhanced SpeedStep 1995 MHz: speeds: 2701, 2700, 2600, 2400, 2300, 2100, 2000, 1800, 1700, 1600, 1400, 1300, 1100, 1000, 800, 756 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Core 4G Host" rev 0x0b
inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics" rev 0x0b
drm0 at inteldrm0
inteldrm0: msi
inteldrm0: 1600x900
error: [drm:pid0:intel_dp_set_idle_link_train] *ERROR* Timed out waiting for DP idle patterns
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
azalia0 at pci0 dev 3 function 0 "Intel Core 4G HD Audio" rev 0x0b: msi
azalia0: No codecs found
xhci0 at pci0 dev 20 function 0 "Intel 8 Series xHCI" rev 0x04: msi
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
"Intel 8 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured
puc0 at pci0 dev 22 function 3 "Intel 8 Series KT" rev 0x04: ports: 1 com
com4 at puc0 port 0 apic 0 int 19: ns16550a, 16 byte fifo
com4: probed fifo depth: 0 bytes
em0 at pci0 dev 25 function 0 "Intel I218-LM" rev 0x04: msi, address d0:bf:9c:23:82:30
azalia1 at pci0 dev 27 function 0 "Intel 8 Series HD Audio" rev 0x04: msi
azalia1: codecs: Realtek/0x0280
audio0 at azalia1
ppb0 at pci0 dev 28 function 0 "Intel 8 Series PCIE" rev 0xe4
pci1 at ppb0 bus 1
ppb1 at pci0 dev 28 function 1 "Intel 8 Series PCIE" rev 0xe4: msi
pci2 at ppb1 bus 7
rtsx0 at pci2 dev 0 function 0 "Realtek RTS5227 Card Reader" rev 0x01: msi
sdmmc0 at rtsx0
ppb2 at pci0 dev 28 function 3 "Intel 8 Series PCIE" rev 0xe4: msi
pci3 at ppb2 bus 8
iwm0 at pci3 dev 0 function 0 "Intel Dual Band Wireless AC 7260" rev 0x6b, msi
ehci0 at pci0 dev 29 function 0 "Intel 8 Series USB" rev 0x04: apic 0 int 17
usb1 at ehci0: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
pcib0 at pci0 dev 31 function 0 "Intel 8 Series LPC" rev 0x04
ahci0 at pci0 dev 31 function 2 "Intel 8 Series AHCI" rev 0x04: msi, AHCI 1.3
ahci0: port 1: 6.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 1 lun 0: <ATA, SAMSUNG MZ7PD256, DXM0> SCSI3 0/direct fixed naa.5002538500000000
sd0: 244198MB, 512 bytes/sector, 500118192 sectors, thin
ichiic0 at pci0 dev 31 function 3 "Intel 8 Series SMBus" rev 0x04: apic 0 int 18
iic0 at ichiic0
spdmem0 at iic0 addr 0x50: 8GB DDR3 SDRAM PC3-12800 SO-DIMM
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
uhub2 at uhub0 port 1 "SMSC USB2134B" rev 2.10/50.00 addr 2
uhub3 at uhub2 port 2 "Genesys Logic USB2.0 Hub" rev 2.00/77.63 addr 3
uhidev0 at uhub3 port 1 configuration 1 interface 0 "Logitech USB Optical Mouse" rev 2.00/63.00 addr 4
uhidev0: iclass 3/1
ums0 at uhidev0: 3 buttons, Z dir
wsmouse1 at ums0 mux 0
uhidev1 at uhub3 port 2 configuration 1 interface 0 "Heng Yu Technology Poker II" rev 1.10/1.00 addr 5
uhidev1: iclass 3/1
ukbd0 at uhidev1: 8 variable keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev2 at uhub3 port 2 configuration 1 interface 1 "Heng Yu Technology Poker II" rev 1.10/1.00 addr 5
uhidev2: iclass 3/0, 3 report ids
uhid0 at uhidev2 reportid 1: input=0, output=0, feature=7
uhid1 at uhidev2 reportid 2: input=1, output=0, feature=0
uhid2 at uhidev2 reportid 3: input=3, output=0, feature=0
uhidev3 at uhub3 port 3 configuration 1 interface 0 "No brand HA2-A3" rev 1.10/3.00 addr 6
uhidev3: iclass 3/0
ukbd1 at uhidev3: 8 variable keys, 6 key codes
wskbd2 at ukbd1 mux 1
wskbd2: connecting to wsdisplay0
uhidev4 at uhub3 port 3 configuration 1 interface 1 "No brand HA2-A3" rev 1.10/3.00 addr 6
uhidev4: no input interrupt endpoint
umass0 at uhub2 port 3 configuration 1 interface 0 "MediaTek Inc MT1887" rev 2.00/0.00 addr 7
umass0: using ATAPI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
cd0 at scsibus2 targ 1 lun 0: <TSSTcorp, CDDVDW SE-208DB, MF00> ATAPI 5/cdrom removable serial.0e8d180676YAG201R0C_
uhub4 at uhub0 port 3 "SMSC USB2134B" rev 2.10/60.80 addr 8
ugen0 at uhub0 port 4 "Intel product 0x07dc" rev 2.00/0.01 addr 9
ugen1 at uhub0 port 5 "Validity Sensors product 0x003d" rev 1.10/1.04 addr 10
uvideo0 at uhub0 port 7 configuration 1 interface 0 "Chicony Electronics Co.,Ltd. HP HD Webcam" rev 2.00/66.68 addr 11
video0 at uvideo0
uhub5 at uhub0 port 10 "SMSC USB5534B" rev 3.00/50.00 addr 12
uhub6 at uhub0 port 12 "SMSC USB5534B" rev 3.00/60.80 addr 13
uhub7 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.04 addr 2
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
softraid0: sd1 was not shutdown properly
sd1 at scsibus4 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006> SCSI2 0/direct fixed
sd1: 244190MB, 512 bytes/sector, 500102858 sectors
root on sd1a (b152ffef20cc4714.a) swap on sd1b dump on sd1b
WARNING: / was not properly unmounted
iwm0: hw rev 0x140, fw ver 25.228 (API ver 9), address 5c:c5:d4:21:3c:d9
wsmouse1 detached
ums0 detached
uhidev0 detached
uhidev0 at uhub3 port 1 configuration 1 interface 0 "Logitech USB Optical Mouse" rev 2.00/63.00 addr 4
uhidev0: iclass 3/1
ums0 at uhidev0: 3 buttons, Z dir
wsmouse1 at ums0 mux 0
error: [drm:pid50379:intel_dp_set_idle_link_train] *ERROR* Timed out waiting for DP idle patterns

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Matej Nanut
Hello,

OpenBSD's freetype library is built without the feature.

If you have your source trees set up, you can rebuild it after
uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
/usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Simon McFarlane-2
On 04/14/16 12:23, Matej Nanut wrote:
> Hello,
>
> OpenBSD's freetype library is built without the feature.
>
> If you have your source trees set up, you can rebuild it after
> uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
> /usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.
>

Wow, That did the trick! I was afraid I'd never see beautiful fonts on
OpenBSD.

The comment above says the feature is covered by Microsoft patents, and
is why it isn't enabled by default. Didn't those patents expire in 2010?
http://www.freetype.org/patents.html

Thanks,
Simon

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Paolo Aglialoro
I know nothing about Canadian law, but here in EU software patents, after
multiple fierce battles in European parliament, have never been recognised.

This said, afaik, SW patents are just a US hassle. Does it make sense
considering them problematic if the OS is "made in Canada"?

Il 15/apr/2016 02:17, "Simon McFarlane" <[hidden email]> ha scritto:

>
> On 04/14/16 12:23, Matej Nanut wrote:
> > Hello,
> >
> > OpenBSD's freetype library is built without the feature.
> >
> > If you have your source trees set up, you can rebuild it after
> > uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
> > /usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.
> >
>
> Wow, That did the trick! I was afraid I'd never see beautiful fonts on
> OpenBSD.
>
> The comment above says the feature is covered by Microsoft patents, and
> is why it isn't enabled by default. Didn't those patents expire in 2010?
> http://www.freetype.org/patents.html
>
> Thanks,
> Simon

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Amit Kulkarni-5
In reply to this post by Simon McFarlane-2
On Thu, Apr 14, 2016 at 7:04 PM, Simon McFarlane <[hidden email]> wrote:

> On 04/14/16 12:23, Matej Nanut wrote:
> > Hello,
> >
> > OpenBSD's freetype library is built without the feature.
> >
> > If you have your source trees set up, you can rebuild it after
> > uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
> > /usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.
> >
>
> Wow, That did the trick! I was afraid I'd never see beautiful fonts on
> OpenBSD.
>
> The comment above says the feature is covered by Microsoft patents, and
> is why it isn't enabled by default. Didn't those patents expire in 2010?
> http://www.freetype.org/patents.html
>
> Thanks,
> Simon
>
> That web-page says at the bottom, that it is updated on 25 August 2015,
yet this option is not enabled yet in freetype's upstream git repo. I
imagine the xenocara guys dcoppa@/mathhieu@/shadchin@ follows upstream.

http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/include/freetype/config/ftoption.h

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Matej Nanut
In reply to this post by Paolo Aglialoro
On 15 April 2016 at 03:08, Paolo Aglialoro <[hidden email]> wrote:
> I know nothing about Canadian law, but here in EU software patents, after
> multiple fierce battles in European parliament, have never been recognised.
>
> This said, afaik, SW patents are just a US hassle. Does it make sense
> considering them problematic if the OS is "made in Canada"?

I took this patch from Arch Linux's freetype package[0], but I didn't
feel the need to include all of them.

If Arch can include it by default, OpenBSD probably can too?

I for sure could not migrate to OpenBSD full time without enabling the
feature, but I don't mind patching it manually. :)

Note though, that enabling the feature does some weird things to font
rendering in urxvt, where things show graphical glitches without the
"URxvt.letterSpace: -1" X resource. I don't know how other terminal
emulators handle it.

[0] https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/freetype2

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

Ted Unangst-6
In reply to this post by Simon McFarlane-2
Simon McFarlane wrote:

> On 04/14/16 12:23, Matej Nanut wrote:
> > Hello,
> >
> > OpenBSD's freetype library is built without the feature.
> >
> > If you have your source trees set up, you can rebuild it after
> > uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
> > /usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.
> >
>
> Wow, That did the trick! I was afraid I'd never see beautiful fonts on
> OpenBSD.
>
> The comment above says the feature is covered by Microsoft patents, and
> is why it isn't enabled by default. Didn't those patents expire in 2010?
> http://www.freetype.org/patents.html

It says right on the linked page that the bytecode hinting patents expired and
the interpreter is now enabled by default. That does not mean the subpixel
filtering patents have expired.

Reply | Threaded
Open this post in threaded view
|

Re: Subpixel / RGB antialiasing

lists-2
Fri, 13 May 2016 10:09:11 -0400 "Ted Unangst" <[hidden email]>

> Simon McFarlane wrote:
> > On 04/14/16 12:23, Matej Nanut wrote:  
> > > Hello,
> > >
> > > OpenBSD's freetype library is built without the feature.
> > >
> > > If you have your source trees set up, you can rebuild it after
> > > uncommenting FT_CONFIG_OPTION_SUBPIXEL_RENDERING in
> > > /usr/xenocara/lib/freetype/include/freetype/config/ftoption.h.
> > >  
> >
> > Wow, That did the trick! I was afraid I'd never see beautiful fonts on
> > OpenBSD.
> >
> > The comment above says the feature is covered by Microsoft patents, and
> > is why it isn't enabled by default. Didn't those patents expire in 2010?
> > http://www.freetype.org/patents.html 
>
> It says right on the linked page that the bytecode hinting patents expired and
> the interpreter is now enabled by default. That does not mean the subpixel
> filtering patents have expired.

This is getting less relevant since 2010s with general pixel density
above 100 PPI on mainstream displays and pixel perfect fonts default.

I'm really enjoying the defaults in OpenBSD for a graphical desktop on
a 27" display refresh in 2011 after a 17" in 2005 with pixel quality
matching the 10" notebook from 2010 on all three displays about 100 PPI.

This means, I absolutely disable and do not need sub-pixel anything,
neither hinting, nor different than crisp 1 pixel line fonts.  Thanks
to OpenBSD for providing me the fluent desktop Xorg experience daily.