summaryrefslogtreecommitdiff
path: root/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
blob: dbc5d5bd40ca7317fab59154bdd115c4b051edfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
]>

<article>

<title>Release Notes for XFree86&trade; &relvers;
<author>The XFree86 Project, Inc
<date>17 December 2000

<ident>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.60 2001/03/02 17:40:48 dawes Exp $
</ident>

<abstract>

This document contains some information about the features present
in XFree86 &relvers; and their status.

</abstract>

<toc>

<sect>Introduction to the 4.x Release Series
<p>
XFree86 4.0 was the first official release of the new XFree86 4 series.
<![ %updaterel [
XFree86 &relvers; is the &whichupdaterel; update to &fullrelvers;, which
is the latest full release in that series.
]]>
<![ %fullrel [
The current release (&relvers;) is the latest in that series.
]]>
XFree86
4 represents a significant redesign of the XFree86 X server.
Not all of the hardware drivers from 3.3.x have been ported to 4.x yet,
but conversely, 4.x has some hardware support not present in 3.3.x.
Our <htmlurl name="Driver Status document" url="Status.html"> summarizes
how the hardware driver support compares between &legacyvers; and &relvers;.
Please check there first before downloading &relvers;.

The 4.0.1 release introduced a new graphical configuration tool,
"<tt>xf86cfg</tt>", and a text mode interface was added to it for the
4.0.2 release.  It is work in progress, but definitely worth trying out.
The trusty old text-based tool "<tt>xf86config</tt>" can also be used
for generating X server config files.  In addition to these tools, we've
been working on a configuration tool that is built-in to the X
server.  It is included in the release, and it works well for some
hardware.  To try it out, just run (as root) "<tt>XFree86 -configure</tt>".
Each of these configuration options will give you a reasonable starting
point for a suitable configuration file.  We've put some effort into
documenting the &relvers; config file format, and you can find that
information in the XF86Config manual page. Check that, the driver manual
pages and the related documentation for further information.

<!--
Oh, another thing you might notice is that our documentation is rather
patchy.  Most of what is present should be in reasonable shape, but
there are gaps.  We thought it better to leave out docs that were very
out of date rather than providing inaccurate and misleading information.
We are looking for people to also help fill those gaps in &lt;hint hint
:-&gt;.
-->

Before you go to download and install the binary distributions for
this release, please have a quick read through the <htmlurl
name="Installation Document" url="Install.html">.  It may save you some
time and help you figure out which of the binary releases you need.

<![ %updaterel [
The next sections describe what has changed in the update release(s)
as well as what is new in the latest full release (&fullrelvers;).
]]>
<![ %fullrel [
The next section describes what is new in the latest version (&relvers;).
]]>
The other sections below describe some of the new features and changes
between 3.3.x and 4.0.  There are lot's of new features, and we definitely
don't have enough space to cover them all here.

</sect>

<![ %updaterel [
<sect>Summary of updates in &relvers;.
<p>

</sect>
]]>

