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

Aktuelle Zeit: Do Mär 28, 2024 14:45

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 42 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
BeitragVerfasst: Sa Apr 22, 2017 09:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Hallo mathias,
ich habe mir soeben mal source.zip heruntergeladen und die gröbsten Fehler in Rechtschreibung und Grammatik korrigiert. Jedoch erstmal nur für die ersten vier Kapitel ("Einrichten und Einstieg"). Siehe Anhang.

Inhaltlich sind mir dabei folgende Punkte aufgefallen:
  • Du beginnst dein Tutorial mit der Aussage, dass man in OpenGL 3.3 nicht mehr mit glBegin und glEnd arbeiten könne. Das ist auch richtig, wenn du dich dabei auf das Core Profile beziehst. Im Compatibility Profile – auch mit OpenGL 3.3 – kannst du ohne Probleme mit glBegin und glEnd arbeiten. Im Code zu deinem Tutorial gibst du nicht an, welche Art von Kontext du haben willst. Das ist ein zentraler Punkt, denn dein Tutorial ist eigentlich kein Tutorial für OpenGL 3.3, sondern für OpenGL Core im Allgemeinen. Du schreibst ja richtigerweise selber, dass sich das Wissen ebenso auf höhere OpenGL-Versionen übertragen lässt.
    Das Thema hatten wir hier ja erst kürzlich. Leider kann ich dir nicht sagen, wie man TOpenGLControl die Art des Kontexts vorschreibt und eine kurze Websuche dazu hat ebenfalls nichts zutage gefördert. Daher sind die anderen Pascaler im Forum gefragt: Wie erstellt ihr eure OpenGL-Core-Kontexte? Geht das überhaupt mit TOpenGLControl oder ist eine andere Klasse empfehlenswert?
  • Der Hinweis am Anfang von Kapitel 3 erledigt sich damit. Mit Core-Kontext sollten sich alle Treiber gleich verhalten. Zumal der "original" Intel-Treiber für Linux genau der Mesa-Treiber ist und ich daher bezweifle, dass dieser etwas anderes als Nouveau ausgibt.
  • Mit der Kommentierung von InitScene bin ich nicht ganz einverstanden. glBufferData interessiert sich nicht dafür, welches VAO, gerade gebunden ist, sondern nur für das VBO. glEnableVertexAttribArray aktiviert Vertexattribute, also Eingangsvariablen des Vertexshaders. Als Parameter wird die ID erwartet, die im Verexshader mit layout(location = id) angegeben wird. Letzteres schreibst du auch. Jedoch ist das im Tutorial nicht der Fall! Im Vertexshader setzt du diese nämlich auf 10, im Quellcode benutzt du 0. Außerdem würde ich statt "Index-Parameter" lieber "erster Parameter" schreiben. Sonst muss man erst ins Wiki schauen, welcher Parameter index heißt.
  • Schließlich enthält Kapitel 4 noch einen Fehler. Du versuchst ProgramID, welches du mit glCreateProgram erzeugt hast, mit glDeleteShader freizugeben. Korrekt wäre natürlich glDeleteProgram.

Ich hoffe das hilft dir weiter. Bevor du weiterschreibst, würde ich auf jeden Fall die Fehler im Code korrigieren, bevor du sie in den folgenden Kapiteln wiederholst.


Dateianhänge:
Dateikommentar: Korrigierte Version (enthält nur text.txt und unit1.pas)
einrichten und einstieg.zip [7.55 KiB]
452-mal heruntergeladen

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 22, 2017 12:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich bin auch stark dafür, Compatibility nur am Rande zu erwähnen und sich sonst auf Core zu konzentrieren. Core ist (neben Vulkan) definitiv die Zukunft.

viele Grüße,
Horazont

_________________
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: Sa Apr 22, 2017 20:15 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
ich habe mir soeben mal source.zip heruntergeladen und die gröbsten Fehler in Rechtschreibung und Grammatik korrigiert. Jedoch erstmal nur für die ersten vier Kapitel ("Einrichten und Einstieg"). Siehe Anhang.

