0023457: Slow text rendering
[occt.git] / src / OpenGl / OpenGl_Display_2.cxx
1 // Created on: 2011-10-25
2 // Created by: Sergey ZERCHANINOV
3 // Copyright (c) 2011-2012 OPEN CASCADE SAS
4 //
5 // The content of this file is subject to the Open CASCADE Technology Public
6 // License Version 6.5 (the "License"). You may not use the content of this file
7 // except in compliance with the License. Please obtain a copy of the License
8 // at http://www.opencascade.org and read it completely before using this file.
9 //
10 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 //
13 // The Original Code and all software distributed under the License is
14 // distributed on an "AS IS" basis, without warranty of any kind, and the
15 // Initial Developer hereby disclaims all such warranties, including without
16 // limitation, any warranties of merchantability, fitness for a particular
17 // purpose or non-infringement. Please see the License for the specific terms
18 // and conditions governing the rights and limitations under the License.
19
20
21 #include <OpenGl_GlCore11.hxx>
22
23 #include <OpenGl_Display.hxx>
24
25 #ifdef HAVE_CONFIG_H
26 # include <config.h>
27 #endif
28
29 #ifdef HAVE_GL2PS
30   #include <gl2ps.h>
31 #endif
32
33 #define  DOT_LS            0xCCCC
34 #define  DASH_DOT_LS       0xFF18
35 #define  DASH_LS           0xFFC0
36 #define  DASH_DDOT_LS      0xFF24
37
38 static const unsigned int myInteriors[TEL_HS_USER_DEF_START][32] =
39 {
40   //TEL_HS_SOLID
41   {
42     0xFFFFFFFF,
43     0xFFFFFFFF,
44     0xFFFFFFFF,
45     0xFFFFFFFF,
46     0xFFFFFFFF,
47     0xFFFFFFFF,
48     0xFFFFFFFF,
49     0xFFFFFFFF,
50     0xFFFFFFFF,
51     0xFFFFFFFF,
52     0xFFFFFFFF,
53     0xFFFFFFFF,
54     0xFFFFFFFF,
55     0xFFFFFFFF,
56     0xFFFFFFFF,
57     0xFFFFFFFF,
58     0xFFFFFFFF,
59     0xFFFFFFFF,
60     0xFFFFFFFF,
61     0xFFFFFFFF,
62     0xFFFFFFFF,
63     0xFFFFFFFF,
64     0xFFFFFFFF,
65     0xFFFFFFFF,
66     0xFFFFFFFF,
67     0xFFFFFFFF,
68     0xFFFFFFFF,
69     0xFFFFFFFF,
70     0xFFFFFFFF,
71     0xFFFFFFFF,
72     0xFFFFFFFF,
73     0xFFFFFFFF
74   },
75   //TEL_HS_CROSS
76   {
77     0xFFFFFFFF,
78     0xBBBBBBBB,
79     0xEEEEEEEE,
80     0xBBBBBBBB,
81     0xEEEEEEEE,
82     0xBBBBBBBB,
83     0xEEEEEEEE,
84     0xBBBBBBBB,
85     0xEEEEEEEE,
86     0xBBBBBBBB,
87     0xEEEEEEEE,
88     0xBBBBBBBB,
89     0xEEEEEEEE,
90     0xBBBBBBBB,
91     0xEEEEEEEE,
92     0xBBBBBBBB,
93     0xEEEEEEEE,
94     0xBBBBBBBB,
95     0xEEEEEEEE,
96     0xBBBBBBBB,
97     0xEEEEEEEE,
98     0xBBBBBBBB,
99     0xEEEEEEEE,
100     0xBBBBBBBB,
101     0xEEEEEEEE,
102     0xBBBBBBBB,
103     0xEEEEEEEE,
104     0xBBBBBBBB,
105     0xEEEEEEEE,
106     0xBBBBBBBB,
107     0xEEEEEEEE,
108     0xBBBBBBBB
109   },
110   //TEL_HS_CROSS_SPARSE
111   {
112     0x81818181,
113     0x24242424,
114     0x18181818,
115     0x42424242,
116     0x81818181,
117     0x24242424,
118     0x18181818,
119     0x42424242,
120     0x81818181,
121     0x24242424,
122     0x18181818,
123     0x42424242,
124     0x81818181,
125     0x24242424,
126     0x18181818,
127     0x42424242,
128     0x81818181,
129     0x24242424,
130     0x18181818,
131     0x42424242,
132     0x81818181,
133     0x24242424,
134     0x18181818,
135     0x42424242,
136     0x81818181,
137     0x24242424,
138     0x18181818,
139     0x42424242,
140     0x81818181,
141     0x24242424,
142     0x18181818,
143     0x42424242
144   },
145   //TEL_HS_GRID
146   {
147     0xFFFFFFFF,
148     0x88888888,
149     0xFFFFFFFF,
150     0x88888888,
151     0xFFFFFFFF,
152     0x88888888,
153     0xFFFFFFFF,
154     0x88888888,
155     0xFFFFFFFF,
156     0x88888888,
157     0xFFFFFFFF,
158     0x88888888,
159     0xFFFFFFFF,
160     0x88888888,
161     0xFFFFFFFF,
162     0x88888888,
163     0xFFFFFFFF,
164     0x88888888,
165     0xFFFFFFFF,
166     0x88888888,
167     0xFFFFFFFF,
168     0x88888888,
169     0xFFFFFFFF,
170     0x88888888,
171     0xFFFFFFFF,
172     0x88888888,
173     0xFFFFFFFF,
174     0x88888888,
175     0xFFFFFFFF,
176     0x88888888,
177     0xFFFFFFFF,
178     0x88888888
179   },
180   //TEL_HS_GRID_SPARSE
181   {
182     0xFFFFFFFF,
183     0x80808080,
184     0x80808080,
185     0x80808080,
186     0xFFFFFFFF,
187     0x80808080,
188     0x80808080,
189     0x80808080,
190     0xFFFFFFFF,
191     0x80808080,
192     0x80808080,
193     0x80808080,
194     0xFFFFFFFF,
195     0x80808080,
196     0x80808080,
197     0x80808080,
198     0xFFFFFFFF,
199     0x80808080,
200     0x80808080,
201     0x80808080,
202     0xFFFFFFFF,
203     0x80808080,
204     0x80808080,
205     0x80808080,
206     0xFFFFFFFF,
207     0x80808080,
208     0x80808080,
209     0x80808080,
210     0xFFFFFFFF,
211     0x80808080,
212     0x80808080,
213     0x80808080
214   },
215   //TEL_HS_DIAG_45
216   {
217     0x88888888,
218     0x22222222,
219     0x88888888,
220     0x22222222,
221     0x88888888,
222     0x22222222,
223     0x88888888,
224     0x22222222,
225     0x88888888,
226     0x22222222,
227     0x88888888,
228     0x22222222,
229     0x88888888,
230     0x22222222,
231     0x88888888,
232     0x22222222,
233     0x88888888,
234     0x22222222,
235     0x88888888,
236     0x22222222,
237     0x88888888,
238     0x22222222,
239     0x88888888,
240     0x22222222,
241     0x88888888,
242     0x22222222,
243     0x88888888,
244     0x22222222,
245     0x88888888,
246     0x22222222,
247     0x88888888,
248     0x22222222
249   },
250   //TEL_HS_DIAG_135
251   {
252     0x11111111,
253     0x44444444,
254     0x11111111,
255     0x44444444,
256     0x11111111,
257     0x44444444,
258     0x11111111,
259     0x44444444,
260     0x11111111,
261     0x44444444,
262     0x11111111,
263     0x44444444,
264     0x11111111,
265     0x44444444,
266     0x11111111,
267     0x44444444,
268     0x11111111,
269     0x44444444,
270     0x11111111,
271     0x44444444,
272     0x11111111,
273     0x44444444,
274     0x11111111,
275     0x44444444,
276     0x11111111,
277     0x44444444,
278     0x11111111,
279     0x44444444,
280     0x11111111,
281     0x44444444,
282     0x11111111,
283     0x44444444
284   },
285   //TEL_HS_HORIZONTAL
286   {
287     0xFFFFFFFF,
288     0x00000000,
289     0xFFFFFFFF,
290     0x00000000,
291     0xFFFFFFFF,
292     0x00000000,
293     0xFFFFFFFF,
294     0x00000000,
295     0xFFFFFFFF,
296     0x00000000,
297     0xFFFFFFFF,
298     0x00000000,
299     0xFFFFFFFF,
300     0x00000000,
301     0xFFFFFFFF,
302     0x00000000,
303     0xFFFFFFFF,
304     0x00000000,
305     0xFFFFFFFF,
306     0x00000000,
307     0xFFFFFFFF,
308     0x00000000,
309     0xFFFFFFFF,
310     0x00000000,
311     0xFFFFFFFF,
312     0x00000000,
313     0xFFFFFFFF,
314     0x00000000,
315     0xFFFFFFFF,
316     0x00000000,
317     0xFFFFFFFF,
318     0x00000000
319   },
320   //TEL_HS_VERTICAL
321   {
322     0x11111111,
323     0x11111111,
324     0x11111111,
325     0x11111111,
326     0x11111111,
327     0x11111111,
328     0x11111111,
329     0x11111111,
330     0x11111111,
331     0x11111111,
332     0x11111111,
333     0x11111111,
334     0x11111111,
335     0x11111111,
336     0x11111111,
337     0x11111111,
338     0x11111111,
339     0x11111111,
340     0x11111111,
341     0x11111111,
342     0x11111111,
343     0x11111111,
344     0x11111111,
345     0x11111111,
346     0x11111111,
347     0x11111111,
348     0x11111111,
349     0x11111111,
350     0x11111111,
351     0x11111111,
352     0x11111111,
353     0x11111111
354   },
355   //TEL_HS_DIAG_45_SPARSE
356   {
357     0x80808080,
358     0x20202020,
359     0x08080808,
360     0x02020202,
361     0x80808080,
362     0x20202020,
363     0x08080808,
364     0x02020202,
365     0x80808080,
366     0x20202020,
367     0x08080808,
368     0x02020202,
369     0x80808080,
370     0x20202020,
371     0x08080808,
372     0x02020202,
373     0x80808080,
374     0x20202020,
375     0x08080808,
376     0x02020202,
377     0x80808080,
378     0x20202020,
379     0x08080808,
380     0x02020202,
381     0x80808080,
382     0x20202020,
383     0x08080808,
384     0x02020202,
385     0x80808080,
386     0x20202020,
387     0x08080808,
388     0x02020202
389   },
390   //TEL_HS_DIAG_135_SPARSE
391   {
392     0x01010101,
393     0x04040404,
394     0x10101010,
395     0x40404040,
396     0x01010101,
397     0x04040404,
398     0x10101010,
399     0x40404040,
400     0x01010101,
401     0x04040404,
402     0x10101010,
403     0x40404040,
404     0x01010101,
405     0x04040404,
406     0x10101010,
407     0x40404040,
408     0x01010101,
409     0x04040404,
410     0x10101010,
411     0x40404040,
412     0x01010101,
413     0x04040404,
414     0x10101010,
415     0x40404040,
416     0x01010101,
417     0x04040404,
418     0x10101010,
419     0x40404040,
420     0x01010101,
421     0x04040404,
422     0x10101010,
423     0x40404040
424   },
425   //TEL_HS_HORIZONTAL_SPARSE
426   {
427     0xFFFFFFFF,
428     0x00000000,
429     0x00000000,
430     0x00000000,
431     0xFFFFFFFF,
432     0x00000000,
433     0x00000000,
434     0x00000000,
435     0xFFFFFFFF,
436     0x00000000,
437     0x00000000,
438     0x00000000,
439     0xFFFFFFFF,
440     0x00000000,
441     0x00000000,
442     0x00000000,
443     0xFFFFFFFF,
444     0x00000000,
445     0x00000000,
446     0x00000000,
447     0xFFFFFFFF,
448     0x00000000,
449     0x00000000,
450     0x00000000,
451     0xFFFFFFFF,
452     0x00000000,
453     0x00000000,
454     0x00000000,
455     0xFFFFFFFF,
456     0x00000000,
457     0x00000000,
458     0x00000000
459   },
460   //TEL_HS_VERTICAL_SPARSE
461   {
462     0x10101010,
463     0x10101010,
464     0x10101010,
465     0x10101010,
466     0x10101010,
467     0x10101010,
468     0x10101010,
469     0x10101010,
470     0x10101010,
471     0x10101010,
472     0x10101010,
473     0x10101010,
474     0x10101010,
475     0x10101010,
476     0x10101010,
477     0x10101010,
478     0x10101010,
479     0x10101010,
480     0x10101010,
481     0x10101010,
482     0x10101010,
483     0x10101010,
484     0x10101010,
485     0x10101010,
486     0x10101010,
487     0x10101010,
488     0x10101010,
489     0x10101010,
490     0x10101010,
491     0x10101010,
492     0x10101010,
493     0x10101010
494   }
495 };
496
497 /* Following Section relates to POLYMARKER */
498
499 #define TEL_NO_OF_SIZES   13
500 #define TEL_NB_OF_LISTS   5
501
502 struct PM_FONT_INFO
503 {
504   const char *str;
505   Tfloat width, height;
506   Tint offset;
507 };
508 typedef PM_FONT_INFO* pm_font_info;
509
510 #define PM_PLUS_10_NUM  9*2
511 #define PM_PLUS_15_NUM  11*2
512 #define PM_PLUS_20_NUM  13*2
513 #define PM_PLUS_25_NUM  15*2
514 #define PM_PLUS_30_NUM  17*3
515 #define PM_PLUS_35_NUM  19*3
516 #define PM_PLUS_40_NUM  21*3
517 #define PM_PLUS_45_NUM  23*3
518 #define PM_PLUS_50_NUM  25*4
519 #define PM_PLUS_55_NUM  27*4
520 #define PM_PLUS_60_NUM  29*4
521 #define PM_PLUS_65_NUM  31*4
522 #define PM_PLUS_70_NUM  32*4
523
524 #define PM_STAR_10_NUM  9
525 #define PM_STAR_15_NUM  11*2
526 #define PM_STAR_20_NUM  13*2
527 #define PM_STAR_25_NUM  15*2
528 #define PM_STAR_30_NUM  17*2
529 #define PM_STAR_35_NUM  19*2
530 #define PM_STAR_40_NUM  21*3
531 #define PM_STAR_45_NUM  23*3
532 #define PM_STAR_50_NUM  25*3
533 #define PM_STAR_55_NUM  27*3
534 #define PM_STAR_60_NUM  29*4
535 #define PM_STAR_65_NUM  32*4
536 #define PM_STAR_70_NUM  32*4
537
538 #define PM_CIRC_10_NUM  7
539 #define PM_CIRC_15_NUM  9*2
540 #define PM_CIRC_20_NUM  9*2
541 #define PM_CIRC_25_NUM  11*2
542 #define PM_CIRC_30_NUM  13*2
543 #define PM_CIRC_35_NUM  15*2
544 #define PM_CIRC_40_NUM  17*3
545 #define PM_CIRC_45_NUM  19*3
546 #define PM_CIRC_50_NUM  21*3
547 #define PM_CIRC_55_NUM  23*3
548 #define PM_CIRC_60_NUM  25*4
549 #define PM_CIRC_65_NUM  27*4
550 #define PM_CIRC_70_NUM  29*4
551
552 #define PM_CROSS_10_NUM 7
553 #define PM_CROSS_15_NUM 9*2
554 #define PM_CROSS_20_NUM 11*2
555 #define PM_CROSS_25_NUM 13*2
556 #define PM_CROSS_30_NUM 15*2
557 #define PM_CROSS_35_NUM 17*3
558 #define PM_CROSS_40_NUM 19*3
559 #define PM_CROSS_45_NUM 21*3
560 #define PM_CROSS_50_NUM 23*3
561 #define PM_CROSS_55_NUM 25*4
562 #define PM_CROSS_60_NUM 27*4
563 #define PM_CROSS_65_NUM 32*4
564 #define PM_CROSS_70_NUM 32*4
565
566 #define PM_PLUS_10_OFT  0
567 #define PM_PLUS_15_OFT  PM_PLUS_10_OFT + PM_PLUS_10_NUM
568 #define PM_PLUS_20_OFT  PM_PLUS_15_OFT + PM_PLUS_15_NUM
569 #define PM_PLUS_25_OFT  PM_PLUS_20_OFT + PM_PLUS_20_NUM
570 #define PM_PLUS_30_OFT  PM_PLUS_25_OFT + PM_PLUS_25_NUM
571 #define PM_PLUS_35_OFT  PM_PLUS_30_OFT + PM_PLUS_30_NUM
572 #define PM_PLUS_40_OFT  PM_PLUS_35_OFT + PM_PLUS_35_NUM
573 #define PM_PLUS_45_OFT  PM_PLUS_40_OFT + PM_PLUS_40_NUM
574 #define PM_PLUS_50_OFT  PM_PLUS_45_OFT + PM_PLUS_45_NUM
575 #define PM_PLUS_55_OFT  PM_PLUS_50_OFT + PM_PLUS_50_NUM
576 #define PM_PLUS_60_OFT  PM_PLUS_55_OFT + PM_PLUS_55_NUM
577 #define PM_PLUS_65_OFT  PM_PLUS_60_OFT + PM_PLUS_60_NUM
578 #define PM_PLUS_70_OFT  PM_PLUS_65_OFT + PM_PLUS_65_NUM
579
580 #define PM_STAR_10_OFT  PM_PLUS_70_OFT + PM_PLUS_70_NUM
581 #define PM_STAR_15_OFT  PM_STAR_10_OFT + PM_STAR_10_NUM
582 #define PM_STAR_20_OFT  PM_STAR_15_OFT + PM_STAR_15_NUM
583 #define PM_STAR_25_OFT  PM_STAR_20_OFT + PM_STAR_20_NUM
584 #define PM_STAR_30_OFT  PM_STAR_25_OFT + PM_STAR_25_NUM
585 #define PM_STAR_35_OFT  PM_STAR_30_OFT + PM_STAR_30_NUM
586 #define PM_STAR_40_OFT  PM_STAR_35_OFT + PM_STAR_35_NUM
587 #define PM_STAR_45_OFT  PM_STAR_40_OFT + PM_STAR_40_NUM
588 #define PM_STAR_50_OFT  PM_STAR_45_OFT + PM_STAR_45_NUM
589 #define PM_STAR_55_OFT  PM_STAR_50_OFT + PM_STAR_50_NUM
590 #define PM_STAR_60_OFT  PM_STAR_55_OFT + PM_STAR_55_NUM
591 #define PM_STAR_65_OFT  PM_STAR_60_OFT + PM_STAR_60_NUM
592 #define PM_STAR_70_OFT  PM_STAR_65_OFT + PM_STAR_65_NUM
593
594 #define PM_CIRC_10_OFT  PM_STAR_70_OFT + PM_STAR_70_NUM
595 #define PM_CIRC_15_OFT  PM_CIRC_10_OFT + PM_CIRC_10_NUM
596 #define PM_CIRC_20_OFT  PM_CIRC_15_OFT + PM_CIRC_15_NUM
597 #define PM_CIRC_25_OFT  PM_CIRC_20_OFT + PM_CIRC_20_NUM
598 #define PM_CIRC_30_OFT  PM_CIRC_25_OFT + PM_CIRC_25_NUM
599 #define PM_CIRC_35_OFT  PM_CIRC_30_OFT + PM_CIRC_30_NUM
600 #define PM_CIRC_40_OFT  PM_CIRC_35_OFT + PM_CIRC_35_NUM
601 #define PM_CIRC_45_OFT  PM_CIRC_40_OFT + PM_CIRC_40_NUM
602 #define PM_CIRC_50_OFT  PM_CIRC_45_OFT + PM_CIRC_45_NUM
603 #define PM_CIRC_55_OFT  PM_CIRC_50_OFT + PM_CIRC_50_NUM
604 #define PM_CIRC_60_OFT  PM_CIRC_55_OFT + PM_CIRC_55_NUM
605 #define PM_CIRC_65_OFT  PM_CIRC_60_OFT + PM_CIRC_60_NUM
606 #define PM_CIRC_70_OFT  PM_CIRC_65_OFT + PM_CIRC_65_NUM
607
608 #define PM_CROSS_10_OFT  PM_CIRC_70_OFT + PM_CIRC_70_NUM
609 #define PM_CROSS_15_OFT  PM_CROSS_10_OFT + PM_CROSS_10_NUM
610 #define PM_CROSS_20_OFT  PM_CROSS_15_OFT + PM_CROSS_15_NUM
611 #define PM_CROSS_25_OFT  PM_CROSS_20_OFT + PM_CROSS_20_NUM
612 #define PM_CROSS_30_OFT  PM_CROSS_25_OFT + PM_CROSS_25_NUM
613 #define PM_CROSS_35_OFT  PM_CROSS_30_OFT + PM_CROSS_30_NUM
614 #define PM_CROSS_40_OFT  PM_CROSS_35_OFT + PM_CROSS_35_NUM
615 #define PM_CROSS_45_OFT  PM_CROSS_40_OFT + PM_CROSS_40_NUM
616 #define PM_CROSS_50_OFT  PM_CROSS_45_OFT + PM_CROSS_45_NUM
617 #define PM_CROSS_55_OFT  PM_CROSS_50_OFT + PM_CROSS_50_NUM
618 #define PM_CROSS_60_OFT  PM_CROSS_55_OFT + PM_CROSS_55_NUM
619 #define PM_CROSS_65_OFT  PM_CROSS_60_OFT + PM_CROSS_60_NUM
620 #define PM_CROSS_70_OFT  PM_CROSS_65_OFT + PM_CROSS_65_NUM
621
622 static const PM_FONT_INFO arrPMFontInfo[][TEL_NO_OF_SIZES] =
623 {
624  /* TOM_POINT - not used */
625  {{"\0"},
626   {"\0"},
627   {"\0"},
628   {"\0"},
629   {"\0"},
630   {"\0"},
631   {"\0"},
632   {"\0"},
633   {"\0"},
634   {"\0"},
635   {"\0"},
636   {"\0"},
637   {"\0"}},
638
639  /* TOM_PLUS */
640  {{"\001",  9.f,  9.f, PM_PLUS_10_OFT},
641   {"\002", 11.f, 11.f, PM_PLUS_15_OFT},
642   {"\003", 13.f, 13.f, PM_PLUS_20_OFT},
643   {"\004", 15.f, 15.f, PM_PLUS_25_OFT},
644   {"\005", 17.f, 17.f, PM_PLUS_30_OFT},
645   {"\006", 19.f, 19.f, PM_PLUS_35_OFT},
646   {"\007", 21.f, 21.f, PM_PLUS_40_OFT},
647   {"\010", 23.f, 23.f, PM_PLUS_45_OFT},
648   {"\011", 25.f, 25.f, PM_PLUS_50_OFT},
649   {"\012", 27.f, 27.f, PM_PLUS_55_OFT},
650   {"\013", 29.f, 29.f, PM_PLUS_60_OFT},
651   {"\014", 31.f, 31.f, PM_PLUS_65_OFT},
652   {"\015", 32.f, 32.f, PM_PLUS_70_OFT}},
653
654  /* TOM_STAR */
655  {{"\016",  7.f,  9.f, PM_STAR_10_OFT},
656   {"\017",  9.f, 11.f, PM_STAR_15_OFT},
657   {"\020", 11.f, 13.f, PM_STAR_20_OFT},
658   {"\021", 13.f, 15.f, PM_STAR_25_OFT},
659   {"\022", 13.f, 17.f, PM_STAR_30_OFT},
660   {"\023", 15.f, 19.f, PM_STAR_35_OFT},
661   {"\024", 17.f, 21.f, PM_STAR_40_OFT},
662   {"\025", 19.f, 23.f, PM_STAR_45_OFT},
663   {"\026", 21.f, 25.f, PM_STAR_50_OFT},
664   {"\027", 23.f, 27.f, PM_STAR_55_OFT},
665   {"\030", 25.f, 29.f, PM_STAR_60_OFT},
666   {"\031", 32.f, 32.f, PM_STAR_65_OFT},
667   {"\032", 32.f, 32.f, PM_STAR_70_OFT}},
668
669  /* TOM_O */
670  {{"\033",  7.f,  7.f, PM_CIRC_10_OFT},
671   {"\034",  9.f,  9.f, PM_CIRC_15_OFT},
672   {"\035",  9.f,  9.f, PM_CIRC_20_OFT},
673   {"\036", 11.f, 11.f, PM_CIRC_25_OFT},
674   {"\037", 13.f, 13.f, PM_CIRC_30_OFT},
675   {"\040", 15.f, 15.f, PM_CIRC_35_OFT},
676   {"\041", 17.f, 17.f, PM_CIRC_40_OFT},
677   {"\042", 19.f, 19.f, PM_CIRC_45_OFT},
678   {"\043", 21.f, 21.f, PM_CIRC_50_OFT},
679   {"\044", 23.f, 23.f, PM_CIRC_55_OFT},
680   {"\045", 25.f, 25.f, PM_CIRC_60_OFT},
681   {"\046", 27.f, 27.f, PM_CIRC_65_OFT},
682   {"\047", 29.f, 29.f, PM_CIRC_70_OFT}},
683
684  /* TOM_X */
685  {{"\050",  7.f,  7.f, PM_CROSS_10_OFT},
686   {"\051",  9.f,  9.f, PM_CROSS_15_OFT},
687   {"\052", 11.f, 11.f, PM_CROSS_20_OFT},
688   {"\053", 13.f, 13.f, PM_CROSS_25_OFT},
689   {"\054", 15.f, 15.f, PM_CROSS_30_OFT},
690   {"\055", 17.f, 17.f, PM_CROSS_35_OFT},
691   {"\056", 19.f, 19.f, PM_CROSS_40_OFT},
692   {"\057", 21.f, 21.f, PM_CROSS_45_OFT},
693   {"\060", 23.f, 23.f, PM_CROSS_50_OFT},
694   {"\061", 25.f, 25.f, PM_CROSS_55_OFT},
695   {"\062", 27.f, 27.f, PM_CROSS_60_OFT},
696   {"\063", 32.f, 32.f, PM_CROSS_65_OFT},
697   {"\064", 32.f, 32.f, PM_CROSS_70_OFT}},
698
699  /* TOM_O_POINT - not used */
700  {{"\0"},
701   {"\0"},
702   {"\0"},
703   {"\0"},
704   {"\0"},
705   {"\0"},
706   {"\0"},
707   {"\0"},
708   {"\0"},
709   {"\0"},
710   {"\0"},
711   {"\0"},
712   {"\0"}},
713
714  /* TOM_O_PLUS */
715  {{"\001\033"},
716   {"\002\034"},
717   {"\003\035"},
718   {"\004\036"},
719   {"\005\037"},
720   {"\006\040"},
721   {"\007\041"},
722   {"\010\042"},
723   {"\011\043"},
724   {"\012\044"},
725   {"\013\045"},
726   {"\014\046"},
727   {"\015\047"}},
728
729  /* TOM_O_STAR */
730  {{"\016\033"},
731   {"\017\034"},
732   {"\020\035"},
733   {"\021\036"},
734   {"\022\037"},
735   {"\023\040"},
736   {"\024\041"},
737   {"\025\042"},
738   {"\026\043"},
739   {"\027\044"},
740   {"\030\045"},
741   {"\031\046"},
742   {"\032\047"}},
743
744  /* TOM_O_X */
745  {{"\050\033"},
746   {"\051\034"},
747   {"\052\035"},
748   {"\053\036"},
749   {"\054\037"},
750   {"\055\040"},
751   {"\056\041"},
752   {"\057\042"},
753   {"\060\043"},
754   {"\061\044"},
755   {"\062\045"},
756   {"\063\046"},
757   {"\064\047"}}
758 };
759
760 static const unsigned char myMarkerRaster[] =
761 {
762     /* TYPE = PLUS */
763
764     0x08,0x00,
765     0x08,0x00,
766     0x08,0x00,
767     0x08,0x00,
768     0xff,0x80,
769     0x08,0x00,
770     0x08,0x00,
771     0x08,0x00,
772     0x08,0x00,  /* PLUS 9x9 = 1.0 */
773
774     0x04,0x00,
775     0x04,0x00,
776     0x04,0x00,
777     0x04,0x00,
778     0x04,0x00,
779     0xff,0xe0,
780     0x04,0x00,
781     0x04,0x00,
782     0x04,0x00,
783     0x04,0x00,
784     0x04,0x00,  /* PLUS 11x11 = 1.5 */
785
786     0x02,0x00,
787     0x02,0x00,
788     0x02,0x00,
789     0x02,0x00,
790     0x02,0x00,
791     0x02,0x00,
792     0xff,0xf8,
793     0x02,0x00,
794     0x02,0x00,
795     0x02,0x00,
796     0x02,0x00,
797     0x02,0x00,
798     0x02,0x00,/* PLUS 13x13 = 2.0 */
799
800     0x01,0x00,
801     0x01,0x00,
802     0x01,0x00,
803     0x01,0x00,
804     0x01,0x00,
805     0x01,0x00,
806     0x01,0x00,
807     0xff,0xfe,
808     0x01,0x00,
809     0x01,0x00,
810     0x01,0x00,
811     0x01,0x00,
812     0x01,0x00,
813     0x01,0x00,
814     0x01,0x00,/* PLUS 15x15 = 2.5 */
815
816     0x00,0x80, 0x00,
817     0x00,0x80, 0x00,
818     0x00,0x80, 0x00,
819     0x00,0x80, 0x00,
820     0x00,0x80, 0x00,
821     0x00,0x80, 0x00,
822     0x00,0x80, 0x00,
823     0x00,0x80, 0x00,
824     0xff,0xff, 0x80,
825     0x00,0x80, 0x00,
826     0x00,0x80, 0x00,
827     0x00,0x80, 0x00,
828     0x00,0x80, 0x00,
829     0x00,0x80, 0x00,
830     0x00,0x80, 0x00,
831     0x00,0x80, 0x00,
832     0x00,0x80, 0x00,/* PLUS 17x17 = 3.0 */
833
834     0x00,0x40, 0x00,
835     0x00,0x40, 0x00,
836     0x00,0x40, 0x00,
837     0x00,0x40, 0x00,
838     0x00,0x40, 0x00,
839     0x00,0x40, 0x00,
840     0x00,0x40, 0x00,
841     0x00,0x40, 0x00,
842     0x00,0x40, 0x00,
843     0xff,0xff, 0xe0,
844     0x00,0x40, 0x00,
845     0x00,0x40, 0x00,
846     0x00,0x40, 0x00,
847     0x00,0x40, 0x00,
848     0x00,0x40, 0x00,
849     0x00,0x40, 0x00,
850     0x00,0x40, 0x00,
851     0x00,0x40, 0x00,
852     0x00,0x40, 0x00,/* PLUS 19x19 = 3.5 */
853
854     0x00,0x20, 0x00,
855     0x00,0x20, 0x00,
856     0x00,0x20, 0x00,
857     0x00,0x20, 0x00,
858     0x00,0x20, 0x00,
859     0x00,0x20, 0x00,
860     0x00,0x20, 0x00,
861     0x00,0x20, 0x00,
862     0x00,0x20, 0x00,
863     0x00,0x20, 0x00,
864     0xff,0xff, 0xf8,
865     0x00,0x20, 0x00,
866     0x00,0x20, 0x00,
867     0x00,0x20, 0x00,
868     0x00,0x20, 0x00,
869     0x00,0x20, 0x00,
870     0x00,0x20, 0x00,
871     0x00,0x20, 0x00,
872     0x00,0x20, 0x00,
873     0x00,0x20, 0x00,
874     0x00,0x20, 0x00,/* PLUS 21x21 = 4.0 */
875
876     0x00,0x10, 0x00,
877     0x00,0x10, 0x00,
878     0x00,0x10, 0x00,
879     0x00,0x10, 0x00,
880     0x00,0x10, 0x00,
881     0x00,0x10, 0x00,
882     0x00,0x10, 0x00,
883     0x00,0x10, 0x00,
884     0x00,0x10, 0x00,
885     0x00,0x10, 0x00,
886     0x00,0x10, 0x00,
887     0xff,0xff, 0xfe,
888     0x00,0x10, 0x00,
889     0x00,0x10, 0x00,
890     0x00,0x10, 0x00,
891     0x00,0x10, 0x00,
892     0x00,0x10, 0x00,
893     0x00,0x10, 0x00,
894     0x00,0x10, 0x00,
895     0x00,0x10, 0x00,
896     0x00,0x10, 0x00,
897     0x00,0x10, 0x00,
898     0x00,0x10, 0x00,/* PLUS 23x23 = 4.5 */
899
900     0x00,0x08, 0x00,0x00,
901     0x00,0x08, 0x00,0x00,
902     0x00,0x08, 0x00,0x00,
903     0x00,0x08, 0x00,0x00,
904     0x00,0x08, 0x00,0x00,
905     0x00,0x08, 0x00,0x00,
906     0x00,0x08, 0x00,0x00,
907     0x00,0x08, 0x00,0x00,
908     0x00,0x08, 0x00,0x00,
909     0x00,0x08, 0x00,0x00,
910     0x00,0x08, 0x00,0x00,
911     0x00,0x08, 0x00,0x00,
912     0xff,0xff, 0xff,0x80,
913     0x00,0x08, 0x00,0x00,
914     0x00,0x08, 0x00,0x00,
915     0x00,0x08, 0x00,0x00,
916     0x00,0x08, 0x00,0x00,
917     0x00,0x08, 0x00,0x00,
918     0x00,0x08, 0x00,0x00,
919     0x00,0x08, 0x00,0x00,
920     0x00,0x08, 0x00,0x00,
921     0x00,0x08, 0x00,0x00,
922     0x00,0x08, 0x00,0x00,
923     0x00,0x08, 0x00,0x00,
924     0x00,0x08, 0x00,0x00,/* PLUS 25x25 = 5.0 */
925
926     0x00,0x04, 0x00,0x00,
927     0x00,0x04, 0x00,0x00,
928     0x00,0x04, 0x00,0x00,
929     0x00,0x04, 0x00,0x00,
930     0x00,0x04, 0x00,0x00,
931     0x00,0x04, 0x00,0x00,
932     0x00,0x04, 0x00,0x00,
933     0x00,0x04, 0x00,0x00,
934     0x00,0x04, 0x00,0x00,
935     0x00,0x04, 0x00,0x00,
936     0x00,0x04, 0x00,0x00,
937     0x00,0x04, 0x00,0x00,
938     0x00,0x04, 0x00,0x00,
939     0xff,0xff, 0xff,0xe0,
940     0x00,0x04, 0x00,0x00,
941     0x00,0x04, 0x00,0x00,
942     0x00,0x04, 0x00,0x00,
943     0x00,0x04, 0x00,0x00,
944     0x00,0x04, 0x00,0x00,
945     0x00,0x04, 0x00,0x00,
946     0x00,0x04, 0x00,0x00,
947     0x00,0x04, 0x00,0x00,
948     0x00,0x04, 0x00,0x00,
949     0x00,0x04, 0x00,0x00,
950     0x00,0x04, 0x00,0x00,
951     0x00,0x04, 0x00,0x00,
952     0x00,0x04, 0x00,0x00,/* PLUS 27x27 = 5.5 */
953
954     0x00,0x02, 0x00,0x00,
955     0x00,0x02, 0x00,0x00,
956     0x00,0x02, 0x00,0x00,
957     0x00,0x02, 0x00,0x00,
958     0x00,0x02, 0x00,0x00,
959     0x00,0x02, 0x00,0x00,
960     0x00,0x02, 0x00,0x00,
961     0x00,0x02, 0x00,0x00,
962     0x00,0x02, 0x00,0x00,
963     0x00,0x02, 0x00,0x00,
964     0x00,0x02, 0x00,0x00,
965     0x00,0x02, 0x00,0x00,
966     0x00,0x02, 0x00,0x00,
967     0x00,0x02, 0x00,0x00,
968     0xff,0xff, 0xff,0xf8,
969     0x00,0x02, 0x00,0x00,
970     0x00,0x02, 0x00,0x00,
971     0x00,0x02, 0x00,0x00,
972     0x00,0x02, 0x00,0x00,
973     0x00,0x02, 0x00,0x00,
974     0x00,0x02, 0x00,0x00,
975     0x00,0x02, 0x00,0x00,
976     0x00,0x02, 0x00,0x00,
977     0x00,0x02, 0x00,0x00,
978     0x00,0x02, 0x00,0x00,
979     0x00,0x02, 0x00,0x00,
980     0x00,0x02, 0x00,0x00,
981     0x00,0x02, 0x00,0x00,
982     0x00,0x02, 0x00,0x00,/* PLUS 29x29 = 6.0 */
983
984     0x00,0x01, 0x00,0x00,
985     0x00,0x01, 0x00,0x00,
986     0x00,0x01, 0x00,0x00,
987     0x00,0x01, 0x00,0x00,
988     0x00,0x01, 0x00,0x00,
989     0x00,0x01, 0x00,0x00,
990     0x00,0x01, 0x00,0x00,
991     0x00,0x01, 0x00,0x00,
992     0x00,0x01, 0x00,0x00,
993     0x00,0x01, 0x00,0x00,
994     0x00,0x01, 0x00,0x00,
995     0x00,0x01, 0x00,0x00,
996     0x00,0x01, 0x00,0x00,
997     0x00,0x01, 0x00,0x00,
998     0x00,0x01, 0x00,0x00,
999     0xff,0xff, 0xff,0xfd,
1000     0x00,0x01, 0x00,0x00,
1001     0x00,0x01, 0x00,0x00,
1002     0x00,0x01, 0x00,0x00,
1003     0x00,0x01, 0x00,0x00,
1004     0x00,0x01, 0x00,0x00,
1005     0x00,0x01, 0x00,0x00,
1006     0x00,0x01, 0x00,0x00,
1007     0x00,0x01, 0x00,0x00,
1008     0x00,0x01, 0x00,0x00,
1009     0x00,0x01, 0x00,0x00,
1010     0x00,0x01, 0x00,0x00,
1011     0x00,0x01, 0x00,0x00,
1012     0x00,0x01, 0x00,0x00,
1013     0x00,0x01, 0x00,0x00,
1014     0x00,0x01, 0x00,0x00,/* PLUS 31x31 = 6.5 */
1015
1016     0x00,0x00, 0x80,0x00,
1017     0x00,0x00, 0x80,0x00,
1018     0x00,0x00, 0x80,0x00,
1019     0x00,0x00, 0x80,0x00,
1020     0x00,0x00, 0x80,0x00,
1021     0x00,0x00, 0x80,0x00,
1022     0x00,0x00, 0x80,0x00,
1023     0x00,0x00, 0x80,0x00,
1024     0x00,0x00, 0x80,0x00,
1025     0x00,0x00, 0x80,0x00,
1026     0x00,0x00, 0x80,0x00,
1027     0x00,0x00, 0x80,0x00,
1028     0x00,0x00, 0x80,0x00,
1029     0x00,0x00, 0x80,0x00,
1030     0x00,0x00, 0x80,0x00,
1031     0x00,0x00, 0x80,0x00,
1032     0xff,0xff, 0xff,0xff,
1033     0x00,0x00, 0x80,0x00,
1034     0x00,0x00, 0x80,0x00,
1035     0x00,0x00, 0x80,0x00,
1036     0x00,0x00, 0x80,0x00,
1037     0x00,0x00, 0x80,0x00,
1038     0x00,0x00, 0x80,0x00,
1039     0x00,0x00, 0x80,0x00,
1040     0x00,0x00, 0x80,0x00,
1041     0x00,0x00, 0x80,0x00,
1042     0x00,0x00, 0x80,0x00,
1043     0x00,0x00, 0x80,0x00,
1044     0x00,0x00, 0x80,0x00,
1045     0x00,0x00, 0x80,0x00,
1046     0x00,0x00, 0x80,0x00,
1047     0x00,0x00, 0x80,0x00,/* PLUS 32x32 = 7.0 */
1048
1049     /* TYPE = STAR */
1050
1051     0x10,
1052     0x10,
1053     0xd6,
1054     0x38,
1055     0x10,
1056     0x38,
1057     0xd6,
1058     0x10,
1059     0x10,/* STAR 7x9 = 1.0 */
1060
1061     0x08,0x00,
1062     0x08,0x00,
1063     0x08,0x00,
1064     0xc9,0x80,
1065     0x3e,0x00,
1066     0x08,0x00,
1067     0x3e,0x00,
1068     0xc9,0x80,
1069     0x08,0x00,
1070     0x08,0x00,
1071     0x08,0x00,/* STAR 9x11 = 1.5 */
1072
1073     0x04,0x00,
1074     0x04,0x00,
1075     0x04,0x00,
1076     0x84,0x20,
1077     0x64,0xc0,
1078     0x1f,0x00,
1079     0x04,0x00,
1080     0x1f,0x00,
1081     0x64,0xc0,
1082     0x84,0x20,
1083     0x04,0x00,
1084     0x04,0x00,
1085     0x04,0x00,/* STAR 11x13 = 2.0 */
1086
1087     0x02,0x00,
1088     0x02,0x00,
1089     0x02,0x00,
1090     0x02,0x00,
1091     0x82,0x18,
1092     0x62,0x60,
1093     0x1b,0x80,
1094     0x06,0x00,
1095     0x1b,0x80,
1096     0x62,0x60,
1097     0x82,0x18,
1098     0x02,0x00,
1099     0x02,0x00,
1100     0x02,0x00,
1101     0x02,0x00,/* STAR 13x15 = 2.5 */
1102
1103     0x02,0x00,
1104     0x02,0x00,
1105     0x02,0x00,
1106     0x02,0x00,
1107     0x82,0x08,
1108     0x62,0x30,
1109     0x12,0x40,
1110     0x0f,0x80,
1111     0x02,0x00,
1112     0x0f,0x80,
1113     0x12,0x40,
1114     0x62,0x30,
1115     0x82,0x08,
1116     0x02,0x00,
1117     0x02,0x00,
1118     0x02,0x00,
1119     0x02,0x00,/* STAR 13x17 = 3.0 */
1120
1121     0x01,0x00,
1122     0x01,0x00,
1123     0x01,0x00,
1124     0x01,0x00,
1125     0x01,0x00,
1126     0xc1,0x06,
1127     0x21,0x18,
1128     0x19,0x20,
1129     0x07,0xc0,
1130     0x01,0x00,
1131     0x07,0xc0,
1132     0x19,0x20,
1133     0x21,0x18,
1134     0xc1,0x06,
1135     0x01,0x00,
1136     0x01,0x00,
1137     0x01,0x00,
1138     0x01,0x00,
1139     0x01,0x00,/* STAR 15x19 = 3.5 */
1140
1141     0x00,0x80, 0x00,
1142     0x00,0x80, 0x00,
1143     0x00,0x80, 0x00,
1144     0x00,0x80, 0x00,
1145     0x00,0x80, 0x00,
1146     0x80,0x80, 0x80,
1147     0x60,0x83, 0x00,
1148     0x10,0x8c, 0x00,
1149     0x0c,0x90, 0x00,
1150     0x03,0xe0, 0x00,
1151     0x00,0x80, 0x00,
1152     0x03,0xe0, 0x00,
1153     0x0c,0x90, 0x00,
1154     0x10,0x8c, 0x00,
1155     0x60,0x83, 0x00,
1156     0x80,0x80, 0x80,
1157     0x00,0x80, 0x00,
1158     0x00,0x80, 0x00,
1159     0x00,0x80, 0x00,
1160     0x00,0x80, 0x00,
1161     0x00,0x80, 0x00,/* STAR 17x21 = 4.0 */
1162
1163     0x00,0x40, 0x00,
1164     0x00,0x40, 0x00,
1165     0x00,0x40, 0x00,
1166     0x00,0x40, 0x00,
1167     0x00,0x40, 0x00,
1168     0x00,0x40, 0x00,
1169     0xc0,0x40, 0x60,
1170     0x30,0x41, 0x80,
1171     0x08,0x42, 0x00,
1172     0x06,0x4c, 0x00,
1173     0x01,0xf0, 0x00,
1174     0x00,0x40, 0x00,
1175     0x01,0xf0, 0x00,
1176     0x06,0x4c, 0x00,
1177     0x08,0x42, 0x00,
1178     0x30,0x41, 0x80,
1179     0xc0,0x40, 0x60,
1180     0x00,0x40, 0x00,
1181     0x00,0x40, 0x00,
1182     0x00,0x40, 0x00,
1183     0x00,0x40, 0x00,
1184     0x00,0x40, 0x00,
1185     0x00,0x40, 0x00,/* STAR 19x23 = 4.5 */
1186
1187     0x00,0x20, 0x00,
1188     0x00,0x20, 0x00,
1189     0x00,0x20, 0x00,
1190     0x00,0x20, 0x00,
1191     0x00,0x20, 0x00,
1192     0x00,0x20, 0x00,
1193     0x80,0x20, 0x08,
1194     0x60,0x20, 0x30,
1195     0x18,0x20, 0xc0,
1196     0x04,0x21, 0x00,
1197     0x03,0x26, 0x00,
1198     0x00,0xf8, 0x00,
1199     0x00,0x20, 0x00,
1200     0x00,0xf8, 0x00,
1201     0x03,0x26, 0x00,
1202     0x04,0x21, 0x00,
1203     0x18,0x20, 0xc0,
1204     0x60,0x20, 0x30,
1205     0x80,0x20, 0x08,
1206     0x00,0x20, 0x00,
1207     0x00,0x20, 0x00,
1208     0x00,0x20, 0x00,
1209     0x00,0x20, 0x00,
1210     0x00,0x20, 0x00,
1211     0x00,0x20, 0x00,/* STAR 21x25 = 5.0 */
1212
1213     0x00,0x10, 0x00,
1214     0x00,0x10, 0x00,
1215     0x00,0x10, 0x00,
1216     0x00,0x10, 0x00,
1217     0x00,0x10, 0x00,
1218     0x00,0x10, 0x00,
1219     0x00,0x10, 0x00,
1220     0xc0,0x10, 0x06,
1221     0x30,0x10, 0x18,
1222     0x08,0x10, 0x60,
1223     0x06,0x10, 0x80,
1224     0x01,0x93, 0x00,
1225     0x00,0x7c, 0x00,
1226     0x00,0x10, 0x00,
1227     0x00,0x7c, 0x00,
1228     0x01,0x93, 0x00,
1229     0x06,0x10, 0x80,
1230     0x08,0x10, 0x60,
1231     0x30,0x10, 0x18,
1232     0xc0,0x10, 0x06,
1233     0x00,0x10, 0x00,
1234     0x00,0x10, 0x00,
1235     0x00,0x10, 0x00,
1236     0x00,0x10, 0x00,
1237     0x00,0x10, 0x00,
1238     0x00,0x10, 0x00,
1239     0x00,0x10, 0x00,/* STAR 23x27 = 5.5 */
1240
1241     0x00,0x08, 0x00,0x00,
1242     0x00,0x08, 0x00,0x00,
1243     0x00,0x08, 0x00,0x00,
1244     0x00,0x08, 0x00,0x00,
1245     0x00,0x08, 0x00,0x00,
1246     0x00,0x08, 0x00,0x00,
1247     0x00,0x08, 0x00,0x00,
1248     0x80,0x08, 0x00,0x80,
1249     0x60,0x08, 0x03,0x00,
1250     0x18,0x08, 0x0c,0x00,
1251     0x04,0x08, 0x30,0x00,
1252     0x03,0x08, 0x40,0x00,
1253     0x00,0xc9, 0x80,0x00,
1254     0x00,0x3e, 0x00,0x00,
1255     0x00,0x08, 0x00,0x00,
1256     0x00,0x3e, 0x00,0x00,
1257     0x00,0xc9, 0x80,0x00,
1258     0x03,0x08, 0x40,0x00,
1259     0x04,0x08, 0x30,0x00,
1260     0x18,0x08, 0x0c,0x00,
1261     0x60,0x08, 0x03,0x00,
1262     0x80,0x08, 0x00,0x80,
1263     0x00,0x08, 0x00,0x00,
1264     0x00,0x08, 0x00,0x00,
1265     0x00,0x08, 0x00,0x00,
1266     0x00,0x08, 0x00,0x00,
1267     0x00,0x08, 0x00,0x00,
1268     0x00,0x08, 0x00,0x00,
1269     0x00,0x08, 0x00,0x00,/* STAR 25x29 = 6.0 */
1270
1271     0x00,0x00, 0x80,0x00,
1272     0x00,0x00, 0x80,0x00,
1273     0x00,0x00, 0x80,0x00,
1274     0x00,0x00, 0x80,0x00,
1275     0x00,0x00, 0x80,0x00,
1276     0x00,0x00, 0x80,0x00,
1277     0x00,0x00, 0x80,0x00,
1278     0x00,0x00, 0x80,0x00, 
1279     0x00,0x00, 0x80,0x00,
1280     0x30,0x00, 0x80,0x06,
1281     0x0c,0x00, 0x80,0x18,
1282     0x03,0x00, 0x80,0x60,
1283     0x00,0xc0, 0x81,0x80,
1284     0x00,0x30, 0x86,0x00,
1285     0x00,0x0c, 0x98,0x00,
1286     0x00,0x03, 0xe0,0x00,
1287     0x00,0x03, 0xe0,0x00,
1288     0x00,0x0c, 0x98,0x00,
1289     0x00,0x30, 0x86,0x00,
1290     0x00,0xc0, 0x81,0x80,
1291     0x03,0x00, 0x80,0x60,
1292     0x0c,0x00, 0x80,0x18,
1293     0x30,0x00, 0x80,0x06,
1294     0x00,0x00, 0x80,0x00,
1295     0x00,0x00, 0x80,0x00,
1296     0x00,0x00, 0x80,0x00,
1297     0x00,0x00, 0x80,0x00,
1298     0x00,0x00, 0x80,0x00,
1299     0x00,0x00, 0x80,0x00,
1300     0x00,0x00, 0x80,0x00,
1301     0x00,0x00, 0x00,0x00,
1302     0x00,0x00, 0x00,0x00,/* STAR 32x32 = 6.5 */
1303
1304     0x00, 0x00, 0x80, 0x00,
1305     0x00, 0x00, 0x80, 0x00,
1306     0x00, 0x00, 0x80, 0x00,
1307     0x00, 0x00, 0x80, 0x00,
1308     0x00, 0x00, 0x80, 0x00,
1309     0x00, 0x00, 0x80, 0x00,
1310     0x00, 0x00, 0x80, 0x00, 
1311     0x00, 0x00, 0x80, 0x00,
1312     0x10, 0x00, 0x80, 0x04,
1313     0x0c, 0x00, 0x80, 0x18,
1314     0x02, 0x00, 0x80, 0x20,
1315     0x01, 0x80, 0x80, 0xc0,
1316     0x00, 0x40, 0x81, 0x00,
1317     0x00, 0x30, 0x86, 0x00,
1318     0x00, 0x08, 0x88, 0x00,
1319     0x00, 0x06, 0xb0, 0x00,
1320     0x00, 0x01, 0xc0, 0x00,
1321     0x00, 0x06, 0xb0, 0x00,
1322     0x00, 0x08, 0x88, 0x00,
1323     0x00, 0x30, 0x86, 0x00,
1324     0x00, 0x40, 0x81, 0x00,
1325     0x01, 0x80, 0x80, 0xc0,
1326     0x02, 0x00, 0x80, 0x20,
1327     0x0c, 0x00, 0x80, 0x18,
1328     0x10, 0x00, 0x80, 0x04,
1329     0x00, 0x00, 0x80, 0x00,
1330     0x00, 0x00, 0x80, 0x00,
1331     0x00, 0x00, 0x80, 0x00,
1332     0x00, 0x00, 0x80, 0x00,
1333     0x00, 0x00, 0x80, 0x00,
1334     0x00, 0x00, 0x80, 0x00,
1335     0x00, 0x00, 0x80, 0x00,/* STAR 32x32 = 7.0 */
1336
1337       /* TYPE = CIRC */
1338
1339     0x38,
1340     0x44,
1341     0x82,
1342     0x82,
1343     0x82,
1344     0x44,
1345     0x38,/* CIRC 7x7 = 1.0 */
1346
1347     0x3c,0x00,
1348     0x42,0x00,
1349     0x81,0x00,
1350     0x81,0x00,
1351     0x81,0x00,
1352     0x81,0x00,
1353     0x42,0x00,
1354     0x3c,0x00,
1355     0x00,0x00,/*CIRC 9x9 = 1.5 */
1356
1357     0x3e, 0x00,
1358     0x41, 0x00,
1359     0x81, 0x80,
1360     0x80,0x80,
1361     0x80,0x80,
1362     0x80,0x80,
1363     0x81, 0x80,
1364     0x41, 0x00,
1365     0x3e,0x00,/* CIRC 9x9 = 2.0 */
1366
1367     0x1f,0x00,
1368     0x20,0x80,
1369     0x40,0x40,
1370     0x80,0x20,
1371     0x80,0x20,
1372     0x80,0x20,
1373     0x80,0x20,
1374     0x80,0x20,
1375     0x40,0x40,
1376     0x20,0x80,
1377     0x1f,0x00,/* CIRC 11x11 = 2.5 */
1378
1379     0x0f,0x80,
1380     0x10,0x40,
1381     0x20,0x20,
1382     0x40,0x10,
1383     0x80,0x08,
1384     0x80,0x08,
1385     0x80,0x08,
1386     0x80,0x08,
1387     0x80,0x08,
1388     0x40,0x10,
1389     0x20,0x20,
1390     0x10,0x40,
1391     0x0f,0x80,/* CIRC 13x13 = 3.0 */
1392
1393     0x07,0xc0,
1394     0x18,0x30,
1395     0x20,0x08,
1396     0x40,0x04,
1397     0x40,0x04,
1398     0x80,0x02,
1399     0x80,0x02,
1400     0x80,0x02,
1401     0x80,0x02,
1402     0x80,0x02,
1403     0x40,0x04,
1404     0x40,0x04,
1405     0x20,0x08,
1406     0x18,0x30,
1407     0x07,0xc0,/* CIRC 15x15 = 3.5 */
1408
1409     0x03,0xe0, 0x00,
1410     0x0c,0x18, 0x00,
1411     0x10,0x04, 0x00,
1412     0x20,0x02, 0x00,
1413     0x40,0x01, 0x00,
1414     0x40,0x01, 0x00,
1415     0x80,0x00, 0x80,
1416     0x80,0x00, 0x80,
1417     0x80,0x00, 0x80,
1418     0x80,0x00, 0x80,
1419     0x80,0x00, 0x80,
1420     0x40,0x01, 0x00,
1421     0x40,0x01, 0x00,
1422     0x20,0x02, 0x00,
1423     0x10,0x04, 0x00,
1424     0x0c,0x18, 0x00,
1425     0x03,0xe0, 0x00,/* CIRC 17x17 = 4.0 */
1426
1427     0x03,0xf8, 0x00,
1428     0x0e,0x0e, 0x00,
1429     0x18,0x03, 0x00,
1430     0x20,0x00, 0x80,
1431     0x60,0x00, 0xc0,
1432     0x40,0x00, 0x40,
1433     0xc0,0x00, 0x60,
1434     0x80,0x00, 0x20,
1435     0x80,0x00, 0x20,
1436     0x80,0x00, 0x20,
1437     0x80,0x00, 0x20,
1438     0x80,0x00, 0x20,
1439     0xc0,0x00, 0x60,
1440     0x40,0x00, 0x40,
1441     0x60,0x00, 0xc0,
1442     0x20,0x00, 0x80,
1443     0x18,0x03, 0x00,
1444     0x0e,0x0e, 0x00,
1445     0x03,0xf8, 0x00,/* CIRC 19x19 = 4.5 */
1446
1447     0x01,0xfc, 0x00,
1448     0x06,0x03, 0x00,
1449     0x08,0x00, 0x80,
1450     0x10,0x00, 0x40,
1451     0x20,0x00, 0x20,
1452     0x40,0x00, 0x10,
1453     0x40,0x00, 0x10,
1454     0x80,0x00, 0x08,
1455     0x80,0x00, 0x08,
1456     0x80,0x00, 0x08,
1457     0x80,0x00, 0x08,
1458     0x80,0x00, 0x08,
1459     0x80,0x00, 0x08,
1460     0x80,0x00, 0x08,
1461     0x40,0x00, 0x10,
1462     0x40,0x00, 0x10,
1463     0x20,0x00, 0x20,
1464     0x10,0x00, 0x40,
1465     0x08,0x00, 0x80,
1466     0x06,0x03, 0x00,
1467     0x01,0xfc, 0x00,/* CIRC 21x21 = 5.0 */
1468
1469     0x00,0xfe, 0x00,
1470     0x03,0x01, 0x80,
1471     0x0c,0x00, 0x60,
1472     0x18,0x00, 0x30,
1473     0x30,0x00, 0x18,
1474     0x20,0x00, 0x08,
1475     0x40,0x00, 0x04,
1476     0x40,0x00, 0x04,
1477     0x80,0x00, 0x02,
1478     0x80,0x00, 0x02,
1479     0x80,0x00, 0x02,
1480     0x80,0x00, 0x02,
1481     0x80,0x00, 0x02,
1482     0x80,0x00, 0x02,
1483     0x80,0x00, 0x02,
1484     0x40,0x00, 0x04,
1485     0x40,0x00, 0x04,
1486     0x20,0x00, 0x08,
1487     0x30,0x00, 0x18,
1488     0x18,0x00, 0x30,
1489     0x0c,0x00, 0x60,
1490     0x03,0x01, 0x80,
1491     0x00,0xfe, 0x00,/* CIRC 23x23 = 5.5 */
1492
1493     0x00,0x7f, 0x00,0x00,
1494     0x01,0x80, 0xc0,0x00,
1495     0x06,0x00, 0x30,0x00,
1496     0x08,0x00, 0x08,0x00,
1497     0x10,0x00, 0x04,0x00,
1498     0x20,0x00, 0x02,0x00,
1499     0x20,0x00, 0x02,0x00,
1500     0x40,0x00, 0x01,0x00,
1501     0x40,0x00, 0x01,0x00,
1502     0x80,0x00, 0x00,0x80,
1503     0x80,0x00, 0x00,0x80,
1504     0x80,0x00, 0x00,0x80,
1505     0x80,0x00, 0x00,0x80,
1506     0x80,0x00, 0x00,0x80,
1507     0x80,0x00, 0x00,0x80,
1508     0x80,0x00, 0x00,0x80,
1509     0x40,0x00, 0x01,0x00,
1510     0x40,0x00, 0x01,0x00,
1511     0x20,0x00, 0x02,0x00,
1512     0x20,0x00, 0x02,0x00,
1513     0x10,0x00, 0x04,0x00,
1514     0x08,0x00, 0x08,0x00,
1515     0x06,0x00, 0x30,0x00,
1516     0x01,0x80, 0xc0,0x00,
1517     0x00,0x7f, 0x00,0x00,/* CIRC 25x25 = 6.0 */
1518
1519     0x00,0x3f, 0x80,0x00,
1520     0x01,0xc0, 0x70,0x00,
1521     0x03,0x00, 0x18,0x00,
1522     0x0c,0x00, 0x06,0x00,
1523     0x18,0x00, 0x03,0x00,
1524     0x10,0x00, 0x01,0x00,
1525     0x20,0x00, 0x00,0x80,
1526     0x60,0x00, 0x00,0xc0,
1527     0x40,0x00, 0x00,0x40,
1528     0x40,0x00, 0x00,0x40,
1529     0x80,0x00, 0x00,0x20,
1530     0x80,0x00, 0x00,0x20,
1531     0x80,0x00, 0x00,0x20,
1532     0x80,0x00, 0x00,0x20,
1533     0x80,0x00, 0x00,0x20,
1534     0x80,0x00, 0x00,0x20,
1535     0x80,0x00, 0x00,0x20,
1536     0x40,0x00, 0x00,0x40,
1537     0x40,0x00, 0x00,0x40,
1538     0x60,0x00, 0x00,0xc0,
1539     0x20,0x00, 0x00,0x80,
1540     0x10,0x00, 0x01,0x00,
1541     0x18,0x00, 0x03,0x00,
1542     0x0c,0x00, 0x06,0x00,
1543     0x03,0x00, 0x18,0x00,
1544     0x01,0xc0, 0x70,0x00,
1545     0x00,0x3f, 0x80,0x00,/* CIRC 27x27 = 6.5 */
1546
1547     0x00,0x1f, 0xc0,0x00,
1548     0x00,0xe0, 0x38,0x00,
1549     0x01,0x00, 0x04,0x00,
1550     0x06,0x00, 0x03,0x00,
1551     0x08,0x00, 0x00,0x80,
1552     0x10,0x00, 0x00,0x40,
1553     0x10,0x00, 0x00,0x40,
1554     0x20,0x00, 0x00,0x20,
1555     0x40,0x00, 0x00,0x10,
1556     0x40,0x00, 0x00,0x10,
1557     0x40,0x00, 0x00,0x10,
1558     0x80,0x00, 0x00,0x08,
1559     0x80,0x00, 0x00,0x08,
1560     0x80,0x00, 0x00,0x08,
1561     0x80,0x00, 0x00,0x08,
1562     0x80,0x00, 0x00,0x08,
1563     0x80,0x00, 0x00,0x08,
1564     0x80,0x00, 0x00,0x08,
1565     0x40,0x00, 0x00,0x10,
1566     0x40,0x00, 0x00,0x10,
1567     0x40,0x00, 0x00,0x10,
1568     0x20,0x00, 0x00,0x20,
1569     0x10,0x00, 0x00,0x40,
1570     0x10,0x00, 0x00,0x40,
1571     0x08,0x00, 0x00,0x80,
1572     0x06,0x00, 0x03,0x00,
1573     0x01,0x00, 0x04,0x00,
1574     0x00,0xe0, 0x38,0x00,
1575     0x00,0x1f, 0xc0,0x00, /* CIRC 29x29 = 7.0 */
1576
1577       /* TYPE = CROSS */
1578
1579     0x82,
1580     0x44,
1581     0x28,
1582     0x10,
1583     0x28,
1584     0x44,
1585     0x82,/* CROSS 7x7 = 1.0 */
1586
1587     0x80,0x80,
1588     0x41,0x00,
1589     0x22,0x00,
1590     0x14,0x00,
1591     0x08,0x00,
1592     0x14,0x00,
1593     0x22,0x00,
1594     0x41,0x00,
1595     0x80,0x80,/* CROSS 9x9 = 1.5 */
1596
1597     0x80,0x20,
1598     0x40,0x40,
1599     0x20,0x80,
1600     0x11,0x00,
1601     0x0a,0x00,
1602     0x04,0x00,
1603     0x0a,0x00,
1604     0x11,0x00,
1605     0x20,0x80,
1606     0x40,0x40,
1607     0x80,0x20,/* CROSS 11x11 = 2.0 */
1608
1609     0x80,0x08,
1610     0x40,0x10,
1611     0x20,0x20,
1612     0x10,0x40,
1613     0x08,0x80,
1614     0x05,0x00,
1615     0x02,0x00,
1616     0x05,0x00,
1617     0x08,0x80,
1618     0x10,0x40,
1619     0x20,0x20,
1620     0x40,0x10,
1621     0x80,0x08,/* CROSS 13x13 = 2.5 */
1622
1623     0x80,0x02,
1624     0x40,0x04,
1625     0x20,0x08,
1626     0x10,0x10,
1627     0x08,0x20,
1628     0x04,0x40,
1629     0x02,0x80,
1630     0x01,0x00,
1631     0x02,0x80,
1632     0x04,0x40,
1633     0x08,0x20,
1634     0x10,0x10,
1635     0x20,0x08,
1636     0x40,0x04,
1637     0x80,0x02,/* CROSS 15x15 = 3.0 */
1638
1639     0x80,0x00, 0x80,
1640     0x40,0x01, 0x00,
1641     0x20,0x02, 0x00,
1642     0x10,0x04, 0x00,
1643     0x08,0x08, 0x00,
1644     0x04,0x10, 0x00,
1645     0x02,0x20, 0x00,
1646     0x01,0x40, 0x00,
1647     0x00,0x80, 0x00,
1648     0x01,0x40, 0x00,
1649     0x02,0x20, 0x00,
1650     0x04,0x10, 0x00,
1651     0x08,0x08, 0x00,
1652     0x10,0x04, 0x00,
1653     0x20,0x02, 0x00,
1654     0x40,0x01, 0x00,
1655     0x80,0x00, 0x80,/* CROSS 17x17 = 3.5 */
1656
1657     0x80,0x00, 0x20,
1658     0x40,0x00, 0x40,
1659     0x20,0x00, 0x80,
1660     0x10,0x01, 0x00,
1661     0x08,0x02, 0x00,
1662     0x04,0x04, 0x00,
1663     0x02,0x08, 0x00,
1664     0x01,0x10, 0x00,
1665     0x00,0xa0, 0x00,
1666     0x00,0x40, 0x00,
1667     0x00,0xa0, 0x00,
1668     0x01,0x10, 0x00,
1669     0x02,0x08, 0x00,
1670     0x04,0x04, 0x00,
1671     0x08,0x02, 0x00,
1672     0x10,0x01, 0x00,
1673     0x20,0x00, 0x80,
1674     0x40,0x00, 0x40,
1675     0x80,0x00, 0x20,/* CROSS 19x19 = 4.0 */
1676
1677     0x80,0x00, 0x08,
1678     0x40,0x00, 0x10,
1679     0x20,0x00, 0x20,
1680     0x10,0x00, 0x40,
1681     0x08,0x00, 0x80,
1682     0x04,0x01, 0x00,
1683     0x02,0x02, 0x00,
1684     0x01,0x04, 0x00,
1685     0x00,0x88, 0x00,
1686     0x00,0x50, 0x00,
1687     0x00,0x20, 0x00,
1688     0x00,0x50, 0x00,
1689     0x00,0x88, 0x00,
1690     0x01,0x04, 0x00,
1691     0x02,0x02, 0x00,
1692     0x04,0x01, 0x00,
1693     0x08,0x00, 0x80,
1694     0x10,0x00, 0x40,
1695     0x20,0x00, 0x20,
1696     0x40,0x00, 0x10,
1697     0x80,0x00, 0x08,/* CROSS 21x21 = 4.5 */
1698
1699     0x80,0x00, 0x02,
1700     0x40,0x00, 0x04,
1701     0x20,0x00, 0x08,
1702     0x10,0x00, 0x10,
1703     0x08,0x00, 0x20,
1704     0x04,0x00, 0x40,
1705     0x02,0x00, 0x80,
1706     0x01,0x01, 0x00,
1707     0x00,0x82, 0x00,
1708     0x00,0x44, 0x00,
1709     0x00,0x28, 0x00,
1710     0x00,0x10, 0x00,
1711     0x00,0x28, 0x00,
1712     0x00,0x44, 0x00,
1713     0x00,0x82, 0x00,
1714     0x01,0x01, 0x00,
1715     0x02,0x00, 0x80,
1716     0x04,0x00, 0x40,
1717     0x08,0x00, 0x20,
1718     0x10,0x00, 0x10,
1719     0x20,0x00, 0x08,
1720     0x40,0x00, 0x04,
1721     0x80,0x00, 0x02,/* CROSS 23x23 = 5.0 */
1722
1723     0x80,0x00, 0x00,0x80,
1724     0x40,0x00, 0x01,0x00,
1725     0x20,0x00, 0x02,0x00,
1726     0x10,0x00, 0x04,0x00,
1727     0x08,0x00, 0x08,0x00,
1728     0x04,0x00, 0x10,0x00,
1729     0x02,0x00, 0x20,0x00,
1730     0x01,0x00, 0x40,0x00,
1731     0x00,0x80, 0x80,0x00,
1732     0x00,0x41, 0x00,0x00,
1733     0x00,0x22, 0x00,0x00,
1734     0x00,0x14, 0x00,0x00,
1735     0x00,0x08, 0x00,0x00,
1736     0x00,0x14, 0x00,0x00,
1737     0x00,0x22, 0x00,0x00,
1738     0x00,0x41, 0x00,0x00,
1739     0x00,0x80, 0x80,0x00,
1740     0x01,0x00, 0x40,0x00,
1741     0x02,0x00, 0x20,0x00,
1742     0x04,0x00, 0x10,0x00,
1743     0x08,0x00, 0x08,0x00,
1744     0x10,0x00, 0x04,0x00,
1745     0x20,0x00, 0x02,0x00,
1746     0x40,0x00, 0x01,0x00,
1747     0x80,0x00, 0x00,0x80,/* CROSS 25x25 = 5.5 */
1748
1749     0x80,0x00, 0x00,0x20,
1750     0x40,0x00, 0x00,0x40,
1751     0x20,0x00, 0x00,0x80,
1752     0x10,0x00, 0x01,0x00,
1753     0x08,0x00, 0x02,0x00,
1754     0x04,0x00, 0x04,0x00,
1755     0x02,0x00, 0x08,0x00,
1756     0x01,0x00, 0x10,0x00,
1757     0x00,0x80, 0x20,0x00,
1758     0x00,0x40, 0x40,0x00,
1759     0x00,0x20, 0x80,0x00,
1760     0x00,0x11, 0x00,0x00,
1761     0x00,0x0a, 0x00,0x00,
1762     0x00,0x04, 0x00,0x00,
1763     0x00,0x0a, 0x00,0x00,
1764     0x00,0x11, 0x00,0x00,
1765     0x00,0x20, 0x80,0x00,
1766     0x00,0x40, 0x40,0x00,
1767     0x00,0x80, 0x20,0x00,
1768     0x01,0x00, 0x10,0x00,
1769     0x02,0x00, 0x08,0x00,
1770     0x04,0x00, 0x04,0x00,
1771     0x08,0x00, 0x02,0x00,
1772     0x10,0x00, 0x01,0x00,
1773     0x20,0x00, 0x00,0x80,
1774     0x40,0x00, 0x00,0x40,
1775     0x80,0x00, 0x00,0x20,/* CROSS 27x27 = 6.0 */
1776
1777     0x00,0x00, 0x00,0x00,
1778     0x00,0x00, 0x00,0x00,
1779     0x20,0x00, 0x00,0x04,
1780     0x10,0x00, 0x00,0x08,
1781     0x08,0x00, 0x00,0x10,
1782     0x04,0x00, 0x00,0x20,
1783     0x02,0x00, 0x00,0x40,
1784     0x01,0x00, 0x00,0x80,
1785     0x00,0x80, 0x01,0x00,
1786     0x00,0x40, 0x02,0x00,
1787     0x00,0x20, 0x04,0x00,
1788     0x00,0x10, 0x08,0x00,
1789     0x00,0x08, 0x10,0x00,
1790     0x00,0x04, 0x20,0x00,
1791     0x00,0x02, 0x40,0x00,
1792     0x00,0x01, 0x80,0x00,
1793     0x00,0x01, 0x80,0x00,
1794     0x00,0x02, 0x40,0x00,
1795     0x00,0x04, 0x20,0x00,
1796     0x00,0x08, 0x10,0x00,
1797     0x00,0x10, 0x08,0x00,
1798     0x00,0x20, 0x04,0x00,
1799     0x00,0x40, 0x02,0x00,
1800     0x00,0x80, 0x01,0x00,
1801     0x01,0x00, 0x00,0x80,
1802     0x02,0x00, 0x00,0x40, 
1803     0x04,0x00, 0x00,0x20,
1804     0x08,0x00, 0x00,0x10,
1805     0x10,0x00, 0x00,0x08,
1806     0x20,0x00, 0x00,0x04,
1807     0x00,0x00, 0x00,0x00,
1808     0x00,0x00, 0x00,0x00,/* CROSS 32x32 = 6.5 */
1809
1810     0x00,0x00, 0x00,0x00,
1811     0x40,0x00, 0x00,0x02,
1812     0x20,0x00, 0x00,0x04,
1813     0x10,0x00, 0x00,0x08,
1814     0x08,0x00, 0x00,0x10,
1815     0x04,0x00, 0x00,0x20,
1816     0x02,0x00, 0x00,0x40,
1817     0x01,0x00, 0x00,0x80,
1818     0x00,0x80, 0x01,0x00,
1819     0x00,0x40, 0x02,0x00,
1820     0x00,0x20, 0x04,0x00,
1821     0x00,0x10, 0x08,0x00,
1822     0x00,0x08, 0x10,0x00,
1823     0x00,0x04, 0x20,0x00,
1824     0x00,0x02, 0x40,0x00,
1825     0x00,0x01, 0x80,0x00,
1826     0x00,0x01, 0x80,0x00,
1827     0x00,0x02, 0x40,0x00,
1828     0x00,0x04, 0x20,0x00,
1829     0x00,0x08, 0x10,0x00,
1830     0x00,0x10, 0x08,0x00,
1831     0x00,0x20, 0x04,0x00,
1832     0x00,0x40, 0x02,0x00, 
1833     0x00,0x80, 0x01,0x00,
1834     0x01,0x00, 0x00,0x80,
1835     0x02,0x00, 0x00,0x40,
1836     0x04,0x00, 0x00,0x20,
1837     0x08,0x00, 0x00,0x10,
1838     0x10,0x00, 0x00,0x08,
1839     0x20,0x00, 0x00,0x04,
1840     0x40,0x00, 0x00,0x02,
1841     0x00,0x00, 0x00,0x00/* CROSS 32x32 = 7.0 */
1842 };
1843
1844 /*----------------------------------------------------------------------*/
1845
1846 //TsmInitAttributes
1847 void OpenGl_Display::InitAttributes ()
1848 {
1849   // Return if already initialized
1850   if (myLinestyleBase) return;
1851
1852   myLinestyleBase = glGenLists(5);
1853
1854   /* Line */
1855
1856   glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DASH, GL_COMPILE );
1857   glLineStipple(1,  DASH_LS );
1858   glEndList();
1859
1860   glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DOT, GL_COMPILE );
1861   glLineStipple(1,  DOT_LS );
1862   glEndList();
1863
1864   glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_DOTDASH, GL_COMPILE );
1865   glLineStipple(1,  DASH_DOT_LS );
1866   glEndList();
1867
1868   glNewList( (GLuint)myLinestyleBase+(GLuint)Aspect_TOL_USERDEFINED, GL_COMPILE );
1869   glLineStipple(1,  DASH_DDOT_LS );
1870   glEndList();
1871
1872   /* FSXXX
1873   * GL_POLYGON_STIPPLE
1874   * need 32x32 stipple patterns
1875   */
1876   const int nbi = sizeof(myInteriors)/(32*sizeof(unsigned int));
1877   myPatternBase = glGenLists(TEL_HS_USER_DEF_START);
1878   int i;
1879   for( i = 1; i < TEL_HS_USER_DEF_START; i++ )
1880   {
1881     glNewList( (GLuint)myPatternBase + i, GL_COMPILE );
1882         glPolygonStipple((const GLubyte *) (myInteriors[i<nbi? i : 0]));
1883     glEndList();
1884   }
1885
1886   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1887
1888   myMarkerBase = glGenLists (60);
1889   int j;
1890   for( i = 1; i < TEL_NB_OF_LISTS; i++ )
1891     for( j = 0; j < TEL_NO_OF_SIZES; j++ )
1892     {           
1893       const Tfloat w = arrPMFontInfo[i][j].width;
1894       const Tfloat h = arrPMFontInfo[i][j].height;
1895       const Tint offset = arrPMFontInfo[i][j].offset;
1896
1897       glNewList( (const GLuint)(arrPMFontInfo[i][j].str[0] + myMarkerBase), GL_COMPILE );
1898       glBitmap( (GLsizei)w, (GLsizei)h, (GLfloat)(0.5f * w), (GLfloat)(0.5f * h), 0.f, 0.f, (const GLubyte *) &myMarkerRaster[offset] );
1899       glEndList();
1900     }
1901 }
1902
1903 /*----------------------------------------------------------------------*/
1904
1905 #define TEL_PM_START_SIZE 1.F
1906 #define TEL_PM_END_SIZE   7.F
1907
1908 //TelGetStringForPM
1909 const char * OpenGl_Display::GetStringForMarker (const Aspect_TypeOfMarker AType, const Tfloat AVal) const
1910 {
1911   const int atype = (int)(( AType > Aspect_TOM_O_X )? Aspect_TOM_X : AType);
1912
1913   const float index = ( float )(TEL_NO_OF_SIZES-1) * (AVal - ( float )TEL_PM_START_SIZE ) / ( float )(TEL_PM_END_SIZE - TEL_PM_START_SIZE);
1914   int id = (int)(index + 0.5F);
1915   if (id < 0) id = 0;
1916   else if (id >= TEL_NO_OF_SIZES) id = TEL_NO_OF_SIZES-1;
1917
1918   return arrPMFontInfo[atype][id].str;
1919 }
1920
1921 /*----------------------------------------------------------------------*/
1922
1923 void OpenGl_Display::SetBaseForMarker () const
1924 {
1925   glListBase( (const GLuint) myMarkerBase );
1926 }
1927
1928 /*----------------------------------------------------------------------*/
1929
1930 void OpenGl_Display::SetTypeOfLine (const Aspect_TypeOfLine AType) const
1931 {
1932   if (AType != Aspect_TOL_SOLID)
1933   {
1934     glCallList((GLuint)myLinestyleBase+(GLuint)AType);
1935     glEnable( GL_LINE_STIPPLE );
1936 #ifdef HAVE_GL2PS
1937     gl2psEnable( GL2PS_LINE_STIPPLE );
1938 #endif
1939   }
1940   else
1941   {
1942     glDisable( GL_LINE_STIPPLE );
1943 #ifdef HAVE_GL2PS
1944     gl2psDisable( GL2PS_LINE_STIPPLE );
1945 #endif
1946   }
1947 }
1948
1949 /*----------------------------------------------------------------------*/
1950
1951 void OpenGl_Display::SetTypeOfHatch (const int AType) const
1952 {
1953   if (AType)
1954   {
1955     glCallList((GLuint)myPatternBase+(GLuint)AType);
1956     glEnable( GL_POLYGON_STIPPLE );
1957   }
1958   else
1959     glDisable( GL_POLYGON_STIPPLE );
1960 }
1961
1962 /*----------------------------------------------------------------------*/