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

Aktuelle Zeit: Mi Jul 16, 2025 02:49

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



Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Texture einbinden ?
BeitragVerfasst: Do Mär 02, 2006 12:32 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Hallo,

also folgendes neues Problemchen.
Ich lade derzeit meine Texturen so ( hab ich hier aus dem Forum )

Code:
  1.  
  2. procedure inittextures;
  3. var texture: TTexture;
  4.     ptex: pointer;
  5. begin
  6.   if Form1.rbDay.Checked then
  7.     texture:=ttexture.Load(1,'earth_small.jpg');
  8.   if Form1.rbNight.Checked then
  9.     texture:=ttexture.Load(1,'earth_night.jpg');
  10.   if Form1.rbSandy.Checked then
  11.     texture:=ttexture.Load(1,'DCP00865.JPG');
  12.  
  13.   glBindTexture(GL_TEXTURE_2D, texture.ID); // foo.TextureID
  14.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  15.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  16.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
  17.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
  18.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
  19.   ptex:=texture.pixels;
  20.   glTexImage2D(GL_TEXTURE_2D, 0, 3, texture.width, texture.height,
  21.                            0, GL_RGB, GL_UNSIGNED_BYTE, ptex^);
  22.   texture.Free;
  23.  
  24.   glmatrixmode(gl_texture);
  25.   glRotatef(180, 0.0, 1.0, 0.0);
  26.   glmatrixmode(gl_modelview);
  27.  
  28. end;
  29.  


Man sieht das die Texturen als Datei im Anwendungsverzeichnis vorliegen müsse.
Nun versuche ich die Dateien über eine resource Datei einzubinden und dann über die Resource id oder so zu verwenden.
Leider hab ich damit bisher wenig Erfolg gehabt.

Das erstellen der Res Datei funktioniert. Hab ich ausprobiert.
Hab also ein Bild ( jpg ) in eine res datei gepackt, diese per resource stream geladen und unter einem andern namen wieder gespeicher, so zum testen. Das funktioniert.
Ich weiss aber nicht wie ich das bild jetzt TTexture zuweisen kann oder wie man das machen muss ?

Kann da jemand helfen ?

Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 13:40 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Wir haben dazu einen Artikel Bilder als Ressourcen von Doppelreim im Wiki.
Er benutzt dort aber glBitmap, was ich jetzt auch nicht wirklich als schlimm ansehe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 14:46 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Hallo,

das erachte ich auch nicht als schlimm.
Den Artikel hab ich auch gelesen und falls Du es richtig gelesen hast

var texture: TTexture;

sind die Texturen bei dem beispiel als TTexture angegeben.
Jetzt hatte ich ja schon versucht das mit TglBitmap2D zu machen, weiss aber nicht wie ich dann den Rest machen muss.

Also das hier :

Code:
  1.  
  2.   glBindTexture(GL_TEXTURE_2D, texture.ID); // foo.TextureID
  3.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  4.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  5.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
  6.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
  7.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
  8.   ptex:=texture.pixels;
  9.   glTexImage2D(GL_TEXTURE_2D, 0, 3, texture.width, texture.height,
  10.                            0, GL_RGB, GL_UNSIGNED_BYTE, ptex^);
  11.  


Das mit dem Zeiger, der aber anscheinend für die spherentexturen nötig ist, geht dann nicht mehr.

Also nochmal ... wie muss ich das dann machen ?

Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 15:12 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Ich habe dann dein Problem falsch verstanden.
Ich hoffe meine jetzige Interpretation ist besser:

Du hast das Bild aus der Ressource in dem Speicher geladen und willst dann wissen wie du diese Daten dann in TTexture bekommst?

Dazu muss ich sagen, dass ich TTexture nicht kenne und noch nie davon gehört habe.
Nach dem Quellcode den ich sehe, dekomprimiert es 'nur' die JPG ins das von OpenGL benötigte Format.

Das känntest du alternativ mit SDL_Image machen, dass Daten auch aus dem Speicher annimmt oder wie im folgenden (von Lossy aus Glbitmap loader gestohlenen) Code.
Code:
  1.  
  2.     bmp := TBitmap.Create;
  3.     try
  4.       jpg := TJPEGImage.Create;
  5.       try
  6.         jpg.LoadFromStream(Stream);
  7.         bmp.Assign(jpg);
  8.         Result := AssignFromBitmap(bmp);
  9.       finally
  10.         jpg.Free;
  11.       end;
  12.     finally
  13.       bmp.Free;
  14.     end;
  15.  

Ist für mich zwar etwas mystisch, weil noch nie mit den Komponenten gearbeitet, aber danach solltest du in bmp den Pointer auf die Daten finden können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 15:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Dazu findest du in meiner Signatur einen Link zu einer Dokumentation im Wiki. Aber um das etwas kürzer zu fassen.