<sect>Summary of new features in &fullrelvers;.
<p>
<sect1>X server
<p>
<itemize>
  <item>Darwin/Mac OS X is now supported and the X server runs on PowerPC.
	The X server for this platform is called "Xdarwin", and its
	installation and configuration is different from the "XFree86"
	server used on other platforms.  Please read the <htmlurl
	url="Darwin.html" name="XFree86 on Darwin and Mac OS X"> document
	for further information.

  <item>Mesa has been updated to the 3.4 stable release.

  <item>A driver for ATI Radeon adapters has been added.

  <item>ATI driver support for multi-head configurations and non-Intel
        platforms has been improved.

  <item>The ATI driver has been changed to invoke the appropriate driver for
        any Rage 128 and Radeon adapters that it finds in the system.

  <item>A driver (i128) for Number Nine chipsets has been added.

  <item>A driver (savage) for S3 Savage chipsets has been added.

  <item>A driver (siliconmotion) for some Silicon Motion chipsets has been
	added.

  <item>The driver (ark) for Ark Logic chips has been ported to 4.x.

  <item>A VESA driver has been added.
 
  <item>A driver for SGI newport cards has been added (Linux/mips).

  <item>The trident driver has lots of fixes to the CyberBlade/Blade
	support, XVideo support for the Image/Blade series (although
	scaling doesn't work yet on the Image series).

  <item>The s3virge driver has stabilized ViRGE GX2 support, includes
	ViRGE DX and ViRGE support for XVideo YUV images, and various fixes.

  <item>The 3Dlabs (glint) driver now has Permedia3 support.

  <item>The SiS driver has had many updates, and XVideo support for the 630
	is included.

  <item>The NVIDIA (nv) driver has been updated to include support for the
	GeForce2, and line acceleration has been added.  Also, DDC support
	has been improved, and support added for Alpha platforms (dense only).

  <item>The neomagic driver has had various bug fixes and extended acceleration
	support.  DGA support has also been added.

  <item>The Chips and Technologies driver (chips) has initial support for
	the 69030.

  <item>The tseng driver has multi-head fixes and DGA support has been added.

  <item>Most video drivers have been converted to use the integrated "fb"
	framebuffer code instead of the old "cfb" code.
	
  <item>DRI support has been updated for the Rage 128, 3Dfx Voodoo3 and
	Voodoo5, Intel i810/i815 and Matrox G400.  DRI support for SiS
	and Sun Creator3D is available.  The DRI is now also available on
	Alpha platforms.

  <item>An input driver (citron) for Citron Infrared Touch devices has been
	added.

  <item>An input driver (penmount) for PenMount devices has been added.

  <item>An input driver (digitaledge) for DigitalEdge devices has been added.

  <item>Big endian problems in Xinerama have been fixed.

  <item>The new "render" extension has been added (see <ref id="render"
	name="below">).  The design has been
	extended in the following ways:<p>

	<itemize>
	  <item>A new FillRectangles request was added.

	  <item>The 'mask' operand was changed to allow per-channel alphas.

	</itemize>

	<p>Server implementation:

	<itemize>
	  <item>Implemented remaining code for client clip lists.

	  <item>Fixed plenty of bugs related to text rendering.

	  <item>Complete compositing code, except for separate alpha.

	</itemize>

	<p>Todo:

	<itemize>
	  <item>Polygons

	  <item>Image scaling

	  <item>Separate alpha channels

	  <item>Support for visuals other than TrueColor.

	</itemize>

	<p>Drivers with render extension support include: i128, glint, ati (r128
	and radeon), chips, cirrus, mga, neomagic, nv, tdfx, trident, tseng,
	vesa, s3virge.

	<p>Acceleration for the render extension:

	<itemize>
	  <item>XAA infrastructure for acceleration.

	  <item>Experimental MGA acceleration using XAA

	  <item>kdrive (TinyX) infrastructure

	  <item>Experimental TinyX Trident 9525DVD acceleration

	</itemize>

	<p>Xft library:

	<itemize>
	  <item>New font naming/access library.

	  <item>Abstraction for core/Render text.

	  <item>Uses FreeType2 rasterizer.

	  <item>Allows anti-aliased/subpixel sampled text.

	  <item>Gracefully falls back to core rendering.

	  <item>Complicated font matching mechanism.

	  <item>Uses server DPI to convert point sizes to pixel sizes, even
		for core fonts.

	</itemize>

	<p>xterm:

	<itemize>
	  <item>Can use Xft, by default uses core fonts.

	  <item>Uses new options '<tt>-fa</tt>' for family name and
		'<tt>-fs</tt>' for font size (in points).

	</itemize>

	<p>x11perf:

	<itemize>
	  <item>Add tests for anti-aliased, subpixel sampled and aliased
		fonts using the Xft library.

	</itemize>

	<p>xditview:

	<itemize>
	  <item>When the Xft library is build, uses Xft for all font access.

	</itemize>

	<p>Qt, Gtk, twm:

	<itemize>
	  <item>Qt changes available <url
		url="http://XFree86.org/~keithp/download/qtkernel.tar.bz2"
		name="here">.

	  <item>Gtk changes in process.

	  <item>twm hacks should never see the light of day.

	</itemize>
	

  <item><tt>xf86cfg</tt>, a new graphical configuration tool for XFree86 4.x,
	and can be used to either write the initial configuration or make
	customisations to the current configuration.  <tt>xf86cfg</tt> is
	a work in progress, and allows configuration of:<p>

	<itemize>
	  <item>Specific setup of monitors, cards, keyboards and mice, as
		well as adding or removing them.
	  <item>Server layout setup, allowing complex configuration of
		physical monitor positions, default color depth and/or
		rotated monitors.
	  <item>Mode line editor that can be used to configure multiple
		monitors, and allows adding a modeline specific to a
		monitor directly to the configuration file.
	  <item>AccessX configuration interface, that provides an interface
		to easy setup of most AccessX options, including:<p>

		<itemize>
		  <item>Timeout to reset controls.
		  <item>StickyKeys, for people with disabilities that cannot
			press two keys at the same time.
		  <item>MouseKeys, mouse control only with the keyboard.
		  <item>RepeatKeys, repeat rate and repeat delay.
		  <item>SlowKeys, to avoid pressing keys accidentally, they're
			only accepted if pressed for some specific amount
			of time.
		  <item>BounceKeys, helps avoiding multiple key presses by
			only accepting a key if it is pressed only once and
			not pressed again in a specific amount of time.
		</itemize>
	</itemize>
	
	<p>New configuration options are being worked on, as well as correcting
	some of the bugs in the current options.  A protocol for plugging
	in external modules is also planned.

</itemize>
</sect1>

<sect1>X libraries and clients.
<p>
<itemize>
  <item>Significant updates to the internationalisation support in Xlib
	(see <ref id="i18n" name="below">).

  <item>Some xfs updates, including font path verification, and new options.

  <item>XTerm updates.

  <item>New "xvinfo" client for querying the XVideo extension.

</itemize>

<sect1>Fonts and Internationalisation <label id="i18n">
<p>
<itemize>
  <item>Many of the "misc" bdf fonts have been updated and extended, and
	a wider range of ISO-8859 subsets have been added.  These are now
	auto-generated from ISO-10646 encoded master fonts.

  <item>The ClearlyU ISO-10646 encoded fonts have been updated.

  <item>Functions to read keyboard input in locale independent UTF-8 encoding
        have been added to libX11: Xutf8LookupString, Xutf8ResetIC.

  <item>Functions to output strings in locale independent UTF-8 encoding
        have been added to libX11: Xutf8DrawString, Xutf8DrawImageString,
        Xutf8TextEscapement, Xutf8TextExtents, Xutf8TextPerCharExtents,
        Xutf8DrawText.

  <item>Functions to convert between Compound Text or locale dependent encoding
        and UTF-8 have been added to libX11: Xutf8TextListToTextProperty,
        Xutf8TextPropertyToTextList. The converter between Compound Text
        and UTF-8 in Xlib has been improved; a round-trip conversion
        now correctly converts all graphic Unicode characters back and
        forth.

  <item>libXaw now offers selected text using both selection targets,
        UTF8_STRING and COMPOUND_TEXT.

  <item>Locales with UTF-8 encodings are now supported; but the UTF-8
        displaying facilities are not adequate yet.

  <item>XKB keyboard definitions have been added and updated for some
	countries.

</itemize>
</sect1>

<sect1>Platforms
<p>
<itemize>
  <item>Darwin/Mac OS X.

  <item>Greatly improved IA-64 support.

  <item>Improved Linux/mips support.

  <item>Support has been added for more Alpha platforms under Linux.  This
	now includes all platforms that require sparse memory mapping.

</itemize>
</sect1>

</sect>

<sect>Drivers
<p>

<sect1>Video Drivers
<p>

XFree86 &relvers; includes the following video drivers:

<table border=1 align="center">
<tabular ca="|l|l|l|">
   <tabrow>Driver Name<colsep>Description<colsep>Further Information</tabrow>
   <hline>
   <tabrow><tt>apm</tt><colsep>Alliance Pro Motion<colsep><htmlurl
		name="README.apm" url="apm.html"></tabrow>
   <tabrow><tt>ark</tt><colsep>Ark Logic<colsep>&nbsp;</tabrow>
   <tabrow><tt>ati</tt><colsep>ATI<colsep><htmlurl
		name="README.ati" url="ati.html">, <htmlurl
		name="README.r128" url="r128.html">, <htmlurl
		name="r128(4)" url="r128.4.html"></tabrow>
   <tabrow><tt>chips</tt><colsep>Chips &amp; Technologies<colsep><htmlurl
		name="README.chips" url="chips.html">, <htmlurl
		name="chips(4)" url="chips.4.html"></tabrow>
   <tabrow><tt>cirrus</tt><colsep>Cirrus Logic<colsep>&nbsp;</tabrow>
   <tabrow><tt>cyrix</tt> (*)<colsep>Cyrix MediaGX<colsep><htmlurl
		name="README.cyrix" url="cyrix.html"></tabrow>
   <tabrow><tt>fbdev</tt><colsep>Linux fbdev<colsep><htmlurl
		name="fbdev(4)" url="fbdev.4.html"></tabrow>
   <tabrow><tt>glide</tt><colsep>Glide2x (3Dfx)<colsep><htmlurl
		name="glide(4)" url="glide.4.html"></tabrow>
   <tabrow><tt>glint</tt><colsep>3Dlabs, TI<colsep><htmlurl
		name="glint(4)" url="glint.4.html"></tabrow>
   <tabrow><tt>i128</tt><colsep>Number Nine<colsep><htmlurl
		name="README.I128" url="I128.html">, <htmlurl
		name="i128(4)" url="i128.4.html"></tabrow>
   <tabrow><tt>i740</tt><colsep>Intel i740<colsep><htmlurl
		name="README.i740" url="i740.html"></tabrow>
   <tabrow><tt>i810</tt><colsep>Intel i810<colsep><htmlurl
		name="README.i810" url="i810.html">, <htmlurl
		name="i810(4)" url="i810.4.html"></tabrow>
   <tabrow><tt>imstt</tt><colsep>Integrated Micro Solns<colsep>&nbsp;</tabrow>
   <tabrow><tt>mga</tt><colsep>Matrox<colsep><htmlurl
		name="mga(4)" url="mga.4.html"></tabrow>
   <tabrow><tt>neomagic</tt><colsep>NeoMagic<colsep><htmlurl
		name="neomagic(4)" url="neomagic.4.html"></tabrow>
   <tabrow><tt>newport</tt> (-)<colsep>SGI Newport<colsep><htmlurl
		name="README.newport" url="newport.html">, <htmlurl
		name="newport(4)" url="newport.4.html"></tabrow>
   <tabrow><tt>nv</tt><colsep>NVIDIA<colsep><htmlurl
		name="nv(4)" url="nv.4.html"></tabrow>
   <tabrow><tt>rendition</tt><colsep>Rendition<colsep><htmlurl
		name="README.rendition" url="rendition.html">, <htmlurl
		name="rendition(4)" url="rendition.4.html"></tabrow>
   <tabrow><tt>s3virge</tt><colsep>S3 ViRGE<colsep><htmlurl
		name="README.s3virge" url="s3virge.html">, <htmlurl
		name="s3virge(4)" url="s3virge.4.html"></tabrow>
   <tabrow><tt>savage</tt><colsep>S3 Savage<colsep><htmlurl
		name="savage(4)" url="savage.4.html"></tabrow>
   <tabrow><tt>siliconmotion</tt><colsep>Silicon Motion<colsep><htmlurl
		name="siliconmotion(4)" url="siliconmotion.4.html"></tabrow>
   <tabrow><tt>sis</tt><colsep>SiS<colsep><htmlurl
		name="README.SiS" url="SiS.html"></tabrow>
   <tabrow><tt>sunbw2</tt> (+)<colsep>Sun bw2<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg14</tt> (+)<colsep>Sun cg14<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg3</tt> (+)<colsep>Sun cg3<colsep>&nbsp;</tabrow>
   <tabrow><tt>suncg6</tt> (+)<colsep>Sun GX and Turbo GX<colsep>&nbsp;</tabrow>
   <tabrow><tt>sunffb</tt> (+)<colsep>Sun Creator/3D, Elite 3D<colsep>&nbsp;</tabrow>
   <tabrow><tt>sunleo</tt> (+)<colsep>Sun Leo (ZX)<colsep>&nbsp;</tabrow>
   <tabrow><tt>suntcx</tt> (+)<colsep>Sun TCX<colsep>&nbsp;</tabrow>
   <tabrow><tt>tdfx</tt><colsep>3Dfx<colsep>&nbsp;</tabrow>
   <tabrow><tt>tga</tt><colsep>DEC TGA<colsep><htmlurl
		name="README.DECtga" url="DECtga.html"></tabrow>
   <tabrow><tt>trident</tt><colsep>Trident<colsep><htmlurl
		name="trident(4)" url="trident.4.html"></tabrow>
   <tabrow><tt>tseng</tt><colsep>Tseng Labs<colsep>&nbsp;</tabrow>
   <tabrow><tt>vesa</tt><colsep>VESA<colsep><htmlurl
		name="vesa(4)" url="vesa.4.html"></tabrow>
   <tabrow><tt>vga</tt><colsep>Generic VGA<colsep><htmlurl
		name="vga(4)" url="vga.4.html"></tabrow>
</tabular>
</table>

Drivers marked with (*) are present in a preliminary form in this release,
but are not complete and/or stable yet.
<p>

Drivers marked with (+) are for Linux/Sparc only.
<p>

Drivers marked with (-) are for Linux/mips only.
<p>

Darwin/Mac OS X uses IOKit drivers and does not use the module loader drivers
listed above. Further information can be found in
<htmlurl name="README.Darwin" url="Darwin.html">.

XFree86 &relvers; includes the following input drivers:

<sect1>Input Drivers
<p>

<table border=1 align="center">
<tabular ca="|l|l|l|">
   <tabrow>Driver Name<colsep>Description<colsep>Further Information</tabrow>
   <hline>
   <tabrow><tt>acecad</tt><colsep>AceCad<colsep>&nbsp;</tabrow>
   <tabrow><tt>citron</tt><colsep>Citron<colsep><htmlurl
		name="citron(4)" url="citron.4.html"></tabrow>
   <tabrow><tt>digitaledge</tt><colsep>DigitalEdge<colsep>&nbsp;</tabrow>
   <tabrow><tt>dynapro</tt><colsep>Dynapro<colsep>&nbsp;</tabrow>
   <tabrow><tt>elographics</tt><colsep>EloGraphics<colsep>&nbsp;</tabrow>
   <tabrow><tt>keyboard</tt><colsep>generic keyboards<colsep><htmlurl
		name="keyboard(4)" url="keyboard.4.html"></tabrow>
   <tabrow><tt>microtouch</tt><colsep>MicroTouch<colsep>&nbsp;</tabrow>
   <tabrow><tt>mouse</tt><colsep>most mouse devices<colsep><htmlurl
		name="mouse(4)" url="mouse.4.html"></tabrow>
   <tabrow><tt>mutouch</tt><colsep>MicroTouch<colsep>&nbsp;</tabrow>
   <tabrow><tt>penmount</tt><colsep>PenMount<colsep>&nbsp;</tabrow>
   <tabrow><tt>spaceorb</tt><colsep>SpaceOrb<colsep>&nbsp;</tabrow>
   <tabrow><tt>summa</tt><colsep>SummaGraphics<colsep>&nbsp;</tabrow>
   <tabrow><tt>void</tt><colsep>dummy device<colsep><htmlurl
		name="void(4)" url="void.4.html"></tabrow>
   <tabrow><tt>wacom</tt><colsep>Wacom tablets<colsep><htmlurl
		name="wacom(4)" url="wacom.4.html"></tabrow>
</tabular>
</table>

<sect>Summary of XFree86 4.
<p>
Unlike XFree86 3.3.x where there are multiple X server binaries, each
of which drive different hardware, XFree86 &relvers; has a single X
server binary called <tt>XFree86</tt>.  This binary can either have one
or more video drivers linked in statically, or, more usually, dynamically
load the video drivers and other modules that are needed.

XFree86 &relvers; has X server support for most UNIX(R) and UNIX-like
operating systems on Intel/x86 platforms, plus support for Linux on
Alpha, PowerPC, IA-64, Sparc, and Mips platforms, and for Darwin on PowerPC.
Work on support for additional architectures and operating systems is
in progress, and is planned for future releases.

<sect1>Loader and Modules
<p>
The XFree86 X server has a built-in run-time loader, donated by <url
name="Metro Link" url="http://www.metrolink.com">.  This loader can load
normal object files and libraries in most of the commonly used formats.
Since the loader doesn't rely on an operating system's native dynamic
loader support, it works on platforms that don't provide this feature,
and makes it possible for the modules to be operating system independent
(although not, of course, independent of CPU architecture).  This means
that a module compiled on Linux/x86 can be loaded by an
X server running on Solaris/x86, or FreeBSD, or even OS/2.  
<p>
One of the
main benefits of this loader is that when modules are updated, they do not need
to be recompiled for every different operating system.  In the future
we plan to take advantage of this to provide more frequent driver module 
updates in between major releases.

The loader in version &relvers; has support for Intel (x86), Alpha and
PowerPC platforms.  It also has preliminary support for Sparc platforms.

The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb,
cfb, etc), and internal components used by some drivers (like XAA),

