Autor Beitrag
pallep
Hält's aus hier
Beiträge: 3


D7
BeitragVerfasst: So 27.03.05 19:35 
Hi !!

Ich habe eine Frage bzgl. Text in OpenGL. Ich habe gesehen, dass es bereits ab und zu mal Fragen zu diesem Thema gab, allerdings habe ich dort nie die Antwort auf meine Frage finden können.
Das Problem ist folgendes:
Zusammen mit einem Freund bin ich dabei, als Projekt für unseren Informatik-LK ein Programm zu entwickeln. Wir arbeiten an einer Fluglotsen Simulation. Die Grafische Umsetzung machen wir mit OpenGL. Bisher lief auch alles super, sind auch schon fast fertig. Nur wollen wir jetzt noch neben jedem Flugzeug(-Symbol) auf dem "Radarschirm" ein Textblock anzeigen, der Höhe, Kennung etc. angibt. Wir wissen jedoch nicht so recht, wie wir das jetzt umsetzen sollen. Was wir brauchen ist also, eine Möglichkeit, in einer OpenGL-Applikation ganz einfach Text auszugeben bzw. anzuzeigen. Es brauch auch nicht 3D sein oder so. Ganz simpel und einfach !
Kann uns vielleicht jemand sagen, wie wir das umsetzen können. Am aller besten währe natürlich fertiger Quelltext, eine fertige Funktion oder so...wenn denn jemand vielleicht so etwas schon einmal gemacht hat und uns den Queltext zur Verfügung stellen will...

Wir würden usn super über Tipps freuen, müssen das Projekt nämlich auch schon in anderthalb Wochen ageben !

Grüße
Paul
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: So 27.03.05 20:02 
uall.overclock.ch/l0rY.txt

da ist eine funktion die heißt GlowPrint ausserdem glPrint