Bei der TglBitmap2D bestehen folgende Methoden.
SetWrap(GL_REPEAT, GL_REPEAT); Setzen des Wrap
SetFilter(GL_LINEAR, GL_LINEAR); Setzen der Texturfilterung
Da du so keine MipMaps aktiviert hast solltest du MipMap auf mmNone stellen.

Zum Erzeugen einer Textur musst du dann nur noch GenTexture aufrufen und schon wird intern deine Textur so erzeugt wie du sie haben willst. Binden kannst du sie anschließend mit Bind. Das musst du vorher aber nicht aufrufen. Das passiert alles automatisch.

Was meinst du eigenlich mit spherentexturen?? Meinst du damit Spheremapping?

Wenn du direkt auf die Texturdaten zugreifen möchtest dann wird das derzeit ein bisschen schwierig. Ist aber in 98% der Fälle auch gar nicht notwendig.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 16:59 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Hallo,

also so langsam fang ich an an mir zu zweifeln !
Drück ich mich denn nur so blöd aus oder was ist hier los ??

Also NOCHMAL :

Ich lade derzeit meine Texturen so :

Code:
  1.  
  2. procedure inittextures;
  3. var texture: TTexture;
  4.     ptex: pointer;
  5. begin
  6.   if Form1.rbDay.Checked then
  7.     texture:=ttexture.Load(1,'earth_small.jpg');// Texture.bmp
  8.   if Form1.rbNight.Checked then
  9.     texture:=ttexture.Load(1,'my_earth_night.jpg');// Texture.bmp
  10.   if Form1.rbSandy.Checked then
  11.     texture:=ttexture.Load(1,'DCP00865.JPG');// Texture.bmp
  12.  
  13.   glBindTexture(GL_TEXTURE_2D, texture.ID); // foo.TextureID
  14.  
  15.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  16.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  17.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_linear);
  18.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_linear);
  19.   glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_modulate);
  20.   ptex:=texture.pixels;
  21.  
  22.   glTexImage2D(GL_TEXTURE_2D, 0, 3, texture.width, texture.height,
  23.                            0, GL_RGB, GL_UNSIGNED_BYTE, ptex^);
  24.  
  25.   texture.Free;
  26. end;
  27.  


Jetzt hab ich diese Texturen, diese Bilder also einfach in eine *.res datei gepackt und ins Programm eingebunden.
Nun möchte ich diese Bilder ( *.jpg) aus der resource laden. Ist das denn so schwer zu verstehen ?

@Lossy eX
Ich hab doch geschrieben das ich mir das schon durchgelesen habe. Wo steht denn da was von aus resourcen laden bzw. wo ist denn dort erklärt wie das gehen soll ???
Wenn ich nicht völlig erblindet bin finde ich da nix !!!

Ich hab folgendes hin und herversucht, nichts geht:

Code:
  1.  
  2. var
  3.   Texture: TGLuint;
  4.  
  5. LoadTexture('myTex\Wall.bmp', Texture, False); // Datei laden
  6.  


da steht das man das so machen müsste :

Code:
  1.  
  2. var
  3.   Texture: TGLuint;
  4.  
  5. LoadTexture('bild.jpg', Texture, True); // Datei laden
  6.  


und wie soll ich dann ( glBindTexture(GL_TEXTURE_2D, texture.ID); )
die ID bekommen ??? Texture.ID geht nicht.

Ich habs auch so versucht :

Texture := TglBitmap2D.Create;

Geht auch nicht weil Type mismatch

dann so :

var
Texture : TglBitmap2D;
begin
Texture := TglBitmap2D.Create;

Geht auch nicht, weil dann wieder LoadTexture nicht geht .

Könntet Ihr mal bitte einen zusammenhängendes Beispiel posten ?

Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 17:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also bitte mal bisl genauer hingucken. Weiter oben hat IONIS einen Artikel gepostet, der beschreibt, wie man was aus resorcen lädt. Da am Ende ist ein Codeschnipsel der sogar Lossys glBitmap.pas benutzt um das Bild rauszuziehen.
Da musst du doch nur noch 1 und 1 zusammenzählen.


Zu deiner Kugel: wenn du gluSphere benutzt hast, kannst du automatisch für die Quadrik Texturkoordinaten generieren lassen (gluQuadricTexture). Wenn du dann eine Textu bindest, und die Kugel mals, dann wird die Textur auf die Kugel gemappt. Wenn du selber die Kugel zeichnest (per hand) dann musst du selber Texturkoordinaten berechnen. (Steht aber mit im Wiki bei dem Beispiel für das manuelle erstellen einer Kugel).

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 17:46 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Hallo,

