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
|
<html>
<head>
<meta http-equiv="content-type" content>
<meta http-equiv="Content-Language" content="en-us">
<title>History</title>
<link rel="stylesheet" type="text/css" href="../style.css">
<style type="text/css">
.hist_changed {
color: #008000;
font-weight: bold;
}
.hist_new {
color: #0000FF;
font-weight: bold;
}
.hist_fixed {
color: #FF0000;
font-weight: bold;
}
.style1 {
color: #FF0000;
}
</style>
</head>
<body>
<h2>History of Changes</h2>
<h3>CVS (05/Aug/2010)</h3>
<ul>
<li><strong><span style="color: #FF0000">IMPORTANT:</span></strong> since the previous
version CDLua dynamic libraries in Linux are dependent on GDK, because they
depend on the main library, that now contains the GDK base drivers. i.e. the
X-Win base drivers can NOT be used anymore in dynamic libraries when using
Lua in Linux.</li>
<li>
<span class="hist_changed">Changed:</span> the Cairo context plus driver
in Lua is now the default library when using "cdluacontextplus" in
Linux.</li>
<li>
<span class="hist_fixed">Fixed:</span> CD_GL static library for Visual
C++ compilers were incorrectly using FTGL as dynamic library.</li>
<li>
<span class="hist_fixed">Fixed:</span> CD_QUERY in <strong>
cdCanvasNativeFont</strong>.</li>
<li>
<span class="hist_fixed">Fixed:</span> canvas:Transform when nil is used
to reset the transformation.</li>
<li>
<span class="hist_fixed">Fixed:</span> <strong>cdCanvasClear</strong>
not considering the transparency of the background color in the GDI+
base driver and in the CD_GL driver.</li>
<li>
<span class="hist_fixed">Fixed:</span> background transparency was not
being considered when backopacity was set to OPAQUE after the background
color was set in the GDI+ base driver.</li>
<li>
<span class="hist_fixed">Fixed:</span> polygon filling in CD_IMAGERGB
driver when there are many horizontal lines in sequence on the same
polygon.</li>
</ul>
<h3><a href="http://sourceforge.net/projects/canvasdraw/files/5.4/">Version 5.4</a> (24/June/2010)</h3>
<ul>
<li><span class="hist_new">New:</span> context plus driver
<a href="drv/cairo.html">Cairo</a>.</li>
<li><span class="hist_new">New:</span> OpenGL driver <a href="drv/gl.html">
CD_GL</a>.</li>
<li><span class="hist_new">New:</span> "CMD", "OPACITY" and "HATCHBOXSIZE"
attributes in the SVG driver.</li>
<li><span class="hist_new">New:</span> <a href="func/polygon.html#cdBegin">CD_PATH</a> <strong>cdCanvasBegin</strong>
mode to create a path composed of several primitives that can be line draw,
filled or used as clipping. New function <strong>
<a href="func/polygon.html#cdPathSet">cdCanvasPathSet</a></strong> to
configure the action between sequences of <strong>cdCanvasVertex</strong>.</li>
<li><span class="hist_new">New:</span> screenshots page in the
documentation.</li>
<li><span class="hist_changed">Changed:</span>
CD_DXF now supports solid filled primitives for polygons and rectangles.</li>
<li><span class="hist_changed">Changed:</span>
GDI+ base driver now supports floating point primitives.
<span class="style1">ATTENTION</span>: check
for alignment and size problems in the application. Please report if
anything changed.</li>
<li dir="ltr">
<span class="hist_changed">Changed:</span>
removed compatibility with require"cdlua51", now LuaBinaries must be used
or LUA_CPATH must be set.</li>
<li dir="ltr">
<span class="hist_changed">Changed:</span>
added compatibility with Lua 5.2.</li>
<li dir="ltr">
<span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - the main library in
Linux and BSD is now the GDK base driver. The X11 base driver library
was renamed to <strong>cdx11</strong> on those systems.</li>
<li>
<span class="hist_fixed">Fixed:</span> PDF driver documentation,
<strong>CanvasBackOpacity</strong> and <strong>CanvasBackground</strong> are
supported.</li>
<li><span class="hist_fixed">Fixed:</span> SVG driver support for
<strong>BackOpacity</strong>=OPAQUE in Hatch. Transform and Clipping conflict.
<strong>InteriorStyle</strong>
initialization. Pattern orientation was upside down.</li>
<li><span class="hist_fixed">Fixed:</span> alpha transparency in <strong>
CanvasArc</strong> and Bezier polygon in the IMAGERGB driver.</li>
<li><span class="hist_fixed">Fixed:</span> missed implementation for
CD_DEBUG, CD_PICTURE and CD_DBUFFERRGB in Lua.</li>
<li><span class="hist_fixed">Fixed:</span> Chord in PDF driver.</li>
<li><span class="hist_fixed">Fixed:</span> custom line style sizes in CD_PDF
and CD_PS drivers to match behavior of other drivers.</li>
<li><span class="hist_fixed">Fixed:</span> cd.<strong>GetTextBounds</strong>
and cd.<strong>wGetTextBounds</strong> to return the correct values and in a
table in Lua.</li>
</ul>
<h3><a href="http://sourceforge.net/projects/canvasdraw/files/5.3/">Version 5.3</a> (26/Jan/2010)</h3>
<ul>
<li><span class="hist_new">New:</span> driver SVG.</li>
<li><span class="hist_new">New:</span> base driver GDK.</li>
<li><span class="hist_new">New:</span> function <strong>
CanvasYAxisMode</strong> to control the Y axis orientation.</li>
<li><span class="hist_new">New:</span> functions <strong>
wdCanvasSetTransform</strong>, <strong>wdCanvasGetTransform</strong>,
<strong>wdCanvasTranslate</strong> and <strong>wdCanvasScale</strong>, to
better control the WD transformation.</li>
<li><span class="hist_new">New:</span>
"PDFLIBVERSION",
"SUBJECT","TITLE","CREATOR","AUTHOR","KEYWORDS" attributes for the PDF
driver.</li>
<li><span class="hist_new">New:</span>
"FREETYPEVERSION" attribute for the Simulation base driver.</li>
<li><span class="hist_new">New:</span>
"PRINTERNAME" attribute for the CD_PRINTER base driver. </li>
<li><span class="hist_changed">Changed:</span>
Freetype updated to version 2.3.11.</li>
<li><span class="hist_changed">Changed:</span>
PDFLib Lite updated to version 7.0.4p4.</li>
<li><span class="hist_changed">Changed:</span>
return value to boolean of <strong>CanvasIsPointInRegion</strong> and
<strong>cd.UseContextPlus</strong> in Lua.</li>
<li><span class="hist_changed">Changed:</span>
added missing support for alpha channel in image:<strong>cdCreateCanvas</strong>,
<strong>cd:imImageCreate</strong>, image<strong>:cdCreateBitmap</strong> and
image<strong>:cdInitBitmap</strong> in cdluaim binding.</li>
<li><span class="hist_changed">Changed:</span>
ANTIALIAS attribute is now respected also by <strong>CanvasText</strong> in
the IMAGERGB driver.</li>
<li><span class="hist_changed">Changed:</span>
WriteMode=XOR is ignored if alpha transparency is used in the IMAGERGB
driver.</li>
<li><span class="hist_fixed">Fixed:</span> indexing of <strong>
cdImageRGB</strong>, <strong>cdImageRGBA</strong> and <strong>cdBitmap</strong>
objects in Lua.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>CanvasText</strong>
for WD when using text with multiple lines.</li>
<li><span class="hist_fixed">Fixed:</span> compositing in the IMAGERGB
driver when
canvas has a semi-transparent alpha channel and a color with semi transparent alpha
are used.</li>
<li><span class="hist_fixed">Fixed:</span> polygon filling in the IMAGERGB
driver when the segments contain horizontal lines.</li>
<li><span class="hist_fixed">Fixed:</span> line style background not
transparent in the IMAGERGB driver.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>CanvasClear</strong> method was affected by
<strong>CanvasWriteMode</strong> in the X11 base driver.</li>
<li><span class="hist_fixed">Fixed:</span> invalid memory access at
<strong>CanvasFont</strong> in the PICTURE driver.</li>
<li><span class="hist_fixed">Fixed:</span> improved support for line
endings at <strong>cdPlay</strong> in the METAFILE driver.</li>
<li><span class="hist_fixed">Fixed:</span> text alignment in the Windows
base driver when WriteMode=XOR.</li>
</ul>
<h3><a href="http://sourceforge.net/projects/canvasdraw/files/5.2/">Version 5.2</a> (26/Jun/2009)</h3>
<ul>
<li><span class="hist_new">New:</span> functions <strong>
CanvasGetVectorTextBox, CanvasGetVectorFontSize</strong> and <strong>
CanvasVectorFontSize</strong>.</li>
<li><span class="hist_changed">Changed:</span>
the functions <strong>CanvasVectorText</strong>, <strong>CanvasText</strong>
and <strong>CanvasGetTextSize</strong> now supports line breaks using '\n'.
<strong>CanvasMultiLineVectorText</strong> is now deprecated but kept for
compatibility.
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - VectorTextSize now
uses the full line size.</li>
<li><span class="hist_changed">Changed:</span>
CD_DBUFFER now activates the buffered canvas before creating the image
canvas. If size is 0 then uses 1 and avoid to fail during creation.</li>
<li><span class="hist_changed">Changed:</span>
removed "lua5.1.so" dependency in UNIX.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>CanvasText</strong>
for CD_IMAGERGB driver when the foreground color has alpha.</li>
</ul>
<h3><a href="http://sourceforge.net/projects/canvasdraw/files/5.1.1/">Version 5.1.1</a> (15/Dec/2008)</h3>
<ul>
<li><span class="hist_fixed">Fixed:</span> CDLua binding functions
canvas:foreground, canvas:setforeground, canvas:background and
canvas:setbackground. Color was being checked from the wrong position in the
stack. They were reporting and invalid color when being used.</li>
<li><span class="hist_fixed">Fixed:</span> CDLua binding functions
canvas:foreground and canvas:background when using cd.QUERY are value. </li>
</ul>
<h3><a href="http://sourceforge.net/projects/canvasdraw/files/5.1/">Version 5.1</a> (14/Oct/2008)</h3>
<ul>
<li><span class="hist_new">New:</span> CD_DEBUG driver.</li>
<li><span class="hist_new">New:</span> the "imlua_cd" library moved
from IM to CD under the name "cdluaim". Only the initialization function
name is changed.</li>
<li><span class="hist_new">New:</span> cdluacontextplus library so the
"ContextPlus" base drivers (GDI+ and XRender) can be dinamically loaded
using require.</li>
<li><span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - the "cdiup" and "cdluaiup"
libraries moved from CD to IUP under the name "iupcd" and "iupluacd". But
headers and documentation remains on the CD package. Function names were NOT
changed. This change eliminates a cross-dependency that IUP and CD had, now
only IUP depends on CD.</li>
<li><span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - renamed "cdgliplus"
and "cdxrender" libraries to "cdcontextplus".</li>
<li><span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - removed the FreeType
library files from the main library. They now are available as an additional
library that can be replaced by other FreeType distributions. You should now
link with the "freetype6" library in Windows and with the "freetype" library
in UNIX (if not using GTK, freetype is already included in GTK). This change will
avoid conflicts when using CD and GTK.</li>
<li><span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - removed the PDFLib
library files from the cdpdf library. They now are available as an
additional library that can be replaced by other PDFLib distributions. You
should now link with the "pdflib" library.</li>
<li><span class="hist_changed">Changed:</span>
<strong>
<span style="color: #FF0000">IMPORTANT</span></strong> - the support services
(Downloads, Mailing List and CVS) moved from LuaForge to SourceForge.</li>
<li><span class="hist_changed">Changed:</span>
Makefiles for UNIX now uses a compact version of Tecmake that does not need
any installation, just type "make".</li>
<li><span class="hist_changed">Changed:</span> All dll8 and dll9 DLLs now
have a Manifest file that specifies the correct MSVCR*.DLL.</li>
<li><span class="hist_changed">Changed:</span> improved CDLua parameter
checking and error report.</li>
<li><span class="hist_changed">Changed:</span> improved compatibility for
font names in X and Win32.</li>
<li><span style="color: #0000FF"><span style="color: #008000">Changed</span>:</span>
Copyright notice modified to reflect the registration at INPI (National
Institute of Intellectual Property in Brazil). License continues under the
same terms.</li>
<li><span class="hist_changed">Changed:</span>
improved pattern and stipple resize in <strong>wdCanvasPattern</strong> and
<strong>wdCanvasStipple</strong>.</li>
<li><span class="hist_changed">Changed:</span>
pattern creation in Win32 to a more faster method.</li>
<li><span class="hist_changed">Changed:</span>
optimized font search in X-Windows base driver for size variations.</li>
<li><span class="hist_changed">Changed:</span>
the number of bits per pixel returned by the CD_PRINTER driver when the
printer is a PDF Writer was 1, now we add a workaround to return 24.</li>
<li><span class="hist_changed">Changed:</span>
improved the color convertion when drawing a RGB image in a CD_PRINTER
canvas with 1 bpp (usually a laser printer).</li>
<li><span class="hist_changed">Changed:</span> (UNDONE from 5.0) in Lua
canvases are NOT
garbage collected anymore. Since there can be different Lua canvases pointing
to the same canvas.</li>
<li><span class="hist_changed">Changed:</span> font map in simulation
driver is not case sensitive anymore.</li>
<li><span class="hist_changed">Changed:</span> premake files are used now
only internally and were removed from the distribution.</li>
<li><span class="hist_fixed">Fixed:</span> added missing
CD_NO_OLD_INTERFACE definition on Linux makefiles.</li>
<li><span class="hist_fixed">Fixed:</span> attributes not being
preserved after changing clipping or adding a new page in CD_PDF.</li>
<li><span class="hist_fixed">Fixed:</span> polygon clipping in
CD_IMAGERGB driver when polygon is larger than the canvas.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>cdCanvasVertex</strong>
when adding two reference points with the same coordinates in a bezier.</li>
<li><span class="hist_fixed">Fixed:</span> client image zoom in
CD_IMAGERGB driver.</li>
<li><span class="hist_fixed">Fixed:</span> text draw position and
gettextsize in Xrender base driver.</li>
<li><span class="hist_fixed">Fixed:</span> double buffer driver invalid
memory access when using the Xrender base driver.</li>
</ul>
<h3>Version 5.0 (26/Nov/2007)</h3>
<ul>
<li><span class="hist_new">New:</span> attributes "OPACITY", "PATTERN"
and "PDF" in the CD_PDF driver.</li>
<li><span class="hist_new">New:</span> XRender base driver.</li>
<li><span class="hist_changed">Changed:</span> PDF Lite library updated to
version "7.0.2".</li>
<li><span class="hist_changed">Changed:</span> FreeType library updated to
version "2.3.5".</li>
<li><span class="hist_changed">Changed:</span> now using "(char*)CD_QUERY"
as the parameter in <b>cdCanvasNativeFont</b>, it returns the current selected font in
the common format definition.</li>
<li><span class="hist_changed">Changed:</span> avoid setting X-Windows color
background when calling <b>cdCanvasClear</b> for NativeWindow driver. Now all
X-Windows drivers will use only XFillRectangle.</li>
<li><span class="hist_changed">Changed:</span> in Lua canvases are now
garbage collected.</li>
<li><span class="hist_changed">Changed:</span> metatable names in Lua are
now the same as the C struct names.</li>
<li><span class="hist_fixed">Fixed:</span> function cdlua_checkcanvas that
affects the creation of the cd.DBUFFER canvas. Thanks to Martin Saerbeck.</li>
<li><span class="hist_fixed">Fixed:</span> vertical text alignment in PDF
and PS
drivers.</li>
<li><span class="hist_fixed">Fixed:</span> ascent and descent font
dimensions in PDF driver.</li>
<li><span class="hist_fixed">Fixed:</span> check for mark size and font
size when given size is 0.</li>
</ul>
<h3>Version 5.0 RC2 (09/Apr/2007)</h3>
<ul>
<li><span class="hist_new">New:</span> function <b>cdCanvasInvertYAxis</b> that
will invert the given y coordinate even if the canvas is not internally
inverted.</li>
<li><span class="hist_changed">Changed:</span> PDF Lite library updated to
version "7.0.0p3".</li>
<li><span class="hist_changed">Changed:</span> FreeType library updated to
version "2.2.1".</li>
<li><span class="hist_changed">Changed:</span> In the new API <strong>
cdCanvasFont</strong> you can specify partial parameters using NULL, -1 and 0
for typeface, style and size. When these parameters are specified the current
font parameter is used. For example, <b>cdCanvasFont(NULL, -1, 10)</b> will only
change the font size.</li>
</ul>
<h3>Version 5.0 RC1 (08/Mar/2007)</h3>
<ul>
<li><span class="hist_new">New:</span> attribute HATCHBOXSIZE in CD_PDF
driver, to control the hatch spacing.</li>
<li><span class="hist_new">New:</span> attribute ADDFONTMAP in
simulation base driver to accept a map between a font name and a font file
name.</li>
<li><span class="hist_new">New:</span> Pango Font Description string is
now accepted in <strong>NativeFont</strong> and replace the previous CD format is most
drivers.<br>
<strong>
<span style="color: #FF0000">INCOMPATIBILITY</span> -</strong>
If style is not used, most drivers had a format compatible with the new
format. But please check your <strong>NativeFont</strong> usage. The IUP
format is still supported.</li>
<li><span class="hist_new">New:</span> API using canvas as a parameter.
Old API still exists. Library is backward compatible with previous versions,
but the documentation shows only the new names.
The new functions add a "Canvas" to the function prefix, for ex: the <strong>
cdLine</strong> equivalent is <strong>cdCanvasLine</strong>. For these
functions <strong>cdActivate</strong> is not required. But <strong>
cdCanvasActivate</strong> exists for special cases where the canvas must be
updated if an external factor was changed, like a window resize.
To facilitate the migration to the new API use the definition CD_NO_OLD_INTERFACE
to exclude the old API definitions and check if you are using only the new
functions.</li>
<li><span class="hist_new">New:</span> support for primitives using
"double" floating point precision and not related to WC functions.</li>
<li><span class="hist_new">New:</span> "cd_canvas.hpp" header file which
defines a C++ class cdCanvasC that wraps the cdCanvas structure API.</li>
<li><span class="hist_new">New:</span> ROTATE attribute in CD_PDF
driver.</li>
<li><span class="hist_new">New:</span> binding Lua of the CD_PDF driver.</li>
<li><span class="hist_new">New:</span> support for alpha channel in
CD_IMAGERGB driver. Also support for alpha in color coding in the CD_IMAGERGB
driver primitives.</li>
<li><span class="hist_new">New:</span> attribute ANTIALIAS in the
CD_IMAGERGB driver. Text is always antialiased as before.</li>
<li><span class="hist_new">New:</span><span style="color: #0000FF"> </span>implemented <strong>Chord</strong> primitive in
simulation base
driver.</li>
<li><span class="hist_new">New:</span><span style="color: #0000FF"> </span>implemented CD_WINDING fill mode
in the simulation base driver.</li>
<li><span class="hist_new">New:</span><span style="color: #0000FF"> </span>implemented complex clipping
regions in CD_IMAGERGB driver. Fixed polygon clipping and other clipping
errors in the CD_IMAGERGB driver.</li>
<li><span class="hist_new">New:</span> driver CD_DBUFFERRGB that uses
the CD_IMAGERGB driver for double buffer, and can be a double buffer for any
other driver (CD_DBUFFER works only for Window based drivers). </li>
<li><span class="hist_new">New:</span> CD_PICTURE driver to store
primitives and attributes in memory that can be played and resized in any
other driver.</li>
<li><span class="hist_new">New:</span> functions to set color foreground
and background without query support (cdCanvasSetForeground and
cdCanvasSetBackground). CD_QUERY conflicts with color RGBA=(255,255,255,255)
(full transparent white).</li>
<li><span class="hist_new">New:</span> support for generic canvas
transformations using <strong>Transform</strong>, <strong>TransformTranslate</strong>,
<strong>TransformRotate</strong> and <strong>TransformScale</strong> functions.</li>
<li><span class="hist_new">New:</span> attribute "GDI+" for all GDI+
based drivers that returns "1". So it can be detected if the driver uses the
GDI+ base driver.</li>
<li><span class="hist_changed">Changed:</span> <strong>
<span style="color: #FF0000">INCOMPATIBILITY</span></strong> - removed
clipping simulation from the simulation base driver. It is not possible
anymore to simulate clipping, only primitives can be simulated.</li>
<li><span class="hist_changed">Changed:</span> canvas internal pointer allocation so it can be checked for valid canvas in
all external API function calls.</li>
<li><span class="hist_changed">Changed:</span> <strong>NativeFont</strong>("-d") to set also the foreground color from the color in the dialog, and
initialize the font in the dialog with the current selected font.</li>
<li><span class="hist_changed">Changed:</span> In the new API <strong>
cdCanvasFont</strong> changed the typeface parameter type from a small set of
integer values to a more flexible string.</li>
<li><span class="hist_changed">Changed:</span> all accented characters are
now available in the default vector text font.</li>
<li><span class="hist_changed">Changed:</span> all functions in the API now
use "const" when applicable.</li>
<li><span class="hist_changed">Changed:</span> server image defintion from
"void*" to "cdImage*". This will affect C++ applications that must update
their code.</li>
<li><span class="hist_changed">Changed:</span> removed <strong>cdGetClipPoly</strong>
and <strong>wdGetClipPoly</strong> functions.</li>
<li><span class="hist_changed">Changed:</span> <strong>UpdateYAxis</strong>
now also returns the changed value.</li>
<li><span class="hist_changed">Changed:</span> <strong>
<span style="color: #FF0000">INCOMPATIBILITY</span> - cdCallback</strong>
definition used in <strong>RegisterCallback</strong>, called from <strong>Play</strong>. Replaced the "cdContext*" by a "cdCanvas*".
If you do not use the pointer it can be simply ignored.</li>
<li><span class="hist_changed">Changed:</span> WC functions now are only
client functions of the CD API.</li>
<li><span class="hist_changed">Changed:</span> removed old support for
Windows 9x.</li>
<li><span class="hist_changed">Changed:</span> removed the <strong>cdInitGdiPlusIUP</strong> function and the "<strong>cdiupgdiplus</strong>"
library. They are not necessary anymore. Althougth the CD_IUP driver still
works with GDI+ support.</li>
<li><span class="hist_changed">Changed:</span> improved speed and precision
of the bezier polygon of the simulation base driver.</li>
<li><span class="hist_changed">Changed:</span> renamed distribution folder
name from "cd/data" to "cd/etc".</li>
<li><span class="hist_changed">Changed:</span> CD Lua for Lua 3 library name
changed to include "3" as a suffix.</li>
<li><span class="hist_fixed">Fixed:</span> conversion from ANSI to ASCII
in vector text fonts. </li>
<li><span class="hist_fixed">Fixed:</span> Sector primitive in simulation
base
driver.</li>
<li><span class="hist_fixed">Fixed:</span> deactivation of internal canvas in Double Buffer driver over a Native Windows driver for Win32.</li>
<li><span class="hist_fixed">Fixed:</span> EPS compatibility in PostScript driver.</li>
<li><span class="hist_fixed">Fixed:</span> the default values in <strong>cdCreateCanvas</strong> for CD_DGN, CD_DXF and CD_CGM.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>Play</strong> for CD_EMF when data contains poly-polygons or poly-polylines.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>LineWidth</strong> in
WC when updating the
size in pixels.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>TextSize</strong> and
<strong>FontDim</strong> in driver DXF.</li>
<li><span class="hist_fixed">Fixed:</span> <strong>Font</strong> in the
X-Windows base driver, size parameter was incorrectly passed to the X-Windows.
<span style="color: #FF0000"><strong>WARNING</strong></span>: the result font
will have a size different than previous CD versions in X-Windows. </li>
<li><span class="hist_fixed">Fixed:</span> <strong>Flush</strong> in
CD_DBUFFER driver, it was affected by the write mode state of the
buffered canvas.</li>
<li><span class="hist_fixed">Fixed:</span> WC tranformation update when
the Window is invalid. Thanks to Marian Trifon.</li>
<li><span class="hist_fixed">Fixed:</span> polygon filling in simulation
base driver.</li>
<li><span class="hist_fixed">Fixed:</span> invalid resample in <strong>
PutImageRect</strong>* in GDI+ base driver cause a band with a mix of the
background color appear on right and bottom when image is zoomed in (larger
than original size).</li>
</ul>
<h3>Version 4.4 (12/Dec/2005)</h3>
<ul>
<li><span class="hist_new">New:</span> CDLua for Lua 5. The CDLua for Lua 3 is now also totally compatible with the "cd." name space used in the
CDLUA for Lua 5. So the documentation now reflects only the new nomenclature although the old CDLua 3 names are still
valid<font color="#FF0000">.</font></li>
<li><span class="hist_new">New:</span> attribute <font face="Courier New">"WINDOWRGN"</font> for the Native Windows and IUP drivers to set the shape
of a window to the current complex clipping region.</li>
<li><span class="hist_new">New:</span> <b><font face="Courier New">cdlua_close</font></b> function to release the memory allocated by the <b>
<font face="Courier New">cdlua_open</font></b>.</li>
<li><span class="hist_new">New:</span> <font face="Courier New">"ROTATE"</font> attribute for PS driver, GDI+ base driver and GDI base driver.</li>
<li><span class="hist_new">New:</span> <font face="Courier New">CD_FILLSPLINE</font> and <font face="Courier New">CD_SPLINE</font> parameters for
cdBegin in GDI+ base driver.</li>
<li><span class="hist_new">New:</span> support for complex regions for clipping using: <b><font face="Courier New">cdBox</font></b>, <b>
<font face="Courier New">cdSector</font></b>, <b><font face="Courier New">Polygons</font></b> and <b>
<font face="Courier New">cdText</font></b>. New: parameter <font face="Courier New">CD_REGION</font> for <b>
<font face="Courier New">cdBegin</font></b> to create the region, new parameter <font face="Courier New">CD_CLIPREGION</font>
for <b><font face="Courier New">cdClip</font></b> to select the region for clipping.
New: funtions to control regions:
<b><font face="Courier New">cdPointInRegion</font></b>, <b><font face="Courier New">cdOffsetRegion</font></b>, <b>
<font face="Courier New">cdRegionBox</font></b> and <b><font face="Courier New">cdRegionCombineMode</font></b>.
Valid only for the Windows GDI, GDI+ and X-Windows base drivers and their derived drives.</li>
<li><span class="hist_new">New:</span> mode for <b><font face="Courier New">cdBegin</font></b>, <font face="Courier New">CD_BEZIER</font>.</li>
<li><span class="hist_new">New:</span> filled primitive <b><font face="Courier New">cdChord</font></b>.</li>
<li><span class="hist_new">New:</span> polygon fill rule control using <b><font face="Courier New">cdFillMode</font></b> with
<font face="Courier New">CD_EVENODD</font> (the default) and <font face="Courier New">CD_WINDING</font> parameters.</li>
<li><span class="hist_new">New:</span> line cap and line join styles using <b><font face="Courier New">cdLineCap</font></b> and <b>
<font face="Courier New">cdLineJoin</font></b>.</li>
<li><span class="hist_new">New:</span> typeface <font face="Courier New">CD_NATIVE</font> to indicate that a native font has been selected.</li>
<li><span class="hist_new">New:</span> custom line style using <b><font face="Courier New">cdLineStyleDashes</font></b> and <b>
<font face="Courier New">cdLineStyle</font></b>(<font face="Courier New">CD_CUSTOM</font>). This replaces the
attribute "<font face="Courier New">USERLINESTYLE</font>".<br>
(All New:, when not specified the divers, are valid for all the drivers, except DXF, DGN e CGM.)</li>
<li><span class="hist_new">New:</span> text utility function <b><font face="Courier New">cdTextBounds</font></b> that returns the oriented bounding
rectangle<font color="#FF0000">.</font> </li>
<li><span class="hist_new">New:</span> <font face="Courier New">"IMAGEFORMAT"</font> and <font face="Courier New">"IMAGEALPHA"</font> attributes for
the Windows base driver.</li>
<li><span class="hist_new">New:</span> In GDI+, the <font face="Courier New">CD_CLIPBOARD</font> driver supports EMF and BMP formats.</li>
<li><span class="hist_new">New:</span> function <b><font face="Courier New">cdReleaseState</font></b> to release the memory allocated by a state.
The <b><font face="Courier New">cdRestoreState</font></b> does not release the memory anymore so it can be used
several times for the same state.</li>
<li><span class="hist_fixed">Fixed:</span> Invalid cdKillImage in X-Windows when active canvas is not the canvas where the image was created.</li>
<li><span class="hist_fixed">Fixed:</span> Text clipping for <font face="Courier New">CD_IMAGERGB</font> driver.</li>
<li><span class="hist_fixed">Fixed:</span> fixed size in milimeter of <b><font face="Courier New">cdGetScreenSize</font></b> in Win32.</li>
<li><span class="hist_fixed">Fixed:</span> fixed size of the EMF picture.</li>
<li><span class="hist_fixed">Fixed:</span> fixed the parse of filenames with spaces for all file based drivers. The filename must be inside
double quotes (") if it has spaces.</li>
<li><span class="hist_fixed">Fixed:</span> <b><font face="Courier New">cdSetAttribute</font></b> in Lua now can set nil values.</li>
<li><span class="hist_fixed">Fixed:</span> fixed <b><font face="Courier New">cdSector</font></b> when interior style is <font face="Courier New">
CD_HOLLOW</font>, to include two lines connecting to the center point.</li>
<li><span class="hist_fixed">Fixed:</span> In GDI+, the NATIVEWINDOW driver ignored other data pointer configurations in <b>
<font face="Courier New">cdCreateCanvas</font></b>.</li>
<li><span class="hist_fixed">Fixed:</span> In GDI+, <b><font face="Courier New">cdStipple</font></b> was not updated when the foreground or
background colors where changed.</li>
<li><span class="hist_fixed">Fixed:</span> In GDI+, <b><font face="Courier New">cdSector</font></b> and <b><font face="Courier New">cdArc</font></b>
have incorrect angles.</li>
<li><span class="hist_fixed">Fixed:</span> "simple.c" and "simple.zip" were outdated. Now new makefiles were added.</li>
<li><span class="hist_fixed">Fixed:</span> in Windows base driver small incompatibility in cdNativeFont with the IUP FONT attribute.</li>
<li><span class="hist_changed">Changed:</span> Optimization flags now are ON when building the library in all platforms.</li>
<li><span class="hist_changed">Changed:</span> Upgraded Freetype to version 2.1.10. The CD library file size increased because of this. But we gain
a better text rendering for images.</li>
<li><span class="hist_changed">Changed:</span> Better organization of the documentation.</li>
<li><span class="hist_changed">Changed:</span> In Windows the NATIVEWINDOW driver now accepts a NULL pointer to draw in the entire screen.</li>
<li><span class="hist_changed">Changed:</span> Optimized <b><font face="Courier New">cdPutImageRGBARect</font></b> in Windows base driver.</li>
<li><span class="hist_changed">Changed:</span> Now by default CD will not print X-Windows messages. To enable you must set the CD_XERROR environment
variable.</li>
<li><span class="hist_changed">Changed:</span> The default fill rule for polygons in CD_PS is now the Even-Odd rule. Matching the other drivers.</li>
<li><span class="hist_changed">Changed:</span> Line Styles in GDI+ was corrected again to match GDI line styles when line width is not 1.</li>
<li><span class="hist_changed">Changed:</span> The native WC support in GDI+ was removed because of alignment and size problems, simulation will be used.</li>
<li><span class="hist_changed">Changed:</span> the EMF drivers now ignore the resolution parameter. For EMFs, the resolution is always the screen
resolution.</li>
<li><span class="hist_changed">Changed:</span> the value of following attributes were changed to strings <font face="Courier New">"IMAGEMASK"</font>,
<font face="Courier New">"IMAGEPOINTS"</font>, <font face="Courier New">"ROTATE"</font>, <font face="Courier New">
"GRADIENTCOLOR"</font>, <font face="Courier New">"IMAGETRANSP"</font> and <font face="Courier New">"IMAGEFORMAT"</font>.
</li>
<li><span class="hist_changed">Changed:</span> in GDI+ base driver, the <b><font face="Courier New">cdBegin</font></b> modes <font face="Courier New">
CD_IMAGEWARP</font> and <font face="Courier New">CD_GRADIENT</font> were moved to attributes <font face="Courier New">
"IMAGEPOINTS"</font> and <font face="Courier New">"LINEGRADIENT"</font>. Mode <font face="Courier New">CD_PATHGRADIENT</font>
was renamed to <font face="Courier New">CD_FILLGRADIENT</font>, and <font face="Courier New">"PATHGRADIENT"</font>
attribute was renamed to <font face="Courier New">"GRADIENTCOLOR"</font>. Their definition was also changed.</li>
<li><span class="hist_changed">Changed:</span> <b><font face="Courier New">cdImageEx</font></b> was renamed to <b><font face="Courier New">cdBitmap</font></b>,
and now supports only client images. This will cause a conflict with a macro definition in <font face="Courier New">
"im_image.h"</font> header of the IM toolkit. Include this header before <font face="Courier New">"cd.h"</font> and
inbetween set <font face="Courier New">"#undef cdPutBitmap"</font>. The IM macro will be changed in the next IM
version.</li>
<li><span class="hist_changed">Changed:</span> <b><font face="Courier New">cdText</font></b> is not dependent on the <b><font face="Courier New">
cdBackOpacity</font></b> anymore. Text now is always transparent. If you need a box under the text use <b>
<font face="Courier New">cdTextBox</font></b> to calculate the dimensions for <b><font face="Courier New">cdBox</font></b>.</li>
</ul>
<h3>Version 4.3.3 (25/Aug/2004)</h3>
<ul>
<li><span class="hist_new">New:</span> "USERLINESTYLE" attribute for the base GDI and X11 drivers.</li>
<li><span class="hist_new">New:</span> "GC" attribute for the base X11 driver.</li>
<li><span class="hist_changed">Changed:</span> in the Native Window driver for the Windows system, the creation using a HDC can have an addicional
parameter for the canvas size.</li>
<li><span class="hist_changed">Changed:</span> in cdTextSize for the GDI+ base driver we now compensates the height in -10% to match the GDI height.</li>
<li><span class="hist_changed">Changed:</span> The GDI+ printer driver now returns the HDC attribute.</li>
<li><span class="hist_fixed">Fixed:</span> fixed a bug in <b><font face="Courier New">cdNativeFont</font></b> for the GDI+ base driver.</li>
<li><span class="hist_fixed">Fixed:</span> again fixed a rounding error in <b><font face="Courier New">cdPutImage*</font></b> for big zooms.</li>
</ul>
<h3>Version 4.3.2 (14/Apr/2004)</h3>
<ul>
<li><span class="hist_fixed">Fixed:</span> in the Win32 and X-Win drivers the <font face="Courier New"><b>cdPutImageRGB</b></font> and
<font face="Courier New"><b>cdPutImageMap</b></font> functions when zooming bigger then the canvas where incorrectly
positioning the image by some pixels because of round errors.</li>
</ul>
<h3>Version 4.3.1 (07/Nov/2003)</h3>
<ul>
<li><span class="hist_fixed">Fixed:</span> in the Win32 driver the clipping of <font face="Courier New"><b>cdPutImage*</b></font> functions when
zooming was wrong. In the DoubleBuffer driver the main canvas <font face="Courier New"><b>cdOrigin</b></font> can be
used to move the image in the swap operation (<font face="Courier New"><b>cdFlush</b></font>). In the GDI+
DoubleBuffer driver there was an error in the <font face="Courier New"><b>cdFlush</b></font> when some primitive used
world coordinates directly in the main canvas.</li>
</ul>
<h3>Version 4.3 (06/Mar/2003)</h3>
<ul>
<li><span class="hist_new">New:</span> the function <font face="Courier New"><b>cdlua_getcanvas</b></font> retreives the pointer of a canvas created
in Lua.</li>
<li><span class="hist_new">New:</span> in Win32 the function <font face="Courier New"><b>cdUseContextPlus</b></font> change the behavior of the
Windows drivers NativeWindow, IUP, Image, Printer, EMF and Double Buffer to make them use the GDI+ for drawing. GDI+
does not have support for XOR Write Mode, but it has other resources like: transparency, anti-aliasing, gradient
filling, bezier lines and filled cardinal splines. WC functions are directly implemented in the base driver. Two new
functions were created to support transparency in the CD color coding: <font face="Courier New"><b>cdEncodeAlpha</b></font>
and <font face="Courier New"><b>cdDecodeAlpha.</b></font>Check the documentation for more information.</li>
<li><span class="hist_changed">Changed:</span> the Lua binding is now distributed in the same package. There is only one version number.</li>
<li><span class="hist_fixed">Fixed:</span> the PS header had same flaws, the character ":" was missing in some DCS attributes.</li>
<li><span class="hist_fixed">Fixed:</span> screen resolution was wrong in the Win32 driver, this afects the size of the canvas in milimeters.</li>
<li><span class="hist_fixed">Fixed:</span> in the Win32 driver the creation of a polygon for clipping does not activate the clipping.</li>
<li><span class="hist_fixed">Fixed:</span> in the Win32 driver the function <font face="Courier New"><b>cdNativeFont</b></font> using "-d"
parameter need some ajusts. Also the returned string does not contains all the used parameters.</li>
<li><span class="hist_fixed">Fixed:</span> in the Win32 driver the function <font face="Courier New"><b>cdPutImageRectRGBA</b></font> had a
positioning error.</li>
</ul>
<h3>Version 4.2 (20/July/2001)</h3>
<ul>
<li><span class="hist_changed">Changed:</span> in driver Win32, <font face="Courier New"><b>cdNativeFont</b></font> accepts parameter
<font face="Courier New">"-d"</font> on the font name to show the font-selection dialog.</li>
<li><span class="hist_changed">Changed:</span> the whole code can now be compiled as C++.</li>
<li><span class="hist_changed">Changed:</span> functions <font face="Courier New"><b>wdPattern</b></font> and <b><font face="Courier New">wdStipple</font></b>
were changed to make pattern deformation more uniform.</li>
<li><span class="hist_fixed">Fixed:</span> in the Clipboard driver on Win32, when parameter <font face="Courier New">"-b"</font> was used the
image was not correctly copied.</li>
<li><span class="hist_fixed">Fixed:</span> in certain moments, color vectors were being allocated with size 4 and should be
<font face="Courier New">"sizeof(long)"</font>. This was done to improve the compatibility with 64-bit systems.</li>
<li><span class="hist_fixed">Fixed:</span> <font face="Courier New"><b>cdPutImageRectRGB</b></font> in driver ImageRGB had a memory-invasion
error in some cases when the image was placed in a negative coordinate.</li>
</ul>
<h3>Version 4.1.10 (04/May/2000)</h3>
<ul>
<li><span class="hist_changed">Changed:</span> the driver Native Windows in Win32 now also accepts an already created HDC handle as a parameter.</li>
<li><span class="hist_changed">Changed:</span> in the <font face="Courier New"><strong>cdPutImageMap</strong></font>* functions, in case the color
vector is null, a vector with 256 gray shades in assumed.</li>
<li><span class="hist_fixed">Fixed:</span> <font face="Courier New"><b>cdRegisterAttribute</b></font> was not verifying whether the attribute had
already been registered.</li>
<li><span class="hist_fixed">Fixed:</span> function <font face="Courier New"><b>cdArc</b></font> in the simulation driver (includes <strong>
ImageRGB</strong>) was returning without drawing anything in an incorrect test.</li>
<li><span class="hist_fixed">Fixed:</span> function <font face="Courier New"><b>cdTextBox</b></font> was returning incorrect values when the text
had an orientation different from the default one in some alignment instances.</li>
<li><span class="hist_fixed">Fixed:</span> in function <font face="Courier New"><b>cdRGB2Map</b></font> there was a memory invasion.</li>
<li><span class="hist_fixed">Fixed:</span> the vector text simulation was not freeing the memory used for fonts loaded from files.</li>
<li><span class="hist_fixed">Fixed:</span> in the Doubled Buffer driver in X-Windows there was an invalid memory liberation.</li>
<li><span class="hist_fixed">Fixed:</span> in the Lua binding, in several functions receiving or returning tables, the first index was being
considered as 0, but in Lua they must be 1. This correction includes <font face="Courier New"><strong>
cdVectorTextTransform</strong>, <strong>cdGetVectorTextBounds</strong>, <strong>wdGetVectorTextBounds</strong>,
<strong>cdGetClipPoly</strong> </font>and<font face="Courier New"> <strong>wdGetClipPoly</strong></font>.</li>
<li><span class="hist_fixed">Fixed:</span> when the PS driver generated EPS, it did not correctly add the description of the bounding box (a line
break was missing).</li>
<li><span class="hist_fixed">Fixed:</span> the vector text drawing functions did not take into account the fact that the default font and the GKS
fonts were in ASCII standard. Now a conversion from ANSI to ASCII is made before these fonts are used for drawing.</li>
<li><span class="hist_fixed">Fixed:</span> in the X-Win driver, an error in the X-Vertex library caused the texts in 90/270 degrees to be drawn
incorrectly.</li>
<li><span class="hist_fixed">Fixed:</span> in the X-Win driver, the <font face="Courier New"><strong>cdPutImageMap</strong></font> functions were
generating a memory invasion when the X was in 16 bits.</li>
<li><span class="hist_fixed">Fixed:</span> in the Win32 driver, very large non-filled polygons were not being drawn in Windows 9x. To correct
that, they were divided into smaller polygons.</li>
</ul>
<h3>Version 4.1 (24/Nov/99)</h3>
<ul>
<li><span class="hist_new">New:</span> new basic Windows driver attributes that allow controling the internal simulation of pattern/stipple, XOR
text, and filled polygon ("<font face="Courier New">SIMXORTEXT</font>", "<font face="Courier New">SIMPATTERN8X8</font>",
"<font face="Courier New">PENFILLPOLY</font>"). New: attribute for returning the HDC of the Windows canvas.</li>
<li><span class="hist_new">New:</span> the PS driver accepts landscape orientation as a parameter.
New: "<font face="Courier New">POLYHOLE</font>"
attribute allows controling the number of holes in a closed polygon. New: "<font face="Courier New">-1</font>"
parameter forces a level 1 Postscript. New: "<font face="Courier New">-g</font>" parameter adds comments to the PS file
in order to better explain what is done. New: "<font face="Courier New">CMD</font>" attribute saves a string to the
file.</li>
<li><span class="hist_new">New:</span> new environment variable, <font face="Courier New">CD_QUIET</font>, does not display in <em>stdout</em> the
library's version information.</li>
<li><span class="hist_new">New:</span> two new exclusive functions for the Native Window driver: <font face="Courier New"><b>cdGetScreenColorPlanes</b></font>
and <font face="Courier New"><b>cdGetScreenSize</b></font>.</li>
<li><span class="hist_new">New:</span> new CD_DBUFFER driver implements a <em>double buffer</em> using a server image.</li>
<li><span class="hist_new">New:</span> new attributes in the ImageRGB driver: "<font face="Courier New">REDIMAGE</font>", "<font face="Courier New">GREENIMAGE</font>"
and "<font face="Courier New">BLUEIMAGE</font>".</li>
<li><span class="hist_new">New:</span> new functions <font face="Courier New"><b>wdGetVectorTextBounds</b></font> and <font face="Courier New"><b>
cdGetVectorTextBounds</b></font> to obtain the bounding box of the vector text.</li>
<li><span class="hist_new">New:</span> new <font face="Courier New"><b>wdGetFont</b></font> function. It is equivalent to <font face="Courier New">
<strong>cdGetFont</strong></font>, but the returned size is in millimeters.</li>
<li><span class="hist_fixed">Fixed:</span> the management of WD functions was incomplete for functions <font face="Courier New"><strong>cdPixel</strong>,
<strong>cdVertex</strong> </font>and<font face="Courier New"> <strong>cdPutImage</strong></font>*. This resulted in a
wrong or out of the canvas positioning. It only affects drivers PS and METAFILE.</li>
<li><span class="hist_fixed">Fixed:</span> function <font face="Courier New"><b>cdActivate</b></font> in Lua was not returning the correct
values.</li>
<li><span class="hist_fixed">Fixed:</span> when the image was partially out of the window, above or below, functions <font face="Courier New">
<strong>cdPutImageMap</strong></font> and <font face="Courier New"><strong>RGB</strong></font> were drawing a wrong
portion of the image.</li>
<li><span class="hist_fixed">Fixed:</span> in the CGM driver, after opening the file of the <font face="Courier New"><strong>cdPlay</strong></font>
function, the check to see if the opening had been successful was not being done.</li>
<li><span class="hist_fixed">Fixed:</span> when the active canvas was already <font face="Courier New">NULL</font>, the activation of a
<font face="Courier New">NULL</font> canvas was generating a memory invasion.</li>
<li><span class="hist_fixed">Fixed:</span> in the creation of EPS, the PS driver was adding a wrong call to <font face="Courier New">
setpagedevice</font>. The <font face="Courier New"><strong>cdPutImageMap</strong></font> function was modifying the
wrong PS parameter in the file. The margin clipping was not saved when the drawing's clipping area was changed. The
clipping area, when drawing in WD, was being incorrectly modified.</li>
<li><span class="hist_fixed">Fixed:</span> in the IMAGERGB driver, functions <font face="Courier New"><b>cdRedImage</b>, <b>cdBlueImage</b>
</font>and<font face="Courier New"> <b>cdGreenImage</b></font> were returning invalid pointers.</li>
<li><span class="hist_fixed">Fixed:</span> when initializing text simulation functions, the opened font file was not being closed. This affected
all CD drivers, but was only apparent in the application that opened and closed many drivers.</li>
<li><span class="hist_fixed">Fixed:</span> the approximate computation of the text size was not accepting sizes in pixels.</li>
<li><span class="hist_fixed">Fixed:</span> the creation of the IMAGERGB driver in Lua was incorrect when the resolution parameter (which is
optional) was not specified.</li>
<li><span class="hist_fixed">Fixed:</span> functions <font face="Courier New"><b>cdGetClipPoly</b></font> and <font face="Courier New"><b>
wdGetClipPoly</b></font> in Lua were causing memory invasion.</li>
<li><span class="hist_changed">Changed:</span> in the PS driver, when the Map image is actually a grayscale, function <font face="Courier New">
<strong>cdPutImageMap</strong></font> uses an 8 bit image, thus saving memory. Level 2 Postscript functions
<font face="Courier New">rectfill, rectstroke</font> and <font face="Courier New">rectclip</font> are now used. The
comments in DCS were updated to DCS version 3 and were increased to improve the document's portability.</li>
<li><span class="hist_changed">Changed:</span> in driver X-Windows, the text drawing attribute was implemented with any orientation.</li>
<li><span class="hist_changed">Changed:</span> function <font face="Courier New"><b>cdVersion</b></font> in Lua now behaves just like in C. A global Lua
variable, <font face="Courier New"><b>CDLUA_VERSION</b></font>, was created containing the version of the Lua binding
library - for example: "CDLua 1.3.0".</li>
<li><span class="hist_changed">Changed:</span> function <font face="Courier New"><b>cdVectorTextTransform</b></font> now returns the previsous
transformation matrix.</li>
</ul>
<h3>Version 4.0.1 (05/Mar/99)</h3>
<ul>
<li><span class="hist_fixed">Fixed:</span> in the Windows driver, the polygon simulation with pattern was corrected to polygons with repeated
points.</li>
<li><span class="hist_fixed">Fixed:</span> in the Windows driver, function <font face="Courier New"><strong>cdNativeFont</strong></font> was
corrected for IUP fonts. It was affecting the Matrix's visualization.</li>
<li><span class="hist_fixed">Fixed:</span> function <font face="Courier New"><strong>cdNativeFont</strong></font> was wrongly testing its input
parameter and always returning.</li>
<li><span class="hist_fixed">Fixed:</span> in the drivers IUP and Native Window, the <font face="Courier New"><strong>cdGetCanvasSize</strong></font>
function was corrected. When the window size was changed, the values in millimeters were not updated to
<font face="Courier New"><strong>cdActivate</strong></font>.</li>
<li><span class="hist_fixed">Fixed:</span> in the CGM driver, function <font face="Courier New"><strong>cdPlay</strong></font> was generating
problems in reading and displaying cell arrays. When the <font face="Courier New"><strong>cdCreateCanvas</strong></font>
function used the default values for dimensions and resolution, it generated files with errors.</li>
<li><span class="hist_changed">Changed:</span> in the X-Windows driver, function <font face="Courier New"><strong>cdPixel</strong></font> was
optimized. It now compares the color to the foreground color and reuses the value.</li>
</ul>
<h3>Version 4.0 (18/Feb/99)</h3>
<ul>
<li><b>Summary</b>: (necessary due to the great number of changes).<br>
- Update of the Lua binding.<br>
- Several changes in the internal structure (most bringing benefits only to the driver developer).<br>
- Countless corrections. <br>
- Small changes in the functions <font face="Courier New"><b>cdHatch</b>, <b>cdScrollImage</b>, <b>cdFont</b> </font>
and<font face="Courier New"> <b>cdPlay</b></font>. <br>
- Optimization of functions <font face="Courier New"><b>wdVectorFont</b></font> and <font face="Courier New"><b>
cdMark</b></font>. <br>
- New: functions: <br>
<font face="Courier New"><b>cdCreateCanvasf, cdGetContext,</b> <strong>cdContextCaps</strong>, <strong>
cdSaveState, cdRestoreState</strong>, <strong> cdSetAttribute, cdGetAttribute</strong><br>
<b> cdOrigin, cdRect, wdRect, cdGetFont,</b> <strong>cdGetStipple</strong>, <strong>cdGetPattern</strong>, <strong>
cdTextBox</strong><br>
<b> cdPutImageRectRGB</b>, <b>cdPutImageRectRGBA</b>, <b>cdPutImageRectMap,</b> <br>
<b> cdCreateImageEx</b>, <b>cdKillImageEx</b>, <b>cdPutImageEx</b>, <b>cdGetImageEx</b></font>. <br>
- New: WD functions: <font face="Courier New"><b>wdHardcopy, wdPattern, wdStipple, wdPixel, wdPutImageRect,
wdPutImageRectRGB</b>, <b>wdPutImageRectRGBA</b> </font>and<font face="Courier New"> <b>wdPutImageRectMap</b></font>.
<br>
- New: vector text functions: <font face="Courier New"><strong>cdVectorFont, cdVectorTextDirection,
cdVectorTextTransform, cdVectorTextSize, cdGetVectorTextSize, cdVectorCharSize, cdVectorText </strong></font>and<font face="Courier New"><strong>
cdMultiLineVectorText</strong></font>.<br>
- <font face="Courier New"><b>wdActivate</b></font> is no longer necessary. <br>
<b>-</b> Driver IMAGERGB complete.<br>
- Driver SIMULATE no longer exists; now function <font face="Courier New"><strong>cdSimulate</strong></font> must be
used. <br>
- New: driver DIRECTDRAW. <br>
- Policy change of <font face="Courier New"><b>cdPalette</b></font> in the X-Windows driver<br>
- IUP driver is now in a separate library.</li>
</ul>
<p>IMPORTANT NOTE: This version is not totally compatible to the previous one. The applications using the driver IUP
must be relinked, as this driver is now in a separate library, "<strong>cdiup</strong>". The Lua applications must also
be modified to include a call to function <font face="Courier New"><strong>cdluaiup_open</strong></font> after
<font face="Courier New"><strong>cdlua_open</strong></font>, and must be linked with the "<strong>cdluaiup</strong>"
library. The SIMULATE driver no longer exists, therefore the applications that used it must be modified to use the new
function, <font face="Courier New"><strong>cdSimulate</strong></font>, without the need for creating a new driver.</p>
<ul>
<li>Changed: the internal structure of the library was changed once again. One of the purposes is to make the
drivers become independent from the function table. With this change, adding a new function to the function table does
not imply editing the old drivers. We also allowed the drivers not to implement functions that do not make sense in
their context. Another modification simplifying the work in the drivers was to bring the attribute query mechanism to
the library's control part, freeing the drivers from this obligation. Taking the chance, we determined that a change
in an attribute to a value equal to the current one will not be effective, thus saving calls to the driver. Now, the
value of an attribute is changed even if the driver function is not implemented, as the driver can query this
attribute later on. The management of default values of the attributes is also done by the library's control part. All
these changes prepare the library to a new philosophy: before, if a driver did not contain a certain feature, it
simply did nothing. The new philosophy will be: if a driver does not contain a certain feature, then the simulation of
this feature will be activated.</li>
<li>Changed: when a canvas which is already active is activated again, an internal driver function is now called,
notifying an update instead of an activation.</li>
<li>Changed: the use of the CD canvas with a IUP canvas is better described in the manual, showing the various
ways of treating the canvas creation prooblem.</li>
<li>Changed: all functions in the control module now have <font face="Courier New">ASSERT</font> directives. Thus,
using the library with depuration information, one can better detect simple errors.</li>
<li>Changed: in order to use the IUP driver, it must be linked with the "<strong>cdiup</strong>" library, apart
from the "<strong>cd</strong>" library (<font face="Courier New">cdiup.lib</font> in Windows, <font face="Courier New">
cdiuplib.a</font> in UNIX).</li>
<li>Changed: the IMAGERGB driver is now implemented using the simulation functions.</li>
<li>Changed: the <font face="Courier New"><b>cdMark</b></font> function is back to the function table, so that the
drivers in which the primitive can be implemented can profit from it.</li>
<li>Changed: in order to assure that the use of server images is done only between canvases of the same driver, or
of the same basic driver, an internal structure was defined for the server image containing the functions of the
driver from which the image was created. Thus, if the <font face="Courier New"><b>cdKillImage</b></font> function is
called with an active canvas of a different kind from that in which the image was created, the
<font face="Courier New"><b>KillImage</b></font> function of the correct driver will be called.</li>
<li>Changed: in the X-Windows driver, the XV code was used to optimize functions <font face="Courier New"><strong>
cdPutImageRectRGB</strong></font> and <font face="Courier New"><strong>cdPutImageRectMap</strong></font>.</li>
<li>Changed: the Lua binding was updated. Now the user guide contains Lua function together with C functions.</li>
<li>Changed: in the X-Windows driver, <font face="Courier New"><b>cdPalette</b></font>'s policy was changed to fulfill
the requirements of some applications, which wanted to force a palette. Please see the function's documentation in the
driver.</li>
<li>Changed: the CGM driver used to always store the <font face="Courier New"><strong>cdForeground</strong></font>
attribute before drawing a primitive; now it stores the attribute only when it is changed. The
<font face="Courier New"><strong>cdBackOpacity</strong></font> function was not implemented. The
<font face="Courier New"><strong>cdFlush</strong></font> function was not preserving the canvas attributes. Now when
the canvas size is not specified in the <font face="Courier New"><strong>cdCreateCanvas</strong></font> function, the
VDC Extension saved to the file is the figure's bounding rectangle. The patterns and/or stipples selected were being
stored in a way so that only the first one was valid.</li>
<li>Changed: the documentation of the old DOS driver was removed from the user guide.</li>
<li>Changed: the default resolution for drivers DGN, DXF, METAFILE, CGM and ImageRGB is no longer 1 but 3.8 points per
mm (96 DPI).</li>
<li>Changed: in the <font face="Courier New"><b>cdInteriorStyle</b></font> function, if stipple or pattern are not
defined, the state of the attribute is not modified. There is no longer a default 32x32 pattern or stipple.</li>
<li>Changed: in functions <font face="Courier New"><b>cdFontDim</b></font> and <font face="Courier New"><b>cdTextSize</b></font>,
if the driver does not support this kind of query, the values are estimated.</li>
<li>Changed: function <font face="Courier New"><b>cdHatch</b></font> now returns the previous value.</li>
<li>Changed: function <font face="Courier New"><b>cdScrollImage</b></font> is now called <font face="Courier New"><b>
cdScrollArea</b></font>, better reflecting its functionality, since it does not require any explicitly defined image
to be performed. The old function is maintained to assure compatibility with old applications.</li>
<li>Changed: the <font face="Courier New"><b>cdPlay</b></font> function now accepts all window parameters null. In this
case, the primitives in the file are interpreted without scaling.</li>
<li>Changed: <font face="Courier New"><b>cdFont</b></font>now accepts font sizes in pixels when negative values are
used as a parameter.</li>
<li>Changed: the WD functions were included in the library's function table, so that the drivers can use floating point
precision when storing primitives. Presently, only the drivers PS and METAFILE have this resource directly
implemented. With this change, the <font face="Courier New"><b>wdActivate</b></font> function became obsolete and is
no longer necessary. For purposes of compatibility with other applications, it was maintained only as a call to
function <font face="Courier New"><b>cdActivate</b></font>.</li>
<li>Changed: drivers EMF and WMF now accept the resolution as a parameter.</li>
<li>New: internal modification of the Windows driver to allow the creation of the DirectDraw driver.</li>
<li>New: DirectDraw driver to accelerate video access to high-performance applications.</li>
<li>New: function <font face="Courier New"><b>cdInteriorStyle</b></font> now accepts style <font face="Courier New">
CD_HOLLOW</font>. When this style is defined, the <font face="Courier New"><b>cdBox</b></font> and
<font face="Courier New"><b>cdSector</b></font> functions behave like their equivalents <font face="Courier New"><b>
cdRect</b></font> and <font face="Courier New"><b>cdArc</b></font>, and the polygons with the <font face="Courier New">
CD_FILL</font> style behave like <font face="Courier New">CD_CLOSED_LINES</font>.</li>
<li>New: new functions:<br>
- <font face="Courier New"><b>cdCreateCanvasf</b></font> accepts parameters equivalent to <font face="Courier New"><b>
sprintf</b></font>, helping in the creation of some canvases.<br>
- <font face="Courier New"><b>cdOrigin</b></font> allows translating the origin - for instance, to the center of the
canvas.<br>
- <font face="Courier New"><b>cdGetContext</b></font> returns the context of a given canvas; it can be compared with
predefined contexts, such as "<font face="Courier New">CD_PS</font>".<br>
- <strong><font face="Courier New">cdSaveState</font> </strong>and<strong> <font face="Courier New">cdRestoreState</font></strong>
allow saving and restoring the state of attributes of the active canvas.<br>
<strong>- <font face="Courier New">cdSetAttribute</font> </strong>and<strong> <font face="Courier New">cdGetAttribute</font></strong>
allow passing customized attributes to the driver, which are ignored if the driver does not have the attribute
defined.<br>
- <font face="Courier New"><strong>cdContextCaps</strong></font> returns a combination of several flags informing the
available resources of the canvas in that context.<br>
- Driver SIMULATE no longer exists. Now function <font face="Courier New"><strong>cdSimulate</strong></font> must be
used. The simulation can be activated and deactivated at any moment.<br>
- <font face="Courier New"><b>cdRect</b></font> and <font face="Courier New"><b>wdRect</b></font> allow drawing a box
with no filling.<br>
- <font face="Courier New"><b>cdGetFont</b></font> returns the values of the font modified by function
<font face="Courier New"><b>cdFont</b></font> and ignores those modified by <font face="Courier New"><b>cdNativeFont</b></font>.<br>
- <font face="Courier New"><strong>cdTextBox</strong></font> returns the horizontal bounding rectangle of the text
box, even if it is bended.<br>
- <font face="Courier New"><strong>cdGetStipple</strong></font> and <font face="Courier New"><strong>cdGetPattern</strong></font>
return current stipple and pattern. With these functions and with function <font face="Courier New"><strong>cdGetFont</strong></font>,
one can now totally change and restore the attributes of a given canvas.<br>
- <font face="Courier New"><b>wdPattern</b></font> and <font face="Courier New"><b>wdStipple</b></font> allow
specifying the style in world coordinates. The size of the image is modified to the specified size in millimeters.<br>
- functions <font face="Courier New"><b>cdPutImageRectRGB</b>, <b>cdPutImageRectRGBA</b> and <b>
cdPutImageRectMap</b></font> allow specifying a rectangle in the image to be used for the drawing instead of the whole
image.<br>
- <font face="Courier New"><b>wdPixel, wdPutImageRect</b>,<b> wdPutImageRectRGB</b>, <b>wdPutImageRectRGBA</b> </font>
and<font face="Courier New"> <b>wdPutImageRectMap</b></font> are equivalent to <font face="Courier New"><b>cdPixel</b>,<b>
cdPutImageRect</b>,<b> cdPutImageRectRGB</b>, <b>cdPutImageRectRGBA</b> </font>and<font face="Courier New"> <b>
cdPutImageRectMap</b></font>, respectively, but the target coordinates are specified in world coordinates.<br>
- New: vector text functions: <font face="Courier New"><strong>cdVectorFont</strong>,<strong> cdVectorTextDirection</strong>,<strong>
cdVectorTextTransform</strong>,<strong> cdVectorTextSize</strong>,<strong> cdGetVectorTextSize</strong>,<strong>
cdVectorCharSize</strong>,<strong> cdVectorText</strong>,<strong> cdMultiLineVectorText</strong></font>. The vector
text can now be used without the need of world coordinates. Functions <strong><font face="Courier New">wdVectorFont</font>
</strong>and<strong> <font face="Courier New">wdVectorTextTransform</font></strong> have become obsolete, though they
still exist for compatibility reasons.<br>
- <font face="Courier New"><strong>wdHarcopy</strong></font> helps drawing WD primitives in devices, adjusting Window
and Viewport.<br>
- Auxiliary functions were created to manipulate all sorts of images in a single way, being either client, RGB, RGBA,
MAP, or server images: <font face="Courier New"><b>cdCreateImageEx</b>, <b>cdKillImageEx</b>, <b>cdPutImageEx</b>, <b>
cdGetImageEx</b></font>, etc.</li>
</ul>
<ul>
<li>Fixed: the documentation of function <font face="Courier New"><b>cdFont</b></font> was confusing, causing
errors in the conversion from pixels to points.</li>
<li>Fixed: function <font face="Courier New"><b>wdFont</b></font> was making a wrong conversion of the font size
parameter from millimeters to points.</li>
<li>Fixed: functions <font face="Courier New"><b>wdVectorText</b></font> and <font face="Courier New"><b>
wdMultiLineVectorText</b></font> were generating an extra polygon when the text contained blank spaces in certain
positions.</li>
<li>Fixed: the PS driver was not prepared for marked texts. Function <font face="Courier New"><strong>cdFlush</strong></font>
did not preserve current attributes. The interior style was affecting line drawing. The text alignment now takes into
account an estimation for the baseline. Function <font face="Courier New"><strong>cdTextOrientation</strong></font>
was implemented. The world coordinate functions were implemented directly in the driver. Hatch and stipple interior
styles were implemented, but they are still only opaque.</li>
<li>Fixed: in the X-Windows driver, function <font face="Courier New"><b>cdGetColorPlanes</b></font> was
returning 8 bpp even if the canvas was 24 bbp when the default visualization was different from the canvas'
visualization in that X server. Text position on the screen was above the one entered. Function
<font face="Courier New"><b>cdFont</b></font> was looping in certain conditions. Function <font face="Courier New"><b>
cdEnd</b></font> in the X-Windows driver in the AIX system was generating an error and aborting the program if only
one point of the polygon was specified. Dashed lines were always opaque, ignoring the <font face="Courier New">
<strong>cdBackOpacity</strong></font> attribute.</li>
<li>Fixed: in the Clipboard driver for X-Windows, a parameter was missing which prevented it from working
properly. Before the update, it used that of the IUP/Native Window active canvas.</li>
<li>Fixed: in the Windows driver, the text position on the screen was above the position provided. Filled
polygons had a one pixel error to the right and below due to the small <font face="Courier New">NULL</font> used.
Fillings with hatch, pattern and stipple still contain errors. The internal simulation of polygons filled with pattern
and stipple was also corrected; they had one additional pixel to the right and below. Text alignment treatment was
improved.</li>
<li>Fixed: driver WMF now has text alignment.</li>
<li>Fixed: in the PRINTER (Windows) driver, function<font face="Courier New"><strong> cdFlush</strong></font> was
not preserving current attributes.</li>
<li>Fixed: in the CGM driver, the text align interpretation was corrected. The <font face="Courier New"><strong>
cdMark</strong></font> function is implemented directly in the driver. Function <font face="Courier New"><strong>
cdBackOpacity</strong></font> was implemented. Mark interpretation was also corrected.</li>
<li>OPTIMIZATION: function <font face="Courier New"><b>wdVectorFont</b></font> only loads the new font if it is
different from the current one.</li>
<li>OPTIMIZATION: function <font face="Courier New"><b>cdMark</b></font> now modifies fill and line attributes only if
they are different from the one needed to draw the mark.</li>
</ul>
<h3>Version 3.6 (05/May/98)</h3>
<ul>
<li>Fixed: / Win32: every time the clipping region changed the old region was not deleted.</li>
<li>New: new function <font face="Courier New"><strong>cdRGB2Map</strong></font>, which converts an RGB image into a
256 indexed-colors image. It is the same algorithm used in the IM library - in fact, it is the same code.</li>
<li>Changed: the <font face="Courier New"><strong>cdMark</strong></font> function now uses the <strong>
<font face="Courier New">cdPixel</font></strong> function when drawing a mark of 1 pixel size.</li>
<li>Changed: / Win32: the <font face="Courier New"><strong>cdPixel</strong></font> function now uses the <strong>
<font face="Courier New">SetPixelV</font></strong> function when not under Win32s. This function is faster than the
<strong><font face="Courier New">SetPixel</font></strong> function because it does not return the old value.</li>
<li>Changed: / Win32: the polygon used for clipping is now optimized to not include 3 points that are in the same
horizontal or vertical line.</li>
<li>Fixed: / WD: the <font face="Courier New"><strong>wdVectorText</strong></font> function was not drawing
correctly when extended characters (>128) were used.</li>
<li>Fixed: / X: the <font face="Courier New"><strong>cdPalette</strong></font> function and the color management
for canvases with only 256 colors were wrong. Each canvas had its own management, now all canvases in the same
aplication use the same management.</li>
<li>Fixed: / X: several resource and memory leaks were corrected.</li>
<li>Fixed: / IMAGERGB: functions <font face="Courier New"><strong>cdRedImage</strong></font>,
<font face="Courier New"><strong>cdGreenImage</strong></font> and <font face="Courier New"><strong>cdBlueImage</strong></font>
were not returning the correct pointer.</li>
<li>Fixed: / SunOS: drivers IMAGERGB, SIMULATE and NATIVEWINDOW use the "%p" format string, but in the SunOS
they use "%d" because of an internal bug of the run time library of this OS.</li>
<li>Changed: / IUP: driver IUP sets the <strong><font face="Courier New">cdCanvas</font></strong> function as an
attribute of the <strong><font face="Courier New">IupCanvas</font></strong> passed as a parameter using the name
"_CD_CANVAS".</li>
<li>MANUAL: the manual appearance was changed to match the new Tecgraf standard.</li>
</ul>
<h3>Version 3.5 (07/Jan/98)</h3>
<ul>
<li>New: the <font face="Courier New"><strong>cdTextDirection</strong></font> function allows raster text to be drawn
in any direction. Up to now it is implemented only in the basic Win32 driver.</li>
<li>Fixed: / X / NativeWindow: the canvas was not created if the screen was 0.</li>
<li>Fixed: / Win32 / NativeWindow: now the driver considers the existence of non owner-draw device contexts.</li>
<li>Fixed: / Win32: function <font face="Courier New"><strong>cdClipArea</strong></font> was not including
<font face="Courier New">xmax</font> and <font face="Courier New">xmin</font> in the clipping area.</li>
<li>Changed: the <font face="Courier New"><strong>cdCallback</strong></font> typedef was defined, being useful for
type casting when calling the <font face="Courier New"><strong>cdRegisterCallback</strong></font> function.</li>
<li>Fixed: / Win32: a compatibility problem with the <font face="Courier New"><strong>cdNativeFont</strong></font>
string and the <font face="Courier New">WINFONT IUP</font> attribute was corrected.</li>
<li>Changed: / Win32: the <font face="Courier New"><strong>cdPutImageRGB</strong></font> and
<font face="Courier New"><strong>cdPutImageMap</strong></font> functions use a cache memory for best performance.</li>
<li>Fixed: text size estimation for the CGM and PS drivers now uses Courier
New: as the "System" font. As it was,
it was causing a memory invasion.</li>
</ul>
<h3>Version 3.4 (12/Nov/97)</h3>
<ul>
<li>Changed: / X: memory use of the <font face="Courier New"><strong>cdPutImageRGB</strong></font>,
<font face="Courier New"><strong>cdPutImageRGBA</strong></font> and <font face="Courier New"><strong>cdPutImageMap</strong></font>
functions was optimized, as well as the performance of the <font face="Courier New"><strong>cdPutImageMap</strong></font>
function.</li>
<li>Changed: / X and Win32: when the canvas has bpp <= 8, function <strong><font face="Courier New">cdPutImageRGB</font>
</strong>converts the image into Map before displaying it.</li>
<li>Changed: / X and Win32: if a font's parameters are the same as the current parameters, the
<font face="Courier New"><strong>cdFont</strong></font> function does nothing.</li>
<li>DOC / PS: the "-d" parameter for the EPS option was not documented.</li>
<li>Fixed: / PS: parameters "-w" and "-h" were incorrectly interpreted.</li>
<li>Fixed: / X: the internal function names were generating an error in the VMS plataform.</li>
<li>Fixed: / X: the <font face="Courier New"><strong>cdKillCanvas</strong></font> function was freeing some
pointers of the active canvas.</li>
<li>Changed: / Win32: the <font face="Courier New"><strong>cdVertex</strong></font> function now ignores duplicate
points.</li>
<li>Changed: / Win32: the <font face="Courier New"><strong>cdNativeFont</strong></font> function also accepts the
font string of the <font face="Courier New">WINFONT IUP</font> attribute.</li>
<li>Fixed: / DXF: corrections in color conversion and in the <strong><font face="Courier New">cdArc</font></strong>
function for small radius were made, and an unnecessary identation was removed.</li>
</ul>
<h3>Version 3.3 (19/Sep/97)</h3>
<ul>
<li>Changed: / X: the <strong><font face="Courier New">cdFont</font></strong> function now has a better heuristic
to find a closer font if the requested font does not match an available one.</li>
<li>Changed: / X: the <strong><font face="Courier New">cdPattern</font></strong> and <strong>
<font face="Courier New">cdStipple</font></strong> functions now use a bitmap cache to store the <em>pixmap</em> and
do not recreate it if the size is not changed.</li>
<li>Fixed: / X and Win32: the <strong><font face="Courier New">cdPutImageRect</font></strong> function was placing
the bitmap in a wrong position.</li>
<li>Fixed: / Win32: the <strong><font face="Courier New">cdCreateImage</font></strong> function did not return
<font face="Courier New">NULL</font> when the creating failed.</li>
<li>Changed: / Win32: the <font face="Courier New"><strong>cdPutImageRGB</strong></font>, <font face="Courier New">
<strong>cdPutImageRGBA</strong></font> and <font face="Courier New"><strong>cdPutImageMap</strong></font> functions
were largely optimized when the picture displayed is larger than the screen.</li>
<li>Changed: / WMF: using the <font face="Courier New"><strong>cdPlay</strong></font> function we discovered that
the size of the picture was incorrect in the header file, so we first had to calculate the bounding box and then
interpret the picture.</li>
<li>Changed: / PS and CGM: now the <font face="Courier New"><strong>cdFontDim</strong></font> and
<font face="Courier New"><strong>cdTextSize</strong></font> functions return approximate dimensions, instead of
nothing.</li>
<li>Fixed: / PS: the default font was not being set when the canvas was created.</li>
<li>Fixed: / PS: text alignment was incorrect in the vertical direction.</li>
<li>Fixed: / SIM: the clipping algorithm of the <font face="Courier New"><strong>cdPixel</strong></font> function
of the Simulation driver was corrected.</li>
<li>Fixed: / CD: now you can activate a <font face="Courier New">NULL</font> canvas. When you get the active
canvas and restore it, if it was <font face="Courier New">NULL</font> the <strong><font face="Courier New">cdActivate</font></strong>
function was accessing an invalid pointer.</li>
<li>MANUAL: several changes were made on the online manual structure, and were added to the CDLua page.</li>
</ul>
<h3>Version 3.2</h3>
<ul>
<li>A problem in the <font face="Courier New"><strong>cdFlush</strong></font> function in the Postscript driver was
corrected. It was not setting the scale.</li>
<li>Functions <font face="Courier New"><strong>wdFontDim</strong></font> and <font face="Courier New"><strong>
wdTextSize</strong></font> now check if the return pointers are not <font face="Courier New">NULL</font>.</li>
<li>An internal function in the DGN driver was drawing an ellipse with two times the axis size.</li>
<li>The <font face="Courier New"><strong>cdFont</strong></font> function was corrected to store the font names in the
CGM driver.</li>
</ul>
<h3>Version 3.1</h3>
<ul>
<li>Several minor bugs in the Win32 Printer driver and in the Postscript driver were corrected. The EPS mode of the PS
driver now generates a "showpage" PS function so it can be printed.</li>
<li>The Clipboard driver was implemented in Motif. The <font face="Courier New"><strong>cdPlay</strong></font>
function was implemented in the Motif and Win32 Clipboard drivers.</li>
<li>The <font face="Courier New"><strong>cdRegisterCallback</strong></font> function was added to allow the
customization of the <font face="Courier New"><strong>cdPlay</strong></font> function's behavior.</li>
<li>The <font face="Courier New"><strong>wdVectorTextTransform</strong></font> function allows a 2D transformation
applied to any vector text.</li>
<li>Now the Simulation driver has several levels of simulation, and the simulation was improved with pattern and
clipping simulation.</li>
</ul>
<h3>Version 3.0</h3>
<ul>
<li>The library's architecture underwent several changes. The function tables are no longer public, only the drivers
know its structure. This means that we have eliminated the need to recompile applications that use the dynamic library
when we change something in the function table. There are some other benefits, like the fact that the Windows DLL can
now be implemented and that it is more simple to explain the library to new users, so they will not be confused by the
<font face="Courier New">cdprivat.h</font> header.</li>
<li>Corrections to the text alignment of the <font face="Courier New"><strong>wdVectortext</strong></font> function
were made.</li>
<li>Memory allocation of the <font face="Courier New"><strong>cdPattern</strong></font> and <font face="Courier New">
<strong>cdStipple</strong></font> functions in the basic Windows driver was corrected.</li>
<li>Memory release of the <font face="Courier New"><strong>cdKillCanvas</strong></font> function in the basic Windows
driver was corrected.</li>
<li>The <font face="Courier New"><strong>cdPattern</strong></font> function was implemented in the Postscript driver,
and the <font face="Courier New"><strong>cdPutImageRGB</strong></font> and <font face="Courier New"><strong>
cdPutImageMap</strong></font> functions now write color images.</li>
<li>The <font face="Courier New"><strong>cdPattern</strong></font> function was corrected in the basic X-Windows
driver for use with clipping.</li>
<li>The compiler directive <font face="Courier New">#include<<strong>malloc.h</strong>></font> was changed to
<font face="Courier New">#include<<strong>stdlib.h</strong>></font> in several modules for better compatibility with
other compilers.</li>
<li>The <font face="Courier New"><strong>cdPlay</strong></font> function now accepts the viewport rectangle where the
drawing will be rendered.</li>
<li>Several navigation changes were made to the user guide pages.</li>
<li>A <strong>new</strong> CD_SIMULATE driver was created. Use it to replace some primitives and to handle attributes
of another driver. It can be used with any other driver. Basically, it substitutes the interior style of dependent
primitives: box, sector and filled polygons. It also substitutes the clipping methods of these primitives.</li>
<li>The Windows DLL version of the library was created.</li>
</ul>
<h3>Version 2.2.1</h3>
<ul>
<li>Interrnal macros that affect <font face="Courier New"><strong>wdArc</strong></font> and <font face="Courier New">
<strong>wdSector</strong></font> were corrected.</li>
<li>The CGM driver now supports some client image functions.</li>
<li>Hatch styles in the Image RGB driver were corrected.</li>
</ul>
<h3>Version 2.2.0</h3>
<p><strong>New: Functions:</strong></p>
<p><font face="Courier New"><strong>cdVersion</strong></font> - returns the current library version.<br>
<font face="Courier New"><strong>cdNativeFont</strong></font> - sets a native font.<br>
<font face="Courier New"><strong>cdPutImageRect</strong></font> - same as <strong><font face="Courier New">
cdPutImage</font></strong> but you may specify a part of the image.<br>
<font face="Courier New"><strong>cdPutImageRGBA</strong></font> - <strong><font face="Courier New">cdPutImageRGB</font></strong>
with transparency.<br>
<font face="Courier New"><strong>wdFont</strong></font> - <strong><font face="Courier New">cdFont</font></strong>
for the WD client, the size parameter is in millimeters.</p>
<p><strong>New: Drivers:</strong></p>
<p><strong>NativeWindow</strong> - now the library can work with other Interface libraries.<br>
<strong>DGN</strong> - MicroStation Design File.<br>
<strong>EMF</strong> - Windows Enhanced Metafile.<br>
<strong>CD Metafile</strong> - our own metafile.<br>
<strong>Client Image RGB</strong> - now you can write in an RGB image.</p>
<ul>
<li><strong>DGN</strong>, <strong>CGM</strong> and <strong>DXF</strong> file-based drivers now have a default size in
pixels (<strong>INT_MAX</strong> = 2.147.483.647) and are optional. In fact the size is irrelevant in these file
formats. The <font face="Courier New"><strong>cdCreateCanvas</strong></font> data string may contain the size in
millimeters and the resolution in pixels per millimeters. Both are real values. The default resolution is 1.</li>
<li>The <font face="Courier New"><strong>cdPlay</strong></font> function now works on the CGM and on the CD Metafile
drivers.</li>
<li>The interior style attributes were implemented in the <strong>CGM</strong> driver.</li>
<li>On the Clipboard driver: limitations are considered if creating a WMF under Win32s.</li>
<li>Now the Printer Driver shows the Printer's Dialog Box (Win32 & Mac) if the parameter "-d" is specified.</li>
<li>On the PS driver: all the dimensions in the Data parameter string are now in millimeters.</li>
<li>On the WMF driver: several functions were disabled because of WMF limitations. Picture size was corrected.</li>
<li>On the basic X-Windows driver: <font face="Courier New"><strong>cdLineWidth</strong>(1)</font> uses
<font face="Courier New">width 0</font> for better performance. Stipple was being incorrectly interpreted.
<font face="Courier New"><strong>cdGetImageRGB</strong></font> was swapping red and blue channels on true color
canvas.</li>
<li>The clipping region now can be a polygon on some systems/drivers (Win32, Mac, X-Win and PS). Use
<font face="Courier New"><strong>cdClip</strong>(CD_CLIPPOLYGON)</font> to use the polygon defined by a
<font face="Courier New"><strong>cdBegin</strong>(CD_CLIP)</font>,<font face="Courier New"> <strong>cdVertex</strong>(...)</font>,<font face="Courier New">
<strong>cdEnd</strong>()</font> sequence.</li>
<li>The functions <strong><font face="Courier New">wdMM2Pixel</font></strong> and <strong><font face="Courier New">
wdPixel2MM</font></strong> became <font face="Courier New"><strong>cdMM2Pixel</strong></font> and
<font face="Courier New"><strong>cdPixel2MM</strong></font>, respectively.</li>
<li>Minor bugs in the <font face="Courier New"><strong>wdFontDim</strong></font>, <font face="Courier New"><strong>
wdLineWidth</strong></font> and <font face="Courier New"><strong>wdMarkSize</strong></font> functions were corrected.</li>
<li><font face="Courier New"><strong>wdVectorCharSize</strong></font> now returns the previous value.</li>
</ul>
<h3>Up to Version 2.1</h3>
<ul>
<li>The <font face="Courier New"><strong>cdActiveCanvas</strong></font>, <font face="Courier New"><strong>cdPlay</strong></font>
and the <font face="Courier New"><strong>wdVectorFont</strong></font> functions were added, and the
<font face="Courier New"><strong>cdKillCanvas</strong></font> function was corrected when destroying the current
canvas.</li>
<li>The <font face="Courier New"><strong>cdMark</strong></font> function no longer depends on line style, line width
and interior style attributes, and it is the same for all drivers because it is implemented only with CD functions.</li>
<li>The <font face="Courier New"><strong>wdLineWidth</strong></font> and <font face="Courier New"><strong>wdMarkSize</strong></font>
functions now use millimeters.</li>
<li>The functions <font face="Courier New"><strong>cdEncodeColor</strong></font> and <font face="Courier New"><strong>
cdDecodeColor</strong></font> now can be called without an active canvas. The DXF driver was added.</li>
<li>WD can now access files with vector font definitions.</li>
<li>Minor bugs in the <font face="Courier New"><strong>wdTextSize</strong></font> function were corrected.</li>
</ul>
</body>
</html>
|