The module interfaces (API and ABI) used in this release is still subject
to change without notice.  While we will attempt to provide backward
compatibility for the module interfaces as of the 4.0 release (meaning
that 4.0 modules will work with future core X server binaries), we cannot
guarantee this. 

<bf>Note about module security</bf>
<quote><p>
	The XFree86 X server runs with root privileges, i.e. 
	the X server loadable modules also run with these privileges.
	For this reason we recommend that all users be careful to only
	use loadable modules from reliable sources,  otherwise the
        introduction of viruses and contaminated code can occur and wreak
         havoc on your system.  We hope to have a
	mechanism for signing/verifying the modules that we provide
	available in a future release.

</quote>

<sect1>Configuration File <label id="config">
<p>

The X server configuration file format has been extended to handle some
of the new functionality.  The <tt>xf86config</tt> utility can be used
to generate a basic config file, that may require some manual editing.
The X server also has preliminary support for generating a basic config
file.  This is done by running (as root) "<tt>XFree86 -configure</tt>".
Alternatively, the sample config file <tt>XF86Config.eg</tt> that is
installed in <tt>/usr/X11R6/lib/X11</tt> may be used as a starting point.
The <tt>XF86Setup</tt> utility is currently not usable, but work is
continuing in this area.

The main changes are covered here, but please refer to the XF86Config
manual page for more comprehensive information:

<itemize>
  <item>The Module section is used to load server extension modules and
	font modules, but not XInput drivers.  The <tt>.so</tt> suffix
	should no longer be specified with module names.  Options may
	be supplied for modules by loading the module via a SubSection
	instead of the usual Load keyword.  The <tt>bitmap</tt> module
	is the only font module that is loaded by default.  No server
	extensions are loaded by default, but some are built-in to the
	server.  It is strongly recommended that the extension module
	containing a range of small miscellaneous extensions (<tt>extmod</tt>)
	be loaded because some commonly used things won't work correctly
	without it.  The following example shows how to load all the server
	extensions plus the Type1 and TrueType fonts support, and a
	commented example that shows how to pass options to an extension
	(this one is for loading the misc extensions (<tt>extmod</tt>)
	with the XFree86-VidModeExtension disabled):

<quote><verb>
Section "Module"

    Load "dbe"
    Load "record"
    Load "glx"
    Load "pex5"
    Load "xie"
    Load "extmod"

    Load "type1"
    Load "freetype"

  # SubSection "extmod"
  #     Option "Omit XFree86-VidModeExtension"
  # EndSubSection

EndSection
</verb></quote>

  <item>Option flags have been extended and are now used more widely in the
	config file.  Options flags come in two main types.  The first type
	is exactly like the old form:

<quote><verb>
    Option "name"
</verb></quote>

	where the option just has a name specified.  The name is case
	insensitive, and white space and underscore characters are ignored.
	The second type consists of a name and a value:

<quote><verb>
    Option "name" "value"