Deine Infos bringen mich sicher ein rechtes Stück weiter. Ich werde es morgen genauer angucken. :wink:
Danke, ich werde demnächst mein Code anpassen.
Zitat:
Leider kann ich dir nicht sagen, wie man TOpenGLControl die Art des Kontexts vorschreibt und eine kurze Websuche dazu hat ebenfalls nichts zutage gefördert.

Bei Lazarus, gibt es eine Unit GLext, da findet man mehrmals die Kombination von "3 3 Core" , nur wie aktiviert man es ?
Folgendes habe ich gefunden.
Code:
  1. function Load_GL_version_3_3_CORE: boolean;
  2. var
  3.    dummy: boolean;
  4. begin
  5.      result := true;
  6.      Load_GL_version_3_3x(dummy, result);
  7.   glGetError();  //clear errors for invalid enums
  8. end;


Zitat:
Du versuchst ProgramID, welches du mit glCreateProgram erzeugt hast, mit glDeleteShader freizugeben. Korrekt wäre natürlich glDeleteProgram.

Habe gerade gesehen, das ich dies immer falsch gemacht habe, auch in der Shader-Klasse.
Habe es gerade angepasst. Veröffentlichen tute ich es erst, wen obiges auch noch angepasst ist. :wink:




Zitat:
Ich bin auch stark dafür, Compatibility nur am Rande zu erwähnen und sich sonst auf Core zu konzentrieren. Core ist (neben Vulkan) definitiv die Zukunft.
Dies wäre eigentlich mein Ziel.

_________________
OpenGL


Zuletzt geändert von mathias am Di Apr 25, 2017 17:30, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 23, 2017 17:19 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
So, nun habe ich die Rechtschreibefehler korrigiert. Irgendwie hatte ich recht Mühe mit wen und wenn.
Hier merkt man, das ich in der Schule sehr schlecht in Deutsch war, ein Wunder das es nicht mehr Fehler hatte. :wink:

Irgendwie hatte es in deinem Text komische Wörter gegeben.
Aus gross wurde groß
Sollte dies ein scharfes S sein, wen ja, sowas gibt es bei uns zum Glück in der Schweiz nicht.
Sowas habe ich nicht mal auf der Tastatur.

Nochmals vielen Dank für die Korrekturen.

Zitat:
Leider kann ich dir nicht sagen, wie man TOpenGLControl die Art des Kontexts vorschreibt und eine kurze Websuche dazu hat ebenfalls nichts zutage gefördert. Daher sind die anderen Pascaler im Forum gefragt: Wie erstellt ihr eure OpenGL-Core-Kontexte? Geht das überhaupt mit TOpenGLControl oder ist eine andere Klasse empfehlenswert?

Mir ist da eine Idee gekommen, Ich könnte ein Nachkommen von TOpenGLControl machen, und diesen ins Tutorial einbinden.
Wen man später etwas besseres finde, muss ich dann nur den Nachkommen ändern und nicht das Ganze Tutorial.


Zitat:
Mit der Kommentierung von InitScene bin ich nicht ganz einverstanden. glBufferData interessiert sich nicht dafür, welches VAO, gerade gebunden ist, sondern nur für das VBO. glEnableVertexAttribArray aktiviert Vertexattribute, also Eingangsvariablen des Vertexshaders. Als Parameter wird die ID erwartet, die im Verexshader mit layout(location = id) angegeben wird. Letzteres schreibst du auch. Jedoch ist das im Tutorial nicht der Fall! Im Vertexshader setzt du diese nämlich auf 10, im Quellcode benutzt du 0. Außerdem würde ich statt "Index-Parameter" lieber "erster Parameter" schreiben. Sonst muss man erst ins Wiki schauen, welcher Parameter index heißt.