na eigentlich sollte das doch über Loadtexture gehen hast Du geschrieben ?Ich habs nun durch ewiges hin und herprobieren irgendwie hinbekommen.

Das einzige Problem ist das ich in einer Procedure die Texture lade.
Wenn ich die Texture nun ändern muss, ( weil es nacht wird ) dann rufe ich die gleiche Procedure nochmal auf.
Geht aber dann nicht. also die Texture wechselt nicht.
Hab nun rausgefunden das das mit dem neu laden nicht so funktioniert wie es ein der Wiki steht.
Geht erst nach einem Texture.free;

Wenn ich aber nach texture.bind; die texture wieder freigebe, dann seh ich die auch nicht, also dann ist die Texture nicht mehr auf meiner Erde :-(

Was mach ich da falsch , oder wie macht man das ?

Matthias

Ps.: Dank Euch trotzdem für die Antworten, denn ich habs ja dadurch doch irgendwie rausbekommen.
Also Danke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 18:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich denke gerade ernsthaft darüber nach ob ich in der nächsten glBitmap nicht die LoadMethoden weglassen soll. Die bringen nur Scherereien. Wie man ja jetzt wohl mehr als deutlich sieht.

Matthias: Ich denke mal die Missverständnisse liegen auf beiden Seiten. Aber nur weil man nicht verstanden wird muss man ja nicht verzweifeln. Stell dir mal die ganzen Frauen vor. Die müssten ja dann permanent verzweifelt sein. ;-)

Kleiner sarkastischer Scherz am Rande. Ich kann dir nur dringenst raten die proceduralen Methoden sein zu lassen. Nimm am besten Objekte. Da hast du wesentlich mehr Möglichkeiten. Und dann gilt normal immer, dass eine Textur so lange existiert wie dessen Klasse auch existiert. Solltest du die Klasse mit Free freigeben wird auch die OpenGL Textur gelöscht. Das kann man auch verhindern. Wichtig ist aber, dass du erst eine neue Textur lädst und erstellst wenn du die Andere nicht mehr benötigst. Also bereits alle Flächen damit gerendert wurden.

Und wenn du irgendwann eine neue Textur haben willst dann würde es so aussehen, dass du bei deiner bereits geladenen Instanz einfach LoadFromFile oder sonst etwas machst und diese dann einfach mit GenTexture neu erstellst. Dann wird intern die Textur automatisch freigegeben und neu erstellt. Dass diese dann eine andere ID haben kann spielt keine Rolle, da du ja die Klasse benutzt die es automatisch kappselst.

Texturen kannst du auch manuell mit glDeleteTextures frei geben.

Resourcen: Derzeit gibt es leider keine sinnvolle Möglichkeit Texturen direkt mit der glBitmap zu laden, da die Resourcen leider eine sehr versteckte Komplexibilität aufgewiesen haben. Deswegen wird in dem Beispiel auch ein TResourceStream erstellt aus dem die glBitmap dann lesen kann. Vorerst musst du dich erst einmal damit beknügen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 18:19 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Hallo,

habs jetzt auch mit nem Stream gemacht gehabt.
Bin doch blinnd :-)

Aber folgendes hab ich nicht verstanden, ich erstelle jetzt so die Texturen :

Code:
  1.  
  2. var
  3.    Texture : TglBitmap2D;
  4. .
  5. .
  6. .
  7.  
  8. procedure inittextures;
  9. var
  10.     Stream : TResourceStream;
  11. begin
  12.   Texture := TglBitmap2D.Create;
  13.  
  14.   if Form1.rbDay.Checked then
  15.     Stream := TResourceStream.CreateFromID(hInstance,5,RT_RCDATA);
  16.   if Form1.rbNight.Checked then
  17.     Stream := TResourceStream.CreateFromID(hInstance,6,RT_RCDATA);
  18.   if Form1.rbPathfinder.Checked then
  19.     Stream := TResourceStream.CreateFromID(hInstance,7,RT_RCDATA);
  20.  
  21.   texture.LoadFromStream(stream);
  22.  
  23.   texture.GenTexture;
  24.   texture.Bind();
  25.  
  26.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  27.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  28.  
  29.   glBindTexture(GL_TEXTURE_2D, texture.TextureID);
  30.  
  31.   Stream.Free;
  32. end;
  33. .
  34. .
  35. .
  36. procedure TForm1.rbDayClick(Sender: TObject);
  37. begin
  38.   Texture.Free;
  39.   inittextures;
  40. end;
  41.  
  42. procedure TForm1.rbNightClick(Sender: TObject);
  43. begin
  44.   Texture.free;
  45.   inittextures;
  46. end;
  47.  
  48. procedure TForm1.rbPathfinderClick(Sender: TObject);
  49. begin
  50.   Texture.free;
  51.   inittextures;
  52. end;
  53.  


