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

Aktuelle Zeit: Do Jul 17, 2025 19:30

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glBmp vs glBitmap
BeitragVerfasst: Do Mär 03, 2005 13:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Hallo @all,

Ich finde die glBitmap.pas besser als die glBmp.pas (und die textures.pas),
da sie viel mehr Funktionen beinhaltet, und auch übersichtlicher ist.

Also will ich umsteigen von glBmp zu glBitmap.
Ich hatte ein OGl-programm geschrieben was glBmp benutzt.
ich habe es schon versucht umzuschreiben, aber es kommt immer zu
der folgenden exception:

Project Og15.exe raised exception class EAbstractError with message 'Abstract Error'.
Process stopped...


ich benutze die glbitmap V1.17

Ich hab den code mal upgeloaded mit dem Quellcode als textdatei, einmal mit glbmp.pas
und umgeschrieben mit glbitmap.pas in einem Zip.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
http://texelviews.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 14:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ohne mir den Code anzusehen denke ich, dass ich weiß woran es liegt. Auf Grund des Fehlers das einzige was es sein könnte. ;-)

Du benutzt die Klasse TglBitmap oder? Das ist natürlich nicht ganz richtig. In dieser Klasse sind diverse Funktionalitäten implementiert die alle Ableitungen davon benötigen. Aber als eigenständige Klasse ist sie nicht in der Lage auch nur ansatzweise eine sinnvolle Textur zu erzeugen. Eben weil es von Fall zu Fall unterschiedlich ist.

Die Lösung zu deinem Problem. Benutz anstelle der Klasse TglBitmap die Klasse TglBitmap2D. Also die Ableitung für 2 Dimensionale Texturen. Wenn du eine 1 Dimensionale Textur verwenden möchtest, dann solltest du die Klase TglBitmap1D.

PS: Evtl sollte ich in der nächsten Version etwas einbauen um solche Probleme zu vermeiden...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 15:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Jetzt habe ich mir deinen Code doch mal angesehen und habe auch gleich noch was gefunden was so nicht funktionieren kann. Ich denke mal, dass du das bisher noch nicht aufrufst, da es sonst eine Exception gegeben hätte.

Und zwar die Zeile SpaceTex.SetTextureWrap(0, 1);
0 und 1 sind keine gültigen Werte für diese Methode. Gültige Werte sind GL_CLAMP, GL_REPEAT, GL_CLAMP_TO_EDGE und GL_CLAMP_TO_BORDER.

Abgesehen davon hat der Aufruf von SetTextureWrap zu diesem Zeitpunkt keine Auswirkung mehr auf die eigentliche Textur, da diese Werte nur beim Erstellen gesetzt werden. Also bringt es nur etwas, wenn diese Methode vor GenTexture aufgerufen wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 15:41 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
daklariere dein tglbitmap einfach als virtual. dann kannst du sie nicht instanziieren. zumindest afaik.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 15:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Bitte wo soll ich das Virtual hinschreiben?

Virtual kann man nur bei Methoden verwenden und dann hat es einen ganz anderen Sinn.

Sofern man eine Klasse erstellt die noch abstrakte Methode beinhält weißt der Compiler einen mit Warnungen darauf hin. Und wenn man dann immer noch nicht drauf reagiert, dann bekommt man eben den abstrakten Fehler um die Ohren geschmissen. Aber als unerfahreren OOP Entwickler kann man so etwas nicht wissen. Aber dafür gibt es ja Foren wo einem freundliche Entwickler weiterhelfen. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 16:32 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Ich hatte mal irgendwo (ich glaube, es war delphipraxis) gesehen, wie verhindert wird, dass von einer Klasse Instanzen erstellt werden, wenn keine erstellt werden sollen. Dazu wurde AFAIK im constructor Create geprüft, ob Create von einer Tochterklasse aufgerufen wurde. Wenn dem nicht so war, gab es eine Exception, die dem Entwickler klarmachte, dass er nicht von der Elternklasse direkt Instanzen erstellen soll...

Das wäre doch eine Möglichkeit, dass TglBitmap nicht direkt erzeugt wird.

[EDIT] Gefunden: http://www.delphipraxis.net/topic32400_eine+klasse+versiegeln+kein+net.html

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 16:52 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
:oops:

sorry....

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 03, 2005 19:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Frase: So etwas ähnliches dachte ich mir auch schon.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mär 04, 2005 08:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jan 31, 2005 11:02
Beiträge: 432
Wohnort: Rheinlandpfalz
Gut, dann gehts ja.
Danke. jetzt kann ich endlich die bessere glbitmap nutzen. :D

PS: die Zeile mit dem TextureWrap habe ich irgendwoher, ich glaube aus
irgendeinem Beispielprogramm zu Cubemaps, das hatte warscheinlich einen anderen loader benutzt.

PPS: der code ist DER code aus meinem letzten Problem (Textur aus der Textur erstellen), was ich schon angesprochen
hatte mit der dyn. cubemap usw.
vielleicht seht ihr da noch einen anderen weg als mit dem PBuffer. (ist nämlich sehr kompliziert. trotz des guten
Tutorials von SoS.) Wäre schon wenns auch einfacher geht.

_________________
http://texelviews.delphigl.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.023s | 16 Queries | GZIP : On ]