Dies muss nochmals genauer anschauen.
Im ersten Beispiel ist der Index nicht relevant, da noch gar kein Shader geladen ist. Die Zeile mit Index-Parameter ist falsch geschrieben, mit was soll der übereinstimmen, ist ist noch gar kein Shader gleaden.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 23, 2017 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
mathias hat geschrieben:
Irgendwie hatte es in deinem Text komische Wörter gegeben.
Aus gross wurde groß
Sollte dies ein scharfes S sein, wen ja, sowas gibt es bei uns zum Glück in der Schweiz nicht.
Sowas habe ich nicht mal auf der Tastatur.
Das war Absicht. "ß" ist der HTML-Code für das ß (siehe Wikipedia). Von schweizerdeutsch habe ich keine Ahnung, daher habe ich so korrigiert, wie ich es in der Schule gelernt habe (hochdeutsch). Und da schreibt man groß, nicht gross. :) Ich überlasse es dir, wie du das handhaben willst.

Das mit dem Ableiten einer Kind-Klasse von TOpenGLControl klingt nach einer Lösung. Als Muster könntest du den Wiki-Artikel Tutorial OpenGL3 Zeichenkontext nehmen. SDL2 wäre eine andere Möglichkeit, jedoch auch eine zusätzliche Abhängigkeit. Oder jemand hat noch eine bessere Idee.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 23, 2017 17:44 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Von schweizerdeutsch habe ich keine Ahnung, daher habe ich so korrigiert, wie ich es in der Schule gelernt habe (hochdeutsch).

Siehe: https://de.wikipedia.org/wiki/%C3%9F
Code:
  1. Das ß wird heute ausschließlich beim Schreiben in deutscher Sprache sowie im Niederdeutschen verwendet, allerdings nicht in der Schweiz[5] und Liechtenstein.


Zitat:
SDL2 wäre eine andere Möglichkeit, jedoch auch eine zusätzliche Abhängigkeit.

Genau, auf SDL will ich bewusst verzichten, für SDL müsste man ein extra-Tutorial machen.
Die Installation von SDL ist auch nicht ein Kinderspiel.


PS: Bei meinem letzten Post, hat es noch Ergänzungen gegeben, ich weis nicht ob du diese gesehen hast.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 23, 2017 17:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
mathias hat geschrieben:
Im ersten Beispiel ist der Index nicht relevant, da noch gar kein Shader geladen ist. Die Zeile mit Index-Parameter ist falsch geschrieben, mit was soll der übereinstimmen, ist ist noch gar kein Shader gleaden.
Damit bezog ich mich auf 04 - Erster Shader. Dort wird ein Shader aus der Textdatei Vertexshader.glsl geladen. Der Shader ist nicht auf der HTML-Seite eingebunden, liegt aber im zip. Und in Zeile 2 steht:
Code:
  1. layout (location = 10) in vec3 inPos;

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 23, 2017 19:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
glAwesome hat geschrieben:
mathias hat geschrieben:
Im ersten Beispiel ist der Index nicht relevant, da noch gar kein Shader geladen ist. Die Zeile mit Index-Parameter ist falsch geschrieben, mit was soll der übereinstimmen, ist ist noch gar kein Shader gleaden.
Damit bezog ich mich auf 04 - Erster Shader. Dort wird ein Shader aus der Textdatei Vertexshader.glsl geladen. Der Shader ist nicht auf der HTML-Seite eingebunden, liegt aber im zip. Und in Zeile 2 steht:
Code:
  1. layout (location = 10) in vec3 inPos;

Jetzt habe ich das Problem erkannt. Im vorherigen Tutorial, war der Index 0 und hier war er 10, dies ist natürlich verwirrend.
Ich habe es korrigiert und Index 0 genommen.
Im Kapitel Shader, kann ich gut die 10 stehen lassen, da das Ganze im Detail beschrieben ist.