Ihr seht bevor ich die texturen umschalte gebe ich diese erst wieder frei.
Ohne das geht es nicht.

Hab ich da wieder was falsch verstanden oder müsste das nicht auch ohne ddas freigeben funktionieren ?

Also so :

Code:
  1.  
  2. procedure TForm1.rbPathfinderClick(Sender: TObject);
  3. begin
  4.   inittextures;
  5. end;
  6.  


Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 18:28 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
sollte es, allerdings solltest du dann auch unterschiedliche Variablen für die texturen nehmen und nur die gebundene ändern zum rendern. Hat eh vorteile die texturen nicht ständig neuladen musst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 18:38 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Aha,

das werd ich gleich versuchen ... danke !

Andere sache noch...letzte erst mal :-)

Also meine "Erde" ist ja nun eine Sphere mit dem schönen Bildchen drauf.

Nun hab ich da aber Text ringsrum auszugeben. Der hängt da immer noch so ein bischen in die
Kugel hinein und das ist ... naja, ihr wisst schon.

Ich hab mir also gedacht ich verschieb das ganze etwas nach "links", lass meinen Text ausgeben und verschieb das ganze dann wieder zurück, also auf null.
Geht aber leider wiedermal nicht so einfach wie ich mir das dachte :-)

Das hab ich versucht :

Code:
  1.  
  2. .
  3. .
  4.   Zahlen:=glgenlists(2);
  5.   glNewList(Zahlen, GL_COMPILE_AND_EXECUTE);        
  6. //glPushMatrix;
  7.           glTransLateF(0,0,-7000);
  8.             PrintText(-p[0],p[1],p[2], FloatToStr(lat)+'->'+FloatToStr(lon));
  9.           glTranslateF(0,0,+7000);
  10.         //glPopMatrix;
  11. glEndList;
  12. .
  13. .
  14. .
  15.  


7000....nur zum probieren, damit ich sehe was ich mache :-)

Geht aber nicht. Wie muss ich das denn machen ?

Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 19:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
öhm, dir ist aber schon klar, dass die z-Achse im Normalfall nicht links/rechts, sondern vorne/hinten bestimmt, oder?
Ansonsten hängt das "funktionieren" noch son bisschen davon ab, wie dein printtext arbeitet.

Ach ja und:
Lossy eX hat geschrieben:
Tue bitte uns und dir einen gefallen und erstelle das nächste Mal für Fragen die nicht zum Ursprungsthema passen bitte auch ein neues Thema. Sammelthreads bringen nur Verwirrung und viele (ich teilweise eingeschlossen) schauen sich nicht jeden neuen Beitrag an. Speziell wenn es ein Thema ist was nicht für alle interessant ist. Wenn du ein neues Thema erstellt sind die Fragen klar getrennt und die sprichst auch gleichzeit mehr Leute an.


nicht zu vergessen, dass es auch vorteilhaft wär, fragen die zusammenpassen(textausgabe) auch zusammen in ein topic zu packen und nicht über mehrere topics zu verstreuen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mär 02, 2006 19:31 
Offline
DGL Member

Registriert: So Feb 19, 2006 18:52
Beiträge: 110
Jo machich ....

Matthias


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mär 03, 2006 09:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wenn die Texturen nicht zu groß sind, dann würde es sich wirklich anbieten diese beide zu Laden. Wäre auf jeden Fall die einfachste und schnellste Methode.

Zu deiner Verwirrung sollten wir wohl ein wenig weiter ausholen. Es scheint mir nämlich als, dass da ein bisschen Infos von Nöten wären. Eine Textur in OpenGL wird erstellt (glGenTextures) und damit existiert sie (glDeleteTextures) so lange bis sie oder der Kontext zerstört wird. Mit glTexImage werden Daten zur Textur geladen und sie Initialisiert. Diese Methode kann auch mehrfach aufgerufen werden. Allerdings ist sie dafür nicht die Schnellste, da sie ein bisschen mehr macht als die Textur mit Daten zu füllen.

Aus genau diesem Grund gehe ich bei der glBitmap her und lösche vor einem Generieren (GenTextures) die womoglich schon erstellte Textur. Die Klasse an sich bleibt die selbe auch wenn sie zu grunde liegende Textur komplett ändern kann. Um also den Inhalt einer Textur zu ändern kannst du entweder die Klasse komplett verwerfen oder du kannst sie Weiter benutzen. Die Klasse ist schlau genug um zu wissen was wie wo getan werden muss.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 14 Queries | GZIP : On ]