Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Ihr habt schon etwas von glBMP.pas gehört.
Zitat:
//****************************************************************************** // // Author : Jason Allen // Email : jra101@home.com // Website : delphigl.cfxweb.net // Description : Image loading class. Loads JPG's, PNG's, TGA's and windows // bitmaps. PNG loading requires the libPNG library and DLL. // // Use : image : TGLBMP; // Declaration // image := TGLBMP.Create(); // Initialization // image := TGLBMP.Create('a.bmp'); // Initialize and load an image // // image.LoadImage('a.bmp'); // Load a BMP (*.BMP) from disk // image.LoadImage('a.jpg'); // Load a JPG (*.JPG) from disk // image.LoadImage('b.png'); // Load a PNG (*.PNG) from disk // image.LoadImage('b.tga'); // Load a TGA (*.TGA) from disk // // image.GenTexture(); // Generate an OpenGL texture // // using loaded image data // image.Invert(); // Invert image color data // image.FlipHorz(); // Flips image horizontally // image.FlipVert(); // Flips image vertically // image.Rotate90(); // Rotate image 90 degrees // // image.SaveScreen('screen.bmp'); // Save bmp screenshot // image.SaveScreen('screen.jpg'); // Save jpg screenshot // image.SaveScreen('screen.png'); // Save png screenshot // image.SaveScreen('screen.tga'); // Save tga screenshot // image.SaveScreen(); // Save screenshot to memory // // Properties : Bits // Pointer to loaded image data // Width // Loaded image width // Height // Loaded image height // ColorDepth // Loaded image color depth // TextureID // Texture ID for OpenGL texture generated by // // calling GenTexture after loading an image // //******************************************************************************
Ich wollte nur fragen nutzt das jemand, und wenn ja wie bringt man es zum funktionieren, denn es geht einfach nicht bei mir. Es gibt zwar keine Fehlermeldung aber auch keine Textur Es liegt einfach an dieser Unit, wenn ich andere Laderutinen benutze dann klapt es (das ist die einziege Änderung die ich vornehme).
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Also du brauchst uns nicht den ganzen Header posten, den glBMP kennen wir schon Aber gib uns mal bitte ein paar mehr Anhaltspunkte, zB wie du die Textur lädtst und dann an die Polygone bindest.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
So direkt kann ich da nichts falsches entdecken. Kanns jetzt aber auch nicht ausprobieren. Allerdings solltest du am Anfang deiner Displaylist noch einmal Image.Bind aufrufen. Oder halt vor dem Aufruf der DL.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Zitat:
Allerdings solltest du am Anfang deiner Displaylist noch einmal Image.Bind aufrufen. Oder halt vor dem Aufruf der DL.
Nein, das funktioniert nicht. Ich habe das in meiner verzweiflung schon gemacht. Auserdem, wenn ich eine andere Laderrutiene benutze, dann geht alles genauso wie ich es schon gepostet habe, also ich binde die Textur nicht jedesmal, sondern nur einmal , nachdem ich es geladen habe. Es geht immerhin um eine einzige Textur.
ENGLISH :
I have already tried and it does not work. Something with the unit is wrong. Everything works just fine if i use some other loading procedure.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Benutz mal bitte das Pascaltag (in der Liste ganz Rechts) um Quellcode darzustellen. Das macht das alles wesentlich lesbarer. Danke.
Also das finde ich äußerst merkwürdig, dass bei dir solche komischen Sachen passieren. Es ist ja nicht Sinn und Zweck eines Loaders, dass du die Textur von Hand erstellen musst. Ich persönlich habe auch schon mit der glBMP gearbeitet und da hatte es immer funktioniert. Ich kann das Problem also nicht ganz nachvollziehen.
Aber versuche mal bitte folgendes. Downloade mal meinen Loader und binde diesen in dein Projekt ein. Zusätzlich kommentierst du alles aus was momentan zu einem anderen Loader gehört. Also auch die Units die du oben eingebunden hast.
Laden geht wie folgt.
Code:
var
tex: TglBitmap2D;
begin
tex := TglBitmap2D.Create;
tex.LoadFromFile('blub.bmp');
tex.GenTexture;
end;
Auch wenn du nur eine Textur benutzt solltest du sie bei jedem Bild rendern. Wer weiß schon genau wann, wie und warum die gebundene Textur entbunden wird. Sollte normal nicht der Fall sein aber wetten würde ich darauf aber auch nicht. Und bei diversen komischen OpenGL implementationen würde ich lieber auf Nummer sicher gehen. Von der Geschwindigkeit brauchst du dir da auch gar keinen Kopf zu machen. Gebunden wird natürlich mit tex.Bind;
Also so drüber nachgedacht habe ich wage Vermutung warum die glBMP nicht geht. Du meintest ja, dass die Textures ging, oder? Ich meine die glBMP benutzt standardmäßig die OpenGL12.pas von Mike Lischke. Solltest du die irgendwo mit hinkopiert haben kann es sein, dass die glBMP auf nicht initialisierte Pointer zugreift. Was eigentlich in eine Access Violation enden sollte. Aber egal. versuch einfach mal meinen Loader und entferne (auskommentieren) mal alles was mit OpenGL zu tun hat aber nicht dglOpenGL oder glBitmap heißt.
PS: Normal sollte es nicht nötig sein sein den Adresspointer der Methode wglSwapIntervalEXT von Hand ladeb zu müssen. (wglGetProcAddress('wglSwapIntervalEXT');)
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.