Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 12:20

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Dez 29, 2002 10:55 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
also. ich hab hier das buch "opengl superbible" rumliegen und mach das gerade (hab es gestern in die finger gekriegt..) und ich bin beim ersten (!!) listing. sodele, das wär ja net so schlimm, ist zwar c++ alles aber das is mir wurscht (kann auch c).

ich verwende die gl,glu,glut von delphi3d.net

ich stell mal beide postings rein, also das c++ ding und mein pascal:

Code:
  1.  
  2.  
  3. #include <windows.h>
  4.  
  5. #include <gl/glut.h>
  6.  
  7.  
  8.  
  9. void RenderScene(void){
  10.  
  11.  &nbsp;glClear(GL_COLOR_BUFFER_BIT);
  12.  
  13.  &nbsp;glFlush;
  14.  
  15. }
  16.  
  17.  
  18.  
  19. void SetupRC(void){
  20.  
  21.  &nbsp;glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
  22.  
  23. }
  24.  
  25.  
  26.  
  27. void main(void){
  28.  
  29.  &nbsp;glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  30.  
  31.  &nbsp;glutCreateWindow("Simple");
  32.  
  33.  &nbsp;glutDisplayFunc(RenderScene);
  34.  
  35.  
  36.  
  37.  &nbsp;SetupRC();
  38.  
  39.  &nbsp;glutMainLoop();
  40.  
  41. }
  42.  
  43.  


und das hab ich drauß gemacht:
Code:
  1.  
  2.  
  3. program Project1;
  4.  
  5.  
  6.  
  7. {$ADDTYPE CONSOLE}
  8.  
  9.  
  10.  
  11. uses
  12.  
  13.  &nbsp;Windows, GLUT, GL;
  14.  
  15.  
  16.  
  17. // void renderscene(void)
  18.  
  19. procedure RenderScene;
  20.  
  21. begin
  22.  
  23.  &nbsp;glClear(GL_COLOR_BUFFER_BIT);
  24.  
  25.  &nbsp;glFlush;
  26.  
  27. end;
  28.  
  29.  
  30.  
  31. // void setuprc(void)
  32.  
  33. procedure SetupRC;
  34.  
  35. begin
  36.  
  37.  &nbsp;glClearColor(0.0,0.0,1.0,1.0);
  38.  
  39. end;
  40.  
  41.  
  42.  
  43.  
  44.  
  45. // void main(void)
  46.  
  47. begin
  48.  
  49.  &nbsp;glutInitDisplayMode(GLUT_SINGLE or GLUT_RGB);
  50.  
  51.  &nbsp;glutCreateWindow('SIMPLE');
  52.  
  53.  &nbsp;glutDisplayFunc(RenderScene);
  54.  
  55.  
  56.  
  57.  &nbsp;SetupRC;
  58.  
  59.  &nbsp;glutMainLoop;
  60.  
  61. end.
  62.  
  63.  



okay. soweit so gut.
erstes problem: debugger fehlermeldung bei "glutDisplayFunc(..)":
Inkompatible Typen: "Unterschiede in der Aufrufkonvention"

ich hab dann nachgeschaut, was glutDisplayFunc erwartet und das ist ein TGlutVoidCallback.. BITTE WAS?????????

zweites problem: ich hab die zeile auskommentiert, und dann klappt es. will ich es starten, krieg ich:
Die Anweisung in "0x00000000" verweist auf Speicher in "0x00000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.


was mach ich falsch????? wenn ich das c-programm compile dann funktioniert es wunderbar![/code][/quote]

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 11:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Hi,

ich schätze mal, du wolltest
Code:
  1. {APPTYPE CONSOLE}
  2.  
  3. statt
  4.  
  5. {ADDTYPE CONSOLE}
schreiben, das bemängelt mein Compiler sofort.

Ein TGlutVoidCallback finde ich im Redbook und in der WinSDK direkt nicht, aber wenn du dich auf die Suche machst findest du bestimmt irgendwo was, definiert ist es als procedure.

Zu deinem Progg weiß ich leider auch nichts.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 12:00 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
ja, das war ein schreibfehler hier. in der echten *.pas ist es richtig...

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 12:27 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
die definition von glutDisplayFunc ist


Code:
  1. void glutDisplayFunc(void (*func)(void);


daher hab ich das jetzt in pascal in

Code:
  1. glutDisplayFunc(@RenderScene)


geändert. jetzt kommt zwar keine debuggermeldung mehr, aber die "eigentliche" fehlermeldung ist noch da![/code]

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 12:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
To use these units with OpenGL drivers other than Microsoft's,
you need to manually initialize three DLL libraries. For example:

LoadOpenGL('opengl.dll');
LoadGLu('glu.dll');
LoadGlut('glut.dll'); // Optional


Wenn das da oben dein kompletter Quellcode ist, dann hast du wohl vergessen die Glu-Library zu laden...das wäre dann wohl auch die Fehlerursache.

Natürlich benötigst du auch die in der Readme erwähnten *.dlls, ohne die gehts nicht.Am besten kopierst du diese in dein Programmverzeichnis.

Kleine Bemerkung am Rande : An deiner Stelle würde ich erst gar nicht damit anfangen die GLUT-Library zu benutzen.Die ist relativ alt, wird nicht mehr weiterentwickelt und es gibt weitaus elegantere Methoden (die auch nicht von einer externen dll abhängen) um die Dinge aus der GLUT-Library selbst zu machen!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 12:55 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
hab ich mal eingebaut (allerdings immer mit opengl32.dll, glu32.dll ...) aber gleiche fehlermeldung...

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 29, 2002 14:05 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 29, 2002 10:37
Beiträge: 251
Wohnort: Ulm
okay, die fehlermeldung kommt erst bei ausführen von glutMainLoop();

hmm.

_________________
http://www.rochus.net


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]