damit kann amn 2D text in x/y koordinante ausgeben

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Phobeus
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: So 27.03.05 21:16 
Es gibt mehre Ansätze. Ich persönlich bevorzuge meistens Bitmapsfonts. Recht schnell zu realisieren und lassen einen auch einiges an Spielraum, was die grafische Gestaltung angeht. Obwohl ja scheinbar bereits eine gute mögliche Lösung angeboten wurde, verweise ich einfach auch nochmal auf: wiki.delphigl.com/index.php/Text_ausgeben

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 29.03.05 16:23 
ausblenden volle Höhe Delphi-Quelltext
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:
  bitmapFont: array[0..94of array [0..13of byte = (
    (
    32,
    $00$00$00$00$00$00$00,
    $00$00$00$00$00$00
    ),
    (
    33,
    $00$00$18$18$00$00$18,
    $18$18$18$18$18$18
    ), 
    (
    34,
    $00$00$00$00$00$00$00
    $00$00$36$36$36$36
    ),
    (
    35
    $00$00$00$66$66$ff$66,
    $66$ff$66$66$00$00 
    ),
    (
    36,
    $00$00$18$7e$ff$1b$1f
    $7e$f8$d8$ff$7e$18
    ), 
    (
    37,
    $00$00$0e$1b$db$6e$30
    $18$0c$76$db$d8$70 
    ), 
    ( 
    38
    $00$00$7f$c6$cf$d8$70
    $70$d8$cc$cc$6c$38
    ),
    (
    39,
    $00$00$00$00$00$00$00
    $00$00$18$1c$0c$0e
    ), 
    (
    40
    $00$00$0c$18$30$30$30,
    $30$30$30$30$18$0c 
    ),
    ( 
    41,
    $00$00$30$18$0c$0c$0c
    $0c$0c$0c$0c$18$30
    ), 
    ( 
    42
    $00$00$00$00$99$5a$3c,
    $ff$3c$5a$99$00$00 
    ), 
    (
    43,
    $00$00$00$18$18$18$ff,
    $ff$18$18$18$00$00
    ), 
    ( 
    44,
    $00$00$30$18$1c$1c$00
    $00$00$00$00$00$00
    ),
    (
    45
    $00$00$00$00$00$00$ff,
    $ff$00$00$00$00$00 
    ), 
    ( 
    46
    $00$00$00$38$38$00$00
    $00$00$00$00$00$00
    ), 
    ( 
    47,
    $00$60$60$30$30$18$18,
    $0c$0c$06$06$03$03
    ), 
    ( 
    48
    $00$00$3c$66$c3$e3$f3,
    $db$cf$c7$c3$66$3c 
    ),
    ( 
    49,
    $00$00$7e$18$18$18$18
    $18$18$18$78$38$18
    ), 
    ( 
    50
    $00$00$ff$c0$c0$60$30
    $18$0c$06$03$e7$7e
    ), 
    ( 
    51
    $00$00$7e$e7$03$03$07,
    $7e$07$03$03$e7$7e
    ),
    ( 
    52
    $00$00$0c$0c$0c$0c$0c,
    $ff$cc$6c$3c$1c$0c
    ), 
    (
    53
    $00$00$7e$e7$03$03$07,
    $fe$c0$c0$c0$c0$ff
    ),
    ( 
    54
    $00$00$7e$e7$c3$c3$c7
    $fe$c0$c0$c0$e7$7e
    ), 
    ( 
    55
    $00$00$30$30$30$30$18
    $0c$06$03$03$03$ff
    ),
    (
    56
    $00$00$7e$e7$c3$c3$e7
    $7e$e7$c3$c3$e7$7e
    ),
    ( 
    57,
    $00$00$7e$e7$03$03$03,
    $7f$e7$c3$c3$e7$7e
    ), 
    (
    58
    $00$00$00$38$38$00$00
    $38$38$00$00$00$00
    ), 
    ( 
    59
    $00$00$30$18$1c$1c$00,
    $00$1c$1c$00$00$00 
    ),
    (
    60,
    $00$00$06$0c$18$30$60
    $c0$60$30$18$0c$06 
    ), 
    (
    61
    $00$00$00$00$ff$ff$00,
    $ff$ff$00$00$00$00 
    ),
    ( 
    62,
    $00$00$60$30$18$0c$06,
    $03$06$0c$18$30$60 
    ), 
    ( 
    63
    $00$00$18$00$00$18$18
    $0c$06$03$c3$c3$7e 
    ), 
    (
    64,
    $00$00$3f$60$cf$db$d3,
    $dd$c3$7e$00$00$00 
    ), 
    ( 
    65,
    $00$00$c3$c3$c3$c3$ff
    $c3$c3$c3$66$3c$18
    ), 
    (
    66
    $00$00$fe$c7$c3$c3$c7,
    $fe$c7$c3$c3$c7$fe 
    ),
    ( 
    67
    $00$00$7e$e7$c0$c0$c0
    $c0$c0$c0$c0$e7$7e 
    ), 
    ( 
    68,
    $00$00$fc$ce$c7$c3$c3,
    $c3$c3$c3$c7$ce$fc
    ), 
    ( 
    69
    $00$00$ff$c0$c0$c0$c0,
    $fc$c0$c0$c0$c0$ff 
    ),
    ( 
    70,
    $00$00$c0$c0$c0$c0$c0
    $c0$fc$c0$c0$c0$ff
    ), 
    ( 
    71,
    $00$00$7e$e7$c3$c3$cf
    $c0$c0$c0$c0$e7$7e 
    ), 
    ( 
    72
    $00$00$c3$c3$c3$c3$c3,
    $ff$c3$c3$c3$c3$c3
    ),
    ( 
    73
    $00$00$7e$18$18$18$18
    $18$18$18$18$18$7e
    ), 
    (
    74
    $00$00$7c$ee$c6$06$06,
    $06$06$06$06$06$06 
    ),
    ( 
    75
    $00$00$c3$c6$cc$d8$f0
    $e0$f0$d8$cc$c6$c3
    ), 
    ( 
    76
    $00$00$ff$c0$c0$c0$c0
    $c0$c0$c0$c0$c0$c0
    ),
    (
    77
    $00$00$c3$c3$c3$c3$c3
    $c3$db$ff$ff$e7$c3 
    ),
    ( 
    78,
    $00$00$c7$c7$cf$cf$df
    $db$fb$f3$f3$e3$e3
    ), 
    (
    79
    $00$00$7e$e7$c3$c3$c3
    $c3$c3$c3$c3$e7$7e 
    ), 
    (
    80
    $00$00$c0$c0$c0$c0$c0
    $fe$c7$c3$c3$c7$fe 
    ),
    (
    81,
    $00$00$3f$6e$df$db$c3
    $c3$c3$c3$c3$66$3c 
    ), 
    (
    82
    $00$00$c3$c6$cc$d8$f0,
    $fe$c7$c3$c3$c7$fe 
    ),
    ( 
    83,
    $00$00$7e$e7$03$03$07
    $7e$e0$c0$c0$e7$7e 
    ), 
    ( 
    84
    $00$00$18$18$18$18$18,
    $18$18$18$18$18$ff 
    ), 
    (
    85,
    $00$00$7e$e7$c3$c3$c3,
    $c3$c3$c3$c3$c3$c3 
    ), 
    ( 
    86,
    $00$00$18$3c$3c$66$66
    $c3$c3$c3$c3$c3$c3
    ), 
    (
    87
    $00$00$c3$e7$ff$ff$db,
    $db$c3$c3$c3$c3$c3 
    ), 
    ( 
    88
    $00$00$c3$66$66$3c$3c
    $18$3c$3c$66$66$c3 
    ),
    ( 
    89,
    $00$00$18$18$18$18$18,
    $18$3c$3c$66$66$c3
    ), 
    ( 
    90
    $00$00$ff$c0$c0$60$30,
    $7e$0c$06$03$03$ff 
    ),
    ( 
    91,
    $00$00$3c$30$30$30$30
    $30$30$30$30$30$3c
    ), 
    ( 
    92
    $00$03$03$06$06$0c$0c
    $18$18$30$30$60$60 
    ), 
    ( 
    93,
    $00$00$3c$0c$0c$0c$0c,
    $0c$0c$0c$0c$0c$3c
    ),
    ( 
    94
    $00$00$00$00$00$00$00
    $00$00$c3$66$3c$18
    ), 
    (
    95
    $ff$ff$00$00$00$00$00,
    $00$00$00$00$00$00 
    ),
    ( 
    96
    $00$00$00$00$00$00$00
    $00$00$18$38$30$70 
    ), 
    ( 
    97
    $00$00$7f$c3$c3$7f$03
    $c3$7e$00$00$00$00
    ),
    (
    98
    $00$00$fe$c3$c3$c3$c3
    $fe$c0$c0$c0$c0$c0 
    ),
    ( 
    99,
    $00$00$7e$c3$c0$c0$c0
    $c3$7e$00$00$00$00
    ), 
    (
    100
    $00$00$7f$c3$c3$c3$c3
    $7f$03$03$03$03$03 
    ), 
    ( 
    101
    $00$00$7f$c0$c0$fe$c3
    $c3$7e$00$00$00$00 
    ),
    (
    102,
    $00$00$30$30$30$30$30
    $fc$30$30$30$33$1e 
    ), 
    (
    103
    $7e$c3$03$03$7f$c3$c3,
    $c3$7e$00$00$00$00 
    ),
    ( 
    104,
    $00$00$c3$c3$c3$c3$c3
    $c3$fe$c0$c0$c0$c0 
    ), 
    ( 
    105
    $00$00$18$18$18$18$18
    $18$18$00$00$18$00 
    ), 
    (
    106,
    $38$6c$0c$0c$0c$0c$0c,
    $0c$0c$00$00$0c$00 
    ), 
    ( 
    107,
    $00$00$c6$cc$f8$f0$d8
    $cc$c6$c0$c0$c0$c0
    ), 
    (
    108
    $00$00$7e$18$18$18$18,
    $18$18$18$18$18$78 
    ), 
    ( 
    109
    $00$00$db$db$db$db$db
    $db$fe$00$00$00$00 
    ), 
    ( 
    110,
    $00$00$c6$c6$c6$c6$c6,
    $c6$fc$00$00$00$00
    ),
    ( 
    111
    $00$00$7c$c6$c6$c6$c6,
    $c6$7c$00$00$00$00 
    ),
    ( 
    112,
    $c0$c0$c0$fe$c3$c3$c3
    $c3$fe$00$00$00$00
    ), 
    ( 
    113
    $03$03$03$7f$c3$c3$c3
    $c3$7f$00$00$00$00 
    ), 
    ( 
    114
    $00$00$c0$c0$c0$c0$c0,
    $e0$fe$00$00$00$00
    ),
    ( 
    115,
    $00$00$fe$03$03$7e$c0
    $c0$7f$00$00$00$00
    ), 
    (
    116
    $00$00$1c$36$30$30$30,
    $30$fc$30$30$30$00 
    ),
    ( 
    117
    $00$00$7e$c6$c6$c6$c6
    $c6$c6$00$00$00$00 
    ), 
    ( 
    118
    $00$00$18$3c$3c$66$66
    $c3$c3$00$00$00$00
    ),
    (
    119
    $00$00$c3$e7$ff$db$c3
    $c3$c3$00$00$00$00
    ),
    ( 
    120,
    $00$00$c3$66$3c$18$3c
    $66$c3$00$00$00$00
    ), 
    (
    121
    $c0$60$60$30$18$3c$66
    $66$c3$00$00$00$00 
    ), 
    ( 
    122
    $00$00$ff$60$30$18$0c
    $06$ff$00$00$00$00 
    ),
    (
    123,
    $00$00$0f$18$18$18$38
    $f0$38$18$18$18$0f 
    ), 
    (
    124
    $18$18$18$18$18$18$18,
    $18$18$18$18$18$18
    ),
    (
    125,
    $00$00$f0$18$18$18$1c,
    $0f$1c$18$18$18$f0
    ),
    (
    126,
    $00$00$00$00$00$00$06,
    $8f$f1$60$00$00$00
    )
);

procedure fontBitmapString(str: string);
var
  len,i: integer;
  swapbytes, lsbfirst, rowlength: glint;
  skiprows, skippixels, alignment: glint;
begin
  len := length(str);
  glGetIntegerv(GL_UNPACK_SWAP_BYTES, @swapbytes);
  glGetIntegerv(GL_UNPACK_LSB_FIRST, @lsbfirst);
  glGetIntegerv(GL_UNPACK_ROW_LENGTH,@rowlength);
  glGetIntegerv(GL_UNPACK_SKIP_ROWS, @skiprows);
  glGetIntegerv(GL_UNPACK_SKIP_PIXELS, @skippixels);
  glGetIntegerv(GL_UNPACK_ALIGNMENT, @alignment);
  glPixelStorei(GL_UNPACK_SWAP_BYTES, 0);
  glPixelStorei(GL_UNPACK_LSB_FIRST, 0);
  glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
  glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
  glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

  for i := 1 to len do
    glBitmap(8,13,0,2,10,0,@bitmapFont[ord(str[i])-32][1]);
  glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);
  glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);
  glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength); 
  glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
  glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels); 
  glPixelStorei(GL_UNPACK_ALIGNMENT, alignment); 