</verb></quote>

	The value is passed transparently as a string to the code that
	uses the option.  Common value formats are integer, boolean,
	real, string and frequency.  The following boolean option values
	are recognised as meaning TRUE: <tt>"true"</tt>, <tt>"yes"</tt>,
	<tt>"on"</tt>, <tt>"1"</tt>, and no value.  The values recognised
	as FALSE are <tt>"false"</tt>, <tt>"no"</tt>, <tt>"off"</tt>,
	<tt>"0"</tt>.  In addition to this, <tt>"no"</tt> may be prepended
	to the <em>name</em> of a boolean option to indicate that it is
	false.  Frequency options can have the strings <tt>Hz</tt>,
	<tt>kHz</tt>, or <tt>MHz</tt> appended to the numerical value
	specified.

	Note: the value must always be enclosed in double quotes
	(<tt>"</tt>), even when it is numerical.

  <item>The ServerFlags section now accepts its parameters as Options
	instead of as special keywords.  The older keyword format is
	still recognised for compatibility purposes, but is deprecated
	and support for it will likely be dropped in a future release.
	The DPMS and screen save timeout values are now specified in the
	ServerFlags section rather than elsewhere (because they are global
	parameters, not screen-specific).  This example shows the defaults
	for these:

<quote><verb>
    Option "blank time"    "10"
    Option "standby time"  "20"
    Option "suspend time"  "30"
    Option "off time"      "40"
</verb></quote>

  <item>The Keyboard, Pointer and XInput sections have been replaced by a
	more general InputDevice section.  The old Keyboard and Pointer
	sections are still recognised for compatibility purposes, but
	they are discommended and support for them may be dropped in future
	releases.  The old XInput sections are no longer recognised.
	The keywords from the old sections are expressed as Options in
	the InputDevice sections.  The following example shows typical
	InputDevice sections for the core mouse and keyboard.

<quote><verb>
Section "InputDevice"
    Identifier  "Keyboard 1"
    Driver      "keyboard"
    Option      "AutoRepeat" "500 5"
    Option      "XkbModel"   "pc104"
    Option      "XkbLayout"  "us"
EndSection

Section "InputDevice"
    Identifier  "Mouse 1"
    Driver      "mouse"
    Option      "Protocol"   "PS/2"
    Option      "Device"     "/dev/mouse"
    Option	"SampleRate" "80"
EndSection
</verb></quote>

  <item>The Monitor section is mostly unchanged.  The main difference is
	that a set of VESA modes is defined internally in the server,
	and so for most monitors, it isn't necessary to specify any modes
	explicitly in the Monitor section.  There is also a new Modes section
	that can be used to define a set of modes separately from the
	Monitor section, and the Monitor section may "include" them
	with the "<tt>UseModes</tt>" keyword.  The Monitor section may also
	include Options.  Options that are monitor-specific, like the
	<tt>"DPMS"</tt> and <tt>"Sync on Green"</tt> options are best
	specified in the Monitor sections.

  <item>The Device sections are mostly unchanged.  The main difference
	is the new (and mandatory) Driver keyword that specifies which
	video driver should be loaded to drive the video card.  Another
	difference is the BusID keyword that is used to specify which of
	possibly multiple video cards the Device section is for.  The
	following is an example for a Matrox card:

<quote><verb>
Section "Device"
    Identifier "MGA 1"
    Driver     "mga"
    BusID      "PCI:1:0:0"
EndSection
</verb></quote>

  <item>The Screen sections are mostly unchanged.  The old Driver keyword
	is no longer used, and a mandatory Identifier keyword has been
	added.  The DefaultColorDepth keyword has been renamed to
	DefaultDepth.

  <item>A new section called ServerLayout has been added to allow the
	layout of the screens and the selection of input devices to be
	specified.  The ServerLayout sections may also include options
	that are normally found in the ServerFlags section.  Multiple
	ServerLayout sections may be present, and selected from the command
	line.  The following example shows a ServerLayout section for a
	dual-headed configuration with two Matrox cards, and two mice:

<quote><verb>
Section "ServerLayout"
    Identifier  "Layout 1"
    Screen      "MGA 1"
    Screen      "MGA 2" RightOf "MGA 1"
    InputDevice "Keyboard 1" "CoreKeyboard"
    InputDevice "Mouse 1"    "CorePointer"
    InputDevice "Mouse 2"    "SendCoreEvents"
    Option      "BlankTime"  "5"
EndSection
</verb></quote>

See the XF86Config man page for a more detailed explanation of the format
of the new ServerLayout section.


</itemize>

The config file search patch has been extended, with the directories
<tt>/etc/X11</tt> and <tt>/usr/X11R6/etc/X11</tt> being added.  The full
search path details are documented in the XF86Config manual page.


<sect1>Command Line Options
<p>

The following new X server command line options have been added:

<quote><p>

<tt>-depth</tt> <it>n</it>
<quote><p>
	This specifies the colour depth that the server is running at.
	The default is 8 for most drivers.  Most drivers support the
	values 8, 15, 16 and 24.  Some drivers also support the values
	1 and 4.  Some drivers may also support other depths.  Note that
	the depth is different from the ``bpp'' that was specified with
	previous versions.  The depth is the number of bits in each
	pixel that are significant in determining the pixel's value.
	The bpp is the total size occupied by each pixel, including bits
	that are not used.  The old <tt>-bpp</tt> option is no longer
	recognised because it isn't a good way of specifying the server
	behaviour.

</quote>

<tt>-fbbpp</tt> <it>n</it>
<quote><p>
	This specifies the bpp format to use for the framebuffer.  This
	may be used in 24-bit mode to force a framebuffer format that is
	different from what the driver chooses by default.  In most cases
	there should be no need to use this option.

</quote>

<tt>-pixmap24</tt>
<quote><p>
	This specifies that the client-side pixmap format should be the
	packed 24-bit format that was often used by the 3.3.x servers.
	The default is the more common 32-bit format.  There should normally
	be no need to use this option.

</quote>

<tt>-pixmap32</tt>
<quote><p>
	This specifies that the client-side pixmap format should be the
	sparse 32-bit format.  This is the default, so there should
	normally be no need to use this option.

</quote>

<tt>-layout</tt> <it>name</it>
<quote><p>
	This specifies which ServerLayout section in the config file to
	use.  When this option is not specified, the first ServerLayout
	section is used.  When there is no ServerLayout section, the
	first Screen section is used.

</quote>

<tt>-screen</tt> <it>name</it>
<quote><p>
	This specifies which Screen section in the config file to
	use.  When this option is not specified, the first ServerLayout
	section is used.  When there is no ServerLayout section, the
	first Screen section is used.

</quote>

<tt>-keyboard</tt> <it>name</it>
<quote><p>
	This specifies which InputDevice section in the config file to
	use for the core keyboard.  This option may be used in conjunction
	with the <tt>-screen</tt> option.

</quote>

<tt>-pointer</tt> <it>name</it>
<quote><p>
	This specifies which InputDevice section in the config file to
	use for the core pointer.  This option may be used in conjunction
	with the <tt>-screen</tt> option.

</quote>

<tt>-modulepath</tt> <it>path</it>
<quote><p>
	This specifies the module search path.  The path should be a
	comma-separated list of absolute directory paths to search for
	server modules.  When specified here, it overrides the value
	specified in the config file.  This option is only available
	when the server is started by the <tt>root</tt> user.

</quote>

<tt>-logfile</tt> <it>file</it>
<quote><p>
	This specifies the log file name.  When specified here, it
	overrides the default value.  This option is only available when
	the server is started by the <tt>root</tt> user.

</quote>

<tt>-scanpci</tt>
<quote><p>
	This specifies that the <tt>scanpci</tt> module should be loaded and
	executed.  This does a scan of the PCI bus.

</quote>

<tt>-logverbose</tt> [<it>n</it>]
<quote><p>
	This options specifies the verbosity level to use for the log file.
	The default is 3.

</quote>

</quote>

The following X server command line options have been changed since 3.3.x:

<quote><p>

<tt>-verbose</tt> [<it>n</it>]
<quote><p>
	This option specifies the verbosity level to use for the server
	messages that get written to stderr.  It may be specified multiple
	times to increase the verbosity level (as with 3.3.x), or the
	verbosity level may be specified explicitly as a number.  The
	default verbosity level is 1.

</quote>

<tt>-xf86config</tt> <it>filename</it>
<quote><p>
	This option has been extended to allow non-root users to specify
	a relative config file name.  The config file search path will be
	used to locate the file in this case.  This makes it possible for
	users to choose from multiple config files that the the sysadmin
	has provided.

</quote>


</quote>


<sect1>XAA
<p>

The XFree86 Acceleration Architecture (XAA) has been completely rewritten
from scratch for XFree86 4.x.  Most drivers implement acceleration by
making use of the XAA module.

<sect1>Multi-head
<p>
Some multi-head configurations are supported in XFree86 4.x, primarily
with multiple PCI/AGP cards.  However, this is an area that is still
being worked on, and we expect that the range of configurations for which
it works well will increase in future releases.  A configuration that
is known to work well in most cases is multiple (supported) Matrox cards.

One of the main problems is with drivers not sufficiently initialising
cards that were not initialised at boot time.  This has been improved
somewhat with the INT10 support that is used by most drivers (which
allows secondary card to be "soft-booted", but in some cases there are
other issues that still need to be resolved.  Some combinations can be
made to work better by changing which card is the primary card (either
by using a different PCI slot, or by changing the system BIOS's preference
for the primary card).

<sect1>Xinerama
<p>
Xinerama is an X server extension that allows multiple physical screens
to behave as a single screen.  With traditional multi-head in X11,
windows cannot span or cross physical screens.  Xinerama removes this
limitation.  Xinerama does, however, require that the physical screens
all have the same root depth, so it isn't possible, for example, to use
an 8-bit screen together with a 16-bit screen in Xinerama mode.

Xinerama is not enabled by default, and can be enabled with the
<tt>+xinerama</tt> command line option for the X server.

Xinerama was included with X11R6.4.  The version included in XFree86 4.x
was completely rewritten for improved performance and correctness.

Known problems:
<itemize>
  <item>Most window managers are not Xinerama-aware, and so some
	operations like window placement and resizing might not behave
	in an ideal way.  This is an issue that needs to be dealt with
	in the individual window managers, and isn't specifically an
	XFree86 problem.

</itemize>

<sect1>DGA version 2
<p>

DGA 2.0 is included in &relvers;, but is not implemented by all drivers.
Preliminary documentation for the client libraries can be found in the
<tt>README.DGA</tt> document.  A good degree of backwards compatibility
with version 1.0 is provided.


<sect1>DDC
<p>
The VESA(R) Display Data Channel (DDC&trade;) standard allows the monitor
to tell the video card (or on some cases the computer directly) about
itself; particularly the supported screen resolutions and refresh rates.

Partial or complete DDC support is available in most of the video drivers.
DDC is enabled by default, but can be disabled with a "Device" section
entry:  <tt>Option "NoDDC"</tt>.  We have support for DDC versions 1
and 2; these can be disabled independently with <tt>Option "NoDDC1"</tt>
and <tt>Option "NoDDC2"</tt>.

At startup the server prints out DDC information from the display,
but it does not yet use it the determine modelines.  For some drivers,
the X server's new <tt>-configure</tt> option uses the DDC information
when generating the config file.

Changed behavior caused by DDC. Several drivers uses DDC information to
set the screen size and pitch.  This can be overridden by explicitly
resetting it to the and non-DDC default value 75 with the <tt>-dpi
75</tt> command line option for the X server, or by specifying appropriate
screen dimensions with the "DisplaySize" keyword in the "Monitor" section
of the config file.


<sect1>GLX and the Direct Rendering Infrastructure (DRI)
<p>

<url name="Precision Insight" url="http://www.precisioninsight.com">
(now part of the Professional Services group at <url name="VA Linux Systems"
url="http://www.valinux.com">)
was provided with funding and support from <url name="Red Hat"
url="http://www.redhat.com">, <url name="SGI" url="http://www.sgi.com">,
<url name="3Dfx" url="http://www.3dfx.com">, <url name="Intel"
url="http://www.intel.com">, <url name="ATI" url="http://www.ati.com">,
and <url name="Matrox" url="http://www.matrox.com"> to integrate the GLX
extension for 3D rendering in an X11 window.  The 3D core rendering
component is the <url name="Mesa" url="http://www.mesa3d.org"> library.
SGI has released the sources to the GLX extension framework under an
open license, which essentially provides the glue between the 3D
library and this windowing system.  Precision Insight has integrated
these components into the XFree86 X Server and added a Direct Rendering
Infrastructure (DRI).  Direct Rendering provides a highly optimized
path for sending 3D data directly to the graphics hardware.  This
release provides a complete implementation of direct rendering support
for the 3Dfx Banshee, Voodoo3 and Voodoo5 graphics cards, as well as
the Intel i810/i815 cards, ATI Rage 128, and Matrox G400.
Updated information on DRI
compatible drivers can be found at the <url name="DRI Project"
url="http://dri.sourceforge.net"> on <url name="SourceForge"
url="http://www.sourceforge.net">.

<sect1>XVideo Extension (Xv)
<p>

The XVideo extension is supported in XFree86 4.x.
An XvQueryPortAttributes function has been added as well as
support for XvImages.  XvImages are XImages in alternate color spaces 
such as YUV and can be passed to the server through shared memory
segments.  This allows clients to display YUV data with high quality
hardware scaling and filtering.

<sect1>X Rendering Extension (Render) <label id="render">
<p>

The X Rendering extension provides a 2D rendering model that more
closely matches application demands and hardware capabilities.  It provides
a rendering model derived from Plan 9 based on Porter/Duff image
composition rather than binary raster operations.

<p>
Using simple compositing operators provided by most hardware, Render
can draw anti-aliased text and geometric objects as well as perform 
translucent image overlays and other image operations not possible with 
the core X rendering system.

<p>
XFree86 &relvers; provides a partial implementation of Render sufficient 
for drawing anti-aliased text and image composition.  Still to be 
implemented are geometric primitives and affine transformation of images.

<p>
Unlike the core protocol, Render provides no font support for applications,
rather it allows applications to upload glyphs for display on the screen.
This allows the client greater control over text rendering and complete
access to the available font information while still providing hardware
acceleration.  The Xft library provides font access for
Render applications.

<sect2>The Xft Library
<p>

On the client side, the Xft library provides access to fonts for
applications using the FreeType library, version 2.  FreeType currently
supports Type1 and TrueType font files, a future release is expected to 
support BDF and PCF files as well, so Render applications will have access 
to the complete range of fonts available to core applications.  One 
important thing to note is that Xft uses the vertical size of the monitor 
to compute accurate pixel sizes for provided point sizes; if your monitor 
doesn't provide accurate information via DDC, you may want to add that 
information to <tt>XF86Config</tt>.

<p>

To allow a graceful transition for applications moving from core text
rendering to the Render extension, Xft can use either core fonts or FreeType
and the Render extension for text.  By default, Xft is configured to support
both core fonts and FreeType fonts using the supplied version of FreeType
2.  See the section on FreeType support in Xft for instructions on
configuring XFree86 to use an existing FreeType installation.

<p>
The Xft library uses a configuration file, <tt>XftConfig</tt>, which
contains information about which directories contain font files and also
provides a sophisticated font aliasing mechanism.  Documentation for that
file is included in the Xft man page.

</sect2>
<sect2>FreeType support in Xft
<p>

XFree86 &relvers; includes sources for FreeType version 2.0.1, and, by
default, they are built and installed automatically.

<p>

If you prefer, you can configure XFree86 &relvers; to use an existing
Freetype2 installation by telling XFree86 not to build the internal copy and
indicating where that external version has been installed. Edit (or create)
<tt>config/cf/host.def</tt> to include:

<itemize>
	<item><tt>#define BuildFreetype2Library NO</tt>
	<item><tt>#define Freetype2Dir /usr/local</tt>
</itemize>

Note that XFree86 assumes you'll be using a release FreeType no older than
version 2.0.1.  Early FreeType version 2 releases used a different header file 
installation and aren't compatible with XFree86. Instructions for building and
installing FreeType can be found in the <tt>INSTALL</tt> file included with
the FreeType release.

</sect2>

<sect2>Application Support For Anti-Aliased Text
<p>

Only three applications have been modified in XFree86 &relvers; to work 
with the Render extension and the Xft and FreeType libraries to provide 
anti-aliased text.  Xterm, xditview and x11perf.  Migration of other 
applications may occur in future releases.

<p>
By default, xterm uses core fonts through the standard core API.  It has
two command line options and associated resources to direct it to use
Xft instead:
<itemize>
  <item><tt>-fa</tt> family / <tt>.VT100.faceName:</tt> family.  Selects the 
	font family to use.
  <item><tt>-fs</tt> pointsize / <tt>.VT100.faceSize:</tt> pointsize.  
	Selects the pointsize.
</itemize>

<p>
Xditview will use Xft instead of the core API by default.  X11perf 
includes tests to measure the performance of text rendered in three ways, 
anti-aliased, anti-aliased with sub-pixel sampling and regular chunky 
text, but through the Render extension, a path which is currently somewhat
slower than core text.
</sect2>

<sect1>Other extensions
<p>

The XFree86-Misc extension has not been fully ported to the new server
architecture yet.  This should be completed in a future release.

The XFree86-VidModeExtension extension has been updated, and mostly
ported to the new server architecture.  The area of mode validation
needs further work, and the extension should be used with care.  This
extension has support for changing the gamma setting at run-time, for
modes where this is possible.  The new <tt>xgamma</tt> utility makes
use of this feature.  Compatibility with the 3.3.x version of the
extension is provided.  The missing parts of this extension and some
new features should be completed in a future release.


<!--
<sect>X libraries and clients
<p>
-->

<sect1>Xaw
<p>

Two versions of the Xaw library are provided with XFree86 4.x. A version with
bug fixes and a few binary compatible improvements and a new version with
several new features.

New features:

<itemize>

  <item>A <tt>displayList</tt> resource is available to all Xaw widgets. It
	basically consists of a list of drawing commands, fully described in
	the <tt>Xaw(3)</tt> manual page, that enables a integration of Xaw
	programs with the new window/desktop managers that allows for
	configurable themes.

  <item>Some new actions were added to all Xaw widgets, to allow more
	configurable control of the widgets, and to allow setting resources
	at run time.

  <item>Since Xpm was integrated into XFree86, programs linked with the
	new Xaw library	will also link with Xpm. This allows for color
	background pixmaps, and also for shaped widgets.

  <item>The text widget is the widget that will present more changes. These
	include:

	<itemize>

	  <item>Block cursor.

	  <item>Compile time limit of 16384 undo/redo levels (that will
		automatically grow if the text is not saved when this mark is
		reached).

	  <item>Overwrite mode.

	  <item>Text killed is inserted in a kill ring list, this text is not
		forgotten, pressing <tt>M-y</tt> allows traversing the kill
		ring list.

	  <item>International support for latin languages is available even
		if the <tt>international</tt> resource is not set. Users will
		need to properly set the <it>locale</it> environment to make
		complete use of this feature.

	  <item>A better <tt>multiply</tt> interface is provided. Pressing
		<tt>C-u,&lt;number&gt;</tt> (where number can be negative)
		allows passing parameters for text actions.

	  <item>Text can be formatted to have left, right, center or full
		justification.

	  <item>Text indentation support is also available.

	</itemize>

</itemize>

Bug fixes:

<itemize>

  <item>The simple menu widget geometry management code was improved to solve
	problems with menu entries not visible in the screen.

  <item>The form widget geometry code was changed to solve problems with integer
	round problems in the child widgets geometry when resizing the parent
	form widget.

  <item>Several bugs were fixed in the text code, while some code was rewritten
	from scratch.

</itemize>

<p>

<sect1>Xpm
<p>

Version 3.4k of the Xpm (X pixmap) library is now integrated into XFree86.

<sect1>xedit
<p>

Xedit have been changed to use most of the new features added to the new
version of the Xaw library, and some xedit only features were added. Emacs
users will find that several of the emacs key bindings work with the new
version of xedit. These include:

<itemize>

  <item>File name tab completion. Including a <it>Emacs dired</it> like window,
	that will be shown when there are more than one match, when
	<tt>C-x,d</tt> is pressed, or when a directory name is specified.

  <item>An unlimited number of files can be edited at the same time. Including
	multiple views of the same or different files.

  <item>The line number of the cursor position is always visible. It can also
	be customized to show the column number, the position offset and the
	current size of the file.

  <item>There is an <tt>autoReplace</tt> resource, that enables automatic text
	replacement at the time text is typed. This feature is useful to create
	simple macros, or to correct common spelling errors.

  <item>A fully featured ispell interface is also available. This interface
	is expected to provide most of the features of the terminal interface
	of the ispell program, with some extra features that include:

	<itemize>

	  <item>A compile time limit of 16 undo levels.

	  <item>Terse mode switch.

	  <item>Dictionary change.

	  <item>The interface also checks for repeated words.

	</itemize>

  <item>A first tentative to add programming modes was done. Currently, there
	is one mode:
	<itemize>

	  <item><bf>C-mode:</bf> this mode is expected to be stable, and fully
		usable.
	</itemize>

</itemize>

<p>


<!--
<sect>Fonts and Internationalisation
<p>
-->

<sect1>Font support
<p>

Details about the font support in XFree86 4.x can be found
in the <htmlurl name="README.fonts" url="fonts.html"> document.

<sect1>TrueType support
<p>

XFree86 4.x comes with two TrueType backends, known as
`xfsft' (the <tt>"freetype"</tt> module) and `X-TrueType' (the
<tt>"xtt"</tt> module).  Both of these backends are based on the FreeType
library.

<sect1>CID font support
<p>

Support for CID-keyed fonts is included in XFree86 4.x.
The CID-keyed font format was designed by <url name="Adobe Systems"
url="http://www.adobe.com"> for fonts with large character sets.  The
CID-keyed font support in XFree86 was donated by <url name="SGI"
url="http://www.sgi.com">.  See the <htmlurl name="LICENSE"
url="LICENSE.html"> document for a copy of the CID Font Code Public
License.

<sect1>Internationalisation of the scalable font backends
<p>

XFree86 4.x has a ``fontenc'' layer to allow the scalable font backends
to use a common method of font re-encoding.  This re-encoding makes it
possible to uses fonts in encodings other than their their native
encoding.  This layer is used by the Type1 and Speedo backends and the
`xfsft' version of the TrueType backend.  The `X-TrueType' version of
the TrueType backend uses a different re-encoding method based on loadable
encoding modules.

<sect1>Large font optimisation
<p>

The glyph metrics array, which all the X clients using a particular font
have access to, is now placed in shared memory, so as to reduce redundant
memory consumption.  For non-local clients, the glyph metrics array is
transmitted in a compressed format.

<sect1>Unicode/ISO 10646 support
<p>
What is included in 4.x:

<itemize>
  <item>All ``-misc-fixed-*'' BDF fonts are now available in the
        ISO10646-1 encoding and cover at least the 614 characters
        found in ISO 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The
        non-bold fonts also cover all Windows Glyph List 4 (WGL4)
        characters, including those found in all 8-bit MS-DOS/Windows
        code pages. The 8-bit variants of the ``-misc-fixed-*'' BDF
        fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
        automatically generated from the new ISO10646-1 master fonts.

  <item>Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a
        comprehensive Unicode repertoire of over 3000 characters
        including all Latin, Greek, Cyrillic, Armenian, Gregorian,
        Hebrew, IPA, and APL characters, plus numerous scientific,
	typographic, technical, and backwards-compatibility
        symbols. Some of these fonts also cover Arabic, Ethiopian,
        Thai, Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13
        font there is now a 12x13ja Kanji extension and for the 9x18
        font there is a 18x18ja Kanji/Han/Hangul extension, which
        covers all ISO-2022-JP-2 (RFC 1554) characters. The 9x18 font
        can also be used to implement simple combining characters by
        accent overstriking. For more information, read Markus Kuhn's
        <url name="UTF-8 and Unicode FAQ"
        url="http://www.cl.cam.ac.uk/~mgk25/unicode.html">.

  <item>Mark Leisher's ClearlyU proportional font (similar to Computer
	Modern).

  <item>ISO 10646/Unicode UTF-8 Level 1 support added to xterm
	(enabled with the <tt>-u8</tt> option).

  <item>Both the xfsft (the <tt>"freetype"</tt> module) and the X-TrueType
	(the <tt>"xtt"</tt> module) TrueType font backends support
	Unicode-encoded fonts.

