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

Aktuelle Zeit: Fr Jul 18, 2025 18:34

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



Ein neues Thema erstellen Auf das Thema antworten  [ 54 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 10:38 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ja spinnt die Welt :wink: ?
Es ist tatsächlich die neue Version, durch einige Optimierungen wurden BaseGraph Pascal Programme ein wenig kleiner.

Das ist der, an sich ja sehr einfache, Code, der bei der Write Funktion aufgerufen wird:
Code:
  1. procedure TFramework.Write(s: String);
  2.  
  3.   var
  4.     x, y: float;
  5.     w, h: float;
  6.     i: integer;
  7.     c: byte;
  8.     fnt: PTexFont;
  9.  
  10.   begin
  11.     if (ActiveFont<Fonts) and (Font[ActiveFont]<>NIL) then
  12.       fnt := Font[ActiveFont]
  13.     else
  14.       exit;
  15.     x := 0;
  16.     y := 0;
  17.     fnt.Tex.Display;
  18.     glBegin(GL_QUADS);
  19.     for i:=1 to Length(s) do begin
  20.       c := Ord(s[i]);
  21.       w := fnt.CharPos[c].x2 - fnt.CharPos[c].x1;
  22.       h := fnt.CharPos[c].y2 - fnt.CharPos[c].y1;
  23.       if c=fnt.CR then begin
  24.         x := 0;
  25.         y := y - h;
  26.       end
  27.       else begin
  28.         glTexCoord2f(fnt.CharPos[c].x1, fnt.CharPos[c].y2);
  29.         glVertex2f(x*fnt.XScale, y*fnt.YScale);
  30.         glTexCoord2f(fnt.CharPos[c].x2, fnt.CharPos[c].y2);
  31.         glVertex2f((x+w)*fnt.XScale, y*fnt.YScale);
  32.         glTexCoord2f(fnt.CharPos[c].x2, fnt.CharPos[c].y1);
  33.         glVertex2f((x+w)*fnt.XScale, (y+h)*fnt.YScale);
  34.         glTexCoord2f(fnt.CharPos[c].x1, fnt.CharPos[c].y1);
  35.         glVertex2f(x*fnt.XScale, (y+h)*fnt.YScale);
  36.         x := x + w;
  37.       end;
  38.     end;
  39.     glEnd;
  40.   end;
  41.  

Und da erklär mir jetzt einer mal, wie es kommt, dass ein Buchstabe anders dargestellt wird, als die anderen...

Ich stehe ehrlich gesagt vor einem Rätsel, zumal ich es selbst nicht reproduzieren kann - darf ich dich eventuell bitten, dass du die Mesa 6.0 Treiber herunterlädst (http://www.basegraph.com/bg/instpack/mesa6.zip) und die DLLs in das selbe Verzeichnis wie Astromine.exe kopierst - wenn es dann mit der Darstellung klappt, weiß ich wenigstens, dass es tatsächlich am Treiber liegt, und nicht etwa (z.B.) die Fonttextur oder Characterinformationen falsch entpackt werden (was ja durchaus sein könnte, da es in der BGP IDE klappt (?) ).

Schön wäre es, wenn vielleicht noch andere Feedback geben könnten, ob AstroMine auf ihrem Rechner funktioniert.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ich habe jetzt mal die Ressourcenverwaltung etwas bereinigt, sodass Dateien die ins temporäre Anwendungsverzeichnis geschrieben werden explizit ein eigenes Verzeichnis anlegen (aus $ + Anwendungsnamen generiert, sodass es garantiert keine Interaktion mit irgendetwas anderem geben sollte), welches beim Beenden der Anwendung auch wieder gelöscht wird (nicht dass irgendeine Datei da drinnen liegt, die einer anderen Anwendung gehört und einer BaseGraph Pascal Anwendung dazwischenfunkt).

Falls dies tatsächlich das Problem gewesen sein sollte, müsste http://members.chello.at/martinscad/AstroMineTest.zip jetzt immer funktionieren.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 13:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hab das ganze mal mit glIntercept laufen lassen, und die gliLog.txt hat u.a. folgendes zu sagen, egal ob die Schrift korrekt oder falsch dargestellt wird :
Code:
  1. GL Intercept Log. Version : 0.2    Compile Date: Feb 23 2004    Run on: Sat Apr 03 14:21:00 2004
  2.  
  3. ===================================================
  4. GL ERROR - Function glTexParameteri generated error 0x501
  5. GL ERROR - Function glTexParameteri generated error 0x501
  6. GLDriver - Shutdown - Current OpenGL context 0x20000?
  7. GLDriver - Shutdown - Outstanding OpenGL context 0x20000 ?
  8. ImageManager::Destructor - Texture id 1 is still active. (Texture Memory leak?)
  9. ===================================================
  10. Log End.


Die Sache mit den roten Quads konnte ich trotz der knapp 20 Starts nicht nachvollziehen, aber sobald das wieder passiert poste ich mal das was glIntercept abgefangen hat, evtl. hilft das.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 15:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Hmm, da habe ich jetzt einen bestimmten Verdacht:
für Fonttexturen verwendete ich ich (aus einem nicht mehr aktuellen Grund) GL_CLAMP für die WrapS und WrapT Parameter. ü ist ausserdem den einzige Buchstabe der verwendeten Strings, der in der Fonttextur am Rand liegt (unterer Rand).
Ich habe jetzt mal auch für Fonttexture GL_REPEAT eingestellt (was ansonsten ja Standard ist) - es würde mich doch sehr interessieren ob es jetzt klappt (http://members.chello.at/martinscad/AstroMineTest.zip ist bereits upgedated) - sollte es jetzt funktionieren, hat der ATI Treiber offensichtlich Probleme mit GL_CLAMP, denn die in diesem Fall gesendeten glTexParameteri Befehle sind folgende:

Code:
  1.  
  2.     glTexParameteri(texTarget, GL_TEXTURE_MIN_FILTER, texMinFilter); // filter for pixels > texels
  3.     glTexParameteri(texTarget, GL_TEXTURE_MAG_FILTER, texMagFilter); // filter for pixels < texels
  4.     glTexParameteri(texTarget, GL_TEXTURE_WRAP_S, t2dWrapS); // wrap texture s parameter
  5.     glTexParameteri(texTarget, GL_TEXTURE_WRAP_T, t2dWrapT); // wrap texture t parameter
  6.  

und am Filter kann es nicht liegen, da texMinFilter und texMagFilter beide auf GL_LINEAR gesetzt sind.

OpenGL Ressourcen gebe ich in erstellten BaseGraph Pascal Programmen beim Beenden absichtlich nicht automatisch frei, da dies ohnehin beim Zerstören des Renderkontextes geschieht - das ist insofern in Ordnung.
[/code]

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 03, 2004 16:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Hmm, ich habe mir jetzt selbst glIntercept heruntergeladen (ist ja ein schuftiges Programm :wink: ) - und ebenfalls die OpenGL Fehler bekommen.
Dem bin ich dann nachgegangen, und habe folgenden kleinen Bug gefunden: wenn ein 2D-Texturobjekt generiert wird, werden schon mal die Texturparameter hineinkompiliert, auch wenn noch gar keine Bitmapdaten vorhanden sind - unter anderem:

Code:
  1.  
  2.       if GL_12 then
  3.         glTexParameteri(texTarget, GL_TEXTURE_MAX_LEVEL, t2dImages-1);
  4.  


was natürlich nicht toll ist, wenn t2dImages 0 ist - allerdings sollte es nichts ausmachen, da die richtige Anzahl der Mipmapstufen nachgeliefert wird, sobald die Bitmapdaten vorliegen.
Jedenfalls habe ich den Code jetzt durch

Code:
  1.       if GL_12 and (t2dImages>0) then
  2.         glTexParameteri(texTarget, GL_TEXTURE_MAX_LEVEL, t2dImages-1);
  3.  


ersetzt und glIntercept liefert keine Fehler mehr - theoretisch sollte dies aber keine Auswirkungen auf das Programm haben.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 22, 2004 22:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
hallo, wollte nur kurz anmerken, dass es für delphi eine komponente gibt, die das einbinden von chm-helpfiles relativ einfach macht, ohne das man direkt auf die api zugreifen muss. funktioniert aber auch mit normalen files.

würd die komponente ja gleich mit anhängen, doch ist insgesamt (als zip) knapp 600 kb groß, daher gehts leider ne so, aber wenn de mir sagst, welche delphiver. du hast, kann ich den rest rauschmeissen, dann sollte es evtl. funzen.

Edit : Die komponenten heißt AVHComp .. so als hinweis, evtl. kennts ja jemand.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 23, 2004 19:00 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Danke für den Hinweis - fairerweise muss ich sagen, dass ich durchaus ebenfalls Komponenten für HTML Help gefunden habe, aber etwas eigen bin, was die Verwendung von Fremdkomponenten in eigenem Code betrifft, und dies praktisch nur dann mache, wenn
a) der komplette Source als Open Source vorliegt und
b) Komponenten wirklich nur dann verwende, wenn es absolut nicht vermeiden lässt, weil es den Aufwand nicht rechtfertigen würde, etwas ähnliches selbst zu programmieren (wie z.B. SynEdit und uPS), ich mir aber eine entsprechende Lösung für meine Programme einbilde.

Das Helpmaker Projekt (von dem AVHComp eigentlich ein Teil ist) http://sourceforge.net/project/showfiles.php?group_id=85113 macht aber einen guten Eindruck, und dürfte vor allem auch ein recht gutes Content Creation Tool sein, wenn man nicht unbedingt direkt auf HTML aufsetzen möchte.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 28, 2004 13:29 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Habe es mir vor ein paar Tagen heruntergeladen, und muss sagen: Sieht mordsprofessionell aus! Funktioniert auch fast alles.

Kritik:
- einige Beispiele funktionieren nicht: Movementcollision,glusphere(was ist type mismatch?,gltext(invalid number of parameters).
- Hilfesystem, sagen wir mal, unausgereift(nur englisch, funktionen tlw. gar nicht dokumentiert, fehler).
- Englisch/deutsch nicht voll funktionsfähig(konfigurationstool!)

Kann aber auch sein, dass das nur mein PC ist, wenn sonst niemand diese probleme hat!

Welcher Befehl/welche Funktion entspricht "Projektdaten entfernen"? Ich würde es so einstellen, dass sie entfernt werden, wenn der user nicht etwas anderes sagt!


Ansonsten: Im Grund das, was ich immer gesucht habe! :lol: :lol: :lol: :lol: [/list][/list]

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 01, 2004 14:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Projektdaten entfernen hat zur Zeit keinen entsprechenden Befehl in BaseGraph Pascal. Da BaseGraph Pascal auch als Skriptsprache in Carad eingebunden ist, möchte ich Daten beim Beenden eines Programmes nicht automatisch entfernen lassen, zumal Szenen ja auch aus Carad übernommen werden können - das ist auch der Grund weshalb der Befehl nicht in BGP exportiert wurde, da oft ein Teil der Objekte nicht im Programm erstellt, sondern bereits fix und fertig übernommen werden wird. Von daher macht es Sinn eine eigene "Finalize" Routine zu schreiben, welche nur die Daten freigibt, die auch tatsächlich im Programm übernommen wurden.

Der Fehler in glText liegt darin, dass ich in der letzten Version vergessen habe, das Schlüsselwort "AnsiString" durch "String" zu ersetzen - Strings sind in BGP immer AnsiStrings, deshalb gibt es das entsprechende Schlüsselwort dort nicht. Außerdem wurde die Verwaltung von Zeigern etwas geändert (die ja direkt von uPS nicht unterstützt werden), von daher kann es sein, dass einige Beispiele nicht funktionieren - wird im nächsten Update behoben.

Zur Dokumentation von BaseGraph: die wird es auch nur auf Englisch geben, da es eine Heidenarbeit ist, die ganze API zu dokumentieren - auch wenn mir ein großer Teil der Arbeit von PasDoc abgenommen wird.

Lokalisation: Noch so ein zeitaufwändiges Konstrukt, dessen Verwaltung mich eher weniger interessiert :wink: . Funktionsfähig ist die Umschaltung schon, allerdings werden einige Teile erst nach und nach eingebaut.

Auf jeden Fall Danke für das Feedback, auch wenn ich keine schnelle Lösung für eine zweisprachige, vollständige Dokumentation oder eine durchgängige Lokalisation (das noch eher, da sich hier der Aufwand in Grenzen hält) bieten kann.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


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


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.008s | 14 Queries | GZIP : On ]