PS: Hochladen tue ich das Ganze später, sobald ich das mit der OpenGLContext-Klasse angepasst habe. Ob das noch heute ist, weis ich noch nicht. :wink:

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 25, 2017 17:46 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Das mit dem Ableiten einer Kind-Klasse von TOpenGLControl klingt nach einer Lösung. Als Muster könntest du den Wiki-Artikel Tutorial OpenGL3 Zeichenkontext nehmen.

Ich habe jetzt mal folgendes eingebaut, dies sollte mal für den Anfang reichen.
Vielleicht kann man mit deinem Wiki-Link den 3.3 Context erzwingen.
Noch besser wäre es, wen es im TCustomOpenGLControl umstellen könnte.
Was noch eine Idee wäre, das Lazarus-Team direkt fragen.
Der Entwickler der OpenGl-Funktionen heisst "Mattias Gaertner".
Es hat in Lazarus mehrere glxxxContext Units, ich denke diese haben damit etwas zu tun.
Code:
  1. type
  2.   TContext = class(TCustomOpenGLControl)
  3.     constructor Create(TheOwner: TWinControl; AAutoResize: boolean = True; AMajorVersion: integer = 3; AMinorVersion: integer = 3);
  4.   end;
  5.  
  6. implementation
  7.  
  8. constructor TContext.Create(TheOwner: TWinControl; AAutoResize: boolean; AMajorVersion: integer; AMinorVersion: integer);
  9. begin
  10.   inherited Create(TheOwner);
  11.   AutoResizeViewport := AAutoResize;
  12.   OpenGLMajorVersion := AMajorVersion;
  13.   OpenGLMinorVersion := AMinorVersion;
  14.   Align := alClient;
  15.   Parent := TheOwner;
  16. end;

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 25, 2017 18:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Ich verstehe leider nicht, inwiefern der von dir gepostete Code helfen soll. Es geht primär nicht darum, einen 3.3-Kontext zu erzeugen. Das tust du in der jetztigen Fassung des Tutorials bereits. Wichtig ist, dass du einen Core Context erzwingst. Wie das geht, steht in dem verlinkten Wiki-Artikel (dort wird das CONTEXT_FORWARD_COMPATIBLE_BIT gesetzt). Der Code ist allerdings in C. Du müsstest ihn nach Pascal übersetzen und in deine Klasse einbauen.

Edit: Ähm Leute, habe ich was übersehen oder bietet der dglOpenGL.pas-Header die gesuchte Funktion bereits an? CreateRenderingContextVersion() scheint doch genau das richtige zu tun. In der Dokumentation (dglOpenGL.html) ist sogar ein Beispiel dazu.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Zuletzt geändert von glAwesome am Sa Apr 29, 2017 12:04, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Apr 25, 2017 19:04 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Edit: Ähm Leute, habe ich was übersehen oder bietet der dglOpenGL.pas-Header die gesuchte Funktion bereits an? CreateRenderingContextVersion() scheint doch genau das richtige zu tun. In der Dokumentation (dglOpenGL.html) ist sogar ein Beispiel dazu.

Aber leider nur unter Windows.

Zitat:
Ich verstehe leider nicht, inwiefern der von dir gepostete Code helfen soll. Es geht primär nicht darum, einen 3.3-Kontext zu erzeugen. Das tust du in der jetztigen Fassung des Tutorials bereits. Wichtig ist, dass du einen Core Context erzwingst.

Der Sinn meines Code ist, wen ich diesen überall einbinde, so muss ich später nur diesen ändern, wen ich dann weis, wie das mit dem Code geht.
Für die Core-Inizialiation würde es sowieso eine Unit geben.