</itemize>

<sect1>Lucidux fonts from Bigelow and Holmes
<p>

XFree86 now includes the ``Lucidux'' family of professionally hinted
Type 1 fonts.  This family consists of the fonts ``Lucidux Serif'',
``Lucidux Sans'' and ``Lucidux Mono'' in Roman and oblique variants,
and includes over 370 glyphs in each font covering among others the
glyphs needed for ISO 8859-1, 2, 3, 4, 9 and 15.  Bold variants will be
included in a future release.  The design and font outlines were donated
by Charles Bigelow and Kris Holmes from Bigelow and Holmes Inc., and
the hinting was donated by Berthold Horn and Blenda Horn from Y&amp;Y, Inc.
For more information, please contact
<email>design@bigelowandholmes.com</email> or
<email>sales@yandy.com</email>, or consult <url name="Y&amp;Y's web site"
url="http://www.yandy.com">.

<!--
<sect>Miscellaneous
<p>
-->

<sect1>Directory rearrangements
<p>

Some changes to the installed XFree86 directory structure have been
implemented for 4.x.
One important
change is a modified search path for the X
server's <tt>XF86Config</tt> file.  The details of this can be found
in the XF86Config manual page.  The other main change is moving
most of the run-time configuration files to <tt>/etc/X11</tt>, with
symbolic links in the old <tt>/usr/X11R6/lib/X11</tt> location pointing
to the new location.  Some run-time generated files are now located
under the appropriate subdirectories of <tt>/var</tt>, again with the
relevant symbolic links in the old location.




</article>