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

Aktuelle Zeit: Mi Mai 15, 2024 00:19

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Mai 05, 2012 20:21 
Offline
DGL Member

Registriert: Sa Mai 05, 2012 19:44
Beiträge: 3
Wohnort: Almelo (Niederlande)
Programmiersprache: delphi7
Ha Leute,

Ich bin ganz neu zo OpenGl, aber programmiere schon einige Jahre Delphi

Ich habe von http://wiki.delphigl.com/index.php/DGLSDK die SDK herrunter geladen und installiert.
Danach habe ich ein par einsteiger Tutorials 1 bis 4 gemacht, und bisher ging das ganz gut.

Seit heute aber gibt mir Delphi in dglOpenGL.pas eine Fehlermeldung und zwar schon bein initialisieren von GL.

Beim durchlaufen der folgende procedure tretet dieser Fehler auf:

Code:
  1. var
  2.   DC, RC:HDC;
  3.  
  4. procedure TForm1.FormCreate(Sender: TObject);
  5. begin
  6.   DC:=GetDC(Handle);
  7.   RC:=CreateRenderingContext(DC,          //Device Contest
  8.                              [opDoubleBuffered], //Optionen
  9.                              32,          //ColorBits
  10.                              24,          //ZBits
  11.                              0,           //StencilBits
  12.                              0,           //AccumBits
  13.                              0,           //AuxBuffers
  14.                              0);          //Layer
  15.   ActivateRenderingContext(DC, RC);
  16. end;

Der Fehler tretet auf in wenn ActivateRenderingContext angerufen wird.

Die meldung läutet: Project Minimaal.exe raised exeption class ERangeError with message 'Range check error'.
(wobei Minimaal.exe der name meines Programs ist)


Delphi pausiert dann in der Procedure ReadImplementationProperties;

an der Seile:
Code:
  1. while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
  2.             Dec(Separator);



Wenn ich dieser fehler ignoriere und 'Run' clicke tretet sie nogmals auf,
Wenn ich sie dann aber wieder ignoriere startet mein Program und kann dann OpenGl gebrauchen als wär nichts geshehen.

Kann mir Einer sagen was hier los ist?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Mai 06, 2012 10:26 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Lad dir mal bitte den aktuellsten Header : http://wiki.delphigl.com/index.php/dglOpenGL

Der im SDK ist afaik veraltet, und probier es mal damit. Und setz ggf. auch mal bitte (siehe readme) ein InitOpenGL an den Anfang. Wichtig wären dann, wenns weiterhin nicht funktioniert, welche IDE, welcher Treiber, und welches OS.

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Mai 06, 2012 11:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Bitte achte auf deine Formatierung und Rechtschreibung. Liest sich nicht allzu gut. Ich habe außerdem [code]-Tags in deinen Post eingefügt, mach das das nächste mal bitte selbst (du kannst deinen Post editieren, um zu sehen, wie die funktionieren).

Der Fehler ist offensichtlich in deiner while-Schleife. Ich weiß ja nicht wie du Separator initialisierst, aber das sieht mir arg so aus, als ob du über die Grenzen von Buffer (was ist das?) liest.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Mai 06, 2012 15:14 
Offline
DGL Member

Registriert: Sa Mai 05, 2012 19:44
Beiträge: 3
Wohnort: Almelo (Niederlande)
Programmiersprache: delphi7
@Sascha:

Danke, dass war's. Mit diese neuere Version läuft alles ohne Fehler.

@Lord Horazont:

Ich werde mir darum bemühen bessere Tekste zu liefern.

Die while-Schleife ist überigens nicht von mir. Sie steht in die veraltete dglOpenGl.pas

Ich grüsse euch

JB


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Mai 06, 2012 15:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
jbal hat geschrieben:
Ich werde mir darum bemühen bessere Tekste zu liefern.

Sehe gerade erst das „Niederlande“ in deinem Profil. Würde dir daher empfehlen, vielleicht eine Rechtschreibprüfung zu verwenden, um zumindest die groben Fehler rauszufiltern um es etwas lesbarer zu machen.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Jun 15, 2012 10:40 
Offline
DGL Member

Registriert: Sa Mai 05, 2012 19:44
Beiträge: 3
Wohnort: Almelo (Niederlande)
Programmiersprache: delphi7
Ein paar Wochen ging’s ganz gut. Aber dann trat der Fehler wider auf und zwar an derselben stelle.
Ich habe dglOpengl.pas mit der volgende Signatur:

OpenGL 4.2 - Headertranslation
Version 4.2a
Date : 26.11.2011

Dass sollte doch die neuste Version sein (oder vielleicht nicht?);
Ich hab eine andere Lösung zu diesem Problem gefunden:

In der Zeile:
Code:
  1. 1.  while (Separator > 0) and (AnsiChar(Buffer[Separator]) in ['0'..'9']) do
  2. 2.              Dec(Separator);

Kann 'Seperator’ null werden in der Gleichung, und gerade dass ist dass Problem.
Anstelle dieser Zeile kommt jetzt:
Code:
  1. 1.  while (Separator > 0) do
  2. 2.      if (Buffer[Separator] in ['0'..'9'])
  3. 3.        then Dec(Separator);
  4. 4.      else
  5. 5.        break;


Siehe auch: http://www.delphigl.com/forum/viewtopic.php?f=19&t=2207

Und alles läuft prima.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Jun 15, 2012 17:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zwei Sachen...

Erstens :
Bugs bitte in den Thread zu unserem Header, da hat seit 2010 niemand mehr ein Problem gepostet. Momentan bin ich der einzige aktive Maintainer, wenn also irgendwo Bugs in unserem Header in nem Thread versteckt sind den ich nicht lese, kommen die nie ans Tageslicht.

Zweitens :
EWeiss hat geschrieben:
Es gibt leider einige probleme mit der dglOpenGL Multisample wird überhaupt nicht unterstützt
vielleicht hat niemand mehr die zeit den Header zu optimieren ;)


Gehört genauso in obigen Thread. Ich hör davon jetzt zum ersten mal und hätt ich das Thema hier nicht zufällig abonniert wüsst ich davon nix. Und ausserdem beschreib mal bitte dein Problem genau? Hunderte (oder tausende) nutzen AA mit unseren Headern (inkl. mir) und haben damit keine Probleme. Zumal unser Header doch garkein Multisampling macht, sondern nur die entsprechenden Funktionen zur Verfügung stellt, also der User selbst AA (MSAA z.B.) implementieren muss. Wie kann unser Header da also sowas "nicht unterstützen" was doch OpenGL-Funktionalität ist und viel User selbst problemlos implementiert haben und nutzen? Sollte es wirklich ein Bug in unserem Header sein (z.B. in den Funktionsdeklarationen zu den Funktionen die für (MS)AA benötigt werden) dann bitte mit möglichst genauer Beschreibung in obigen Thread.

P.S. : Der Header ist immer aktuell und getestet, ich mach dass dann in meiner privaten Freizeit, nachdem ich 8h (+) auf meiner Arbeit Delphi gecoded hab...

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


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.010s | 14 Queries | GZIP : On ]