Nachtrag:
Ich lade grade die aktuelle Version des Tutorials hoch.
Die Kapitel 01 Einrichten und 02 Shader sollten fürs erste fertig sein, ausser der Core Inizialisation.
Kapitel 03 Vertex-Buffer und höher sind in Arbeit.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 29, 2017 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Hallo mathias,
ich habe mir nun das zweite Kapitel zur Korrektur vorgenommen. Dazu ein paar inhaltliche Anmerkungen:
  • Ein Fragmentshader ist tatsächlich auch optional. Man kann zum Beispiel Vertices aus einem VBO nehmen, irgendwelche Berechnungen darauf durchführen und das Ergebnis via Transform-Feedback in ein anderes VBO zurückschreiben. Dazu ist lediglich ein Vertexshader notwendig. Das geht zwar über das Anfängertutorial hinaus, jedoch sollte man nicht schreiben, dass man generell immer einen Fragmentshader bräuchte.
  • In Abschnitt 3 konfrontierst du den Leser das erste Mal mit dem Begriff "Uniform-Variable" (sogar in der Überschrift). Eine kurze Erläuterung, was das eigentlich ist, wäre hier angebracht.
  • In Abschnitt 5 benutzt du zwei Shader – im OpenGL-Jargon eigentlich Programs – die beide den gleichen Vertexshader verwenden. Da könntest du dann eigentlich auch nur eine Datei Vertexshader.glsl benutzen, statt zwei identische Dateien Vertexshader0.glsl und Vertexshader1.glsl zu haben.
  • Im Mandelbrot-Abschnitt nimmst du den Leser zu wenig an die Hand. Auch wenn du die mathematischen Berechnungen nicht im Detail erklären willst/kannst, schreib wenigstens, dass nicht erwartet wird, dass der Leser sie komplett versteht und dass dies lediglich eine Demonstration sein soll, dass auch komplexere Berechnungen im Shader möglich sind. Auch könntest du die Gelegenheit nutzen, um einige GLSL-Eigenheiten zu erklären. Zum Beispiel wird zum ersten Mal eine Variable vom Vertex- zum Fragmentshader weitergereicht. Dabei könntest du erläutern, was es eigentlich mit in und out auf sich hat. Und was ist überhaupt eine Matrix?

Des Weiteren ist mir aufgefallen, dass du häufig keine ganzen Sätze schreibst. Zum Beispiel steht mitten im Text plötzlich: "Timer vor dem Freigeben anhalten." Ich habe das jetzt nicht immer korrigiert, weil es vielleicht beabsichtigter Stil ist. Aber ich fände es schöner mit ganzen Sätzen. Sicherlich eine Geschmacksfrage. :wink:


Dateianhänge:
shader-kapitel.zip [11.27 KiB]
430-mal heruntergeladen

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Apr 30, 2017 20:25 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Nochmals vielen Dank für die Korrekturen und Hinweise.

Ich bin gerade an der neusten Version am Hochladen.
Ich hoffe, das man in Kapitel 1 und 2 keine Fehler mehr findet. :wink:

Zitat:
Des Weiteren ist mir aufgefallen, dass du häufig keine ganzen Sätze schreibst. Zum Beispiel steht mitten im Text plötzlich: "Timer vor dem Freigeben anhalten." Ich habe das jetzt nicht immer korrigiert, weil es vielleicht beabsichtigter Stil ist.

Das liegt daran daran, das ich in Deutsch eine echte Niete war. :oops:
Dann habe ich noch ein Manko, das meine Muttersprache Schweizerdeutsch ist.

Aber deiner Hilfe wird das Tutorial immer besser. :wink:

Zitat:
Zum Beispiel wird zum ersten Mal eine Variable vom Vertex- zum Fragmentshader weitergereicht.

Dies fehlt noch, das muss ich noch nachholen, was das in und out bedeutet.
Bei in und out, denke ich, wäre sogar eine extra Thema besser.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mai 02, 2017 20:05 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
im Kapitel 1 ist noch ein neues Thema hinzu gekommen, "Polygonmodus".

Der Code-Tag ist auch noch verbessert worden, die bei allen Themen.

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Mai 05, 2017 13:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hi Mattias, da du hier so fleißig Tutorial schreibst, hast du dir eigentlich mal überlegt mit zum DGL-Treffen zu kommen? Wäre cool.

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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 42 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 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.095s | 18 Queries | GZIP : On ]