end;

procedure glPrint(x, y: integer; text: string; red, green, blue: single);
var
  t: boolean;
  color, position: array[0..3of single;
begin
  glPushMatrix();
  glLoadIdentity();
  glDisable(GL_TEXTURE_2D);
  glPushAttrib(GL_ALL_ATTRIB_BITS);
  glGetFloatv(GL_CURRENT_COLOR, @color);
  glGetBooleanv(GL_TEXTURE_2D, @t);
  glGetFloatv(GL_CURRENT_RASTER_POSITION, @position);
  glColor4f(red,green,blue,1);
  glRasterPos2i(x, y);
  fontBitmapString(text);
  glPopAttrib();
  glColor4f(color[0],color[1],color[2],color[3]);
  glEnable(GL_TEXTURE_2D);
  glPopMatrix();
end;

so hab ichs gestern schonmal getestet, die schrift wird blau und im spiel ist das ganz bild blau, ohne das der text jemals angezeigt wurde :?


Zuletzt bearbeitet von F34r0fTh3D4rk am Mi 30.03.05 13:55, insgesamt 1-mal bearbeitet
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Di 29.03.05 17:24 
Titel: Ich habe da schon mal was vorbereitet
In meinem VU Meter benutze ich eine Unit die ich halb publiziert habe. Sie schimpft sich glText und in ihr befinden sich verschiedene Klassen mit denen mal Schriften darstellen kann. Polygonfont, Bitmapfont und Texturfonts.

Das Zeichnen damit geht sehr einfach.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  glColor3f(111);

  glRasterPos2i(ClientWidth - 10013);
  FFont.PrintText('100%');
  glRasterPos2i(ClientWidth - 100 + 712 + (ClientHeight - 20) * 25 div 100);
  FFont.PrintText('75%');
  glRasterPos2i(ClientWidth - 100 + 712 + (ClientHeight - 20div 2);
  FFont.PrintText('50%');
  glRasterPos2i(ClientWidth - 100 + 712 + (ClientHeight - 20) * 75 div 100);
  FFont.PrintText('25%');
  glRasterPos2i(ClientWidth - 100 + 14, ClientHeight - 5);
  FFont.PrintText('0%');


Generieren
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  FFont := TglBitmapText.Create(FDC);
  FFont.Font.Name := 'Tahoma';
  FFont.Font.Size := 8;
  FFont.Font.Style := [fsBold];
  FFont.BuildFont;


Zum Kompilieren wird die glBitmap benötigt.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 29.03.05 17:29 
was stimmt denn an meinem code net ?
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Mi 30.03.05 09:47 
Zitat:
so hab ichs gestern schonmal getestet, die schrift wird blau und im spiel ist das ganz bild blau, ohne das der text jemals angezeigt wurde :?

Oder habe ich das falsch verstanden?

Außerdem war das von mir nur eine zusätliche Möglichkeit die mit im Windows verankerten Fonts arbeitet. Macht den Code übersichtlicher und man kann damit ohne Probleme auch andere Fonts in anderen Größen genereieren.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 30.03.05 13:29 
mir fehlt die unit dglOpenGL !

wie mache ich das denn, ohne extra 20 units einbinden zu müssen ? :lol:
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 30.03.05 13:37 
F34r0fTh3D4rk deinen code kannst du noch nicht mal compilieren, du hast innerhal einer prozedur ein array was du initliasiert haben willst, das geht nur global -> also kannst du diese functkio noch net mal getestet haben -> du hast irgendwo anders nen fehler mit dem blauen bildschirm

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Mi 30.03.05 13:48 
Gar nicht. :twisted:

Spaß bei Seite. Es handelt sich lediglich um 2 zusätzliche Units. Und die Funktionnalitäten von beiden werden normal immer benötigt.
Die glBitmap ist mein klassenbasierter Texturenloader, der gegenüber zu den existierenden Loader den ein oder anderen Vorteil hat. Abgesehen davon entwickele ich an dem weiter, wenn ich denn die Zeit dazu finde. Was man bei den Anderen nicht behaupten kann. *schleichwerbungmach* ;-)

Die dglOpenGL ist der Delphi OpenGL Header. Wenn du meine Klassen verwenden möchtest, dann musst du auch die dglOpenGL als OpenGL Header verwenden. Also nix Borland Header und nix Mike Lischkes Header.

Falls du nur wissen möchtest wie ich den Bitmaptext darstelle solltest du dir nur die Klasse TglBitmapText anschauen. Der gesammte Code überstreckt sich aber nur über ein paar Zeilen. Also nicht wundern weil es so wenig ist. Und ja auch kleiner Code kann funktionieren. ;-)

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 30.03.05 13:54 
das ding is global, habs nur im forum lokal reingeschrieben, ich ändere das mal, so habs editiert, und das müsste funktionieren ?
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mi 30.03.05 14:02 
wenn man das nur noch an der reichtigen stelle aufruft schon
beispiel habe ich ja oben gepostet (wo du dir das von gezogen hast)

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 30.03.05 14:13 
schon das 2. mal heute das der explorer nicht abgesendet hat, :evil:

ich hatte das in meine wallhack procedure, ungefähr so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure Pwallhack(mode: glenum); stdcall;
begin
  glPrint(1010'test'00255);
  if wallhack then
    if (mode = GL_TRIANGLE_STRIP) or (mode = GL_TRIANGLE_FAN) then
      glDisable(GL_DEPTH_TEST) else
        glEnable(GL_DEPTH_TEST);
end;


wird das denn nich so bei jedem glBegin aufgerufen ? ist das schlimm ?

//du benutzt glprint garnet in deinem l0ry :?
pallep Threadstarter
Hält's aus hier
Beiträge: 3


D7
BeitragVerfasst: Do 31.03.05 17:41 
F34r0fTh3D4rk:Du musst das LoadIdentity rausnehmen, dann klappts !! Haben wir auch probiert und hingekriegt !

Und an alle: Vielen Dank erst einmal für die super Hilfe ! Wir haben jetzt (danke dem Link von uall@ogc) hinbekommen, Text anzuzeigen.
Nur eine Frage noch: Wir haben, wie gesagt, den Quelltext genutzt, den uall@ogc gepostet hat. Das funktionierte nachdem wir das LoadIdentity raus genommen hatten auch. Jetzt würden wir nur gerne den Text etwas kleiner machen. Gibt es da eine Möglichkeit, die nicht allzu aufwendig ist ?
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 31.03.05 17:59 
das loadidentitiy hat schon seinen sinn wenn das an der reichtigen stelle benutzt wird
text kanst du leider nicht kleiner machen aber ich schau mal eben schnell ob nen source finde wo man dynamischen text ausgeben kann

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 31.03.05 18:09 
ausblenden volle Höhe Delphi-Quelltext
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:
procedure BuildFont; // create font
var font, oldfont: hfont;
begin
  hdc := oldwglgetcurrentdc;
  base := oldglGenLists(96);
  font := CreateFont(14 , 000, FW_NORMAL, 000, ANSI_CHARSET, OUT_TT_PRECIS,
                     CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FF_DONTCARE or DEFAULT_PITCH,'Arial');
  oldfont := SelectObject(hDc, font);
  oldwglUseFontBitmaps(hDc, 3296, base);
  SelectObject(hDc, oldfont);
  DeleteObject(font);
end;

procedure glPrint(bs: integer; s: pchar); // draw text
begin
//  oldglPushAttrib($00020000);
  oldglListBase(bs - 32);
  oldglCallLists(length(s), $1401, s);
//  oldglPopAttrib;
end;

procedure DrawMenuText(x, y, bs: integer; s: pchar; red, green, blue: single); // draw menu text
var curcol: array[0..3of single;     // save color
begin
  oldglGetFloatv($0B00, @curcol);    // get current color
  oldglColor4f(0.30.30.31);    // set gray color
  oldglRasterPos2f(x+1, y);          // set text coord
  glPrint(bs,s);                     // print text
  oldglColor4f(red,green,blue,1);    // set new color
  oldglRasterPos2f(x,y);             // set text coord
  glPrint(bs,s);                     // draw colored text
  oldglColor4f(curcol[0], curcol[1], curcol[2], curcol[3]); // set old color
end;


und @ FearOfTheDark bitte lern erstmal bisl opengl, so wie du das machst verstößt das gegen alle regeln von opengl, da kann ich dir auch net helfen musst dich bisl selbst informieren

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Do 31.03.05 18:15 
gegen welche denn ? :?
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 31.03.05 18:16 
opengl lernen dann weißt das :)

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Fr 01.04.05 06:38 
@uall@ogc: Warum heißen denn dein OpenGL Befehle so komisch??

@pallep: In meinem Ersten Post habe ich eine Unit namens glText erwähnt. Die kann das alles was ihr seit Anfang an wollt. Im Endeffekt arbeit sie ähnlich wie der letzt Code von uall@ogc halt nur Objekt Orientiert. Und bietet somit mehr dynamik.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 01.04.05 16:28 
die heißenso komishc wiel ich sie selbst importiere und gegebenfalls hooke

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit