AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [Andorra] GUI wird nicht richtig dargestellt
Thema durchsuchen
Ansicht
Themen-Optionen

[Andorra] GUI wird nicht richtig dargestellt

Offene Frage von "Codewalker"
Ein Thema von Codewalker · begonnen am 2. Sep 2008 · letzter Beitrag vom 7. Sep 2008
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

[Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 15:36
Ich habe mit dem GUI-Editor von Andorra eine GUI erstellt und zeige diese an. Leider entspricht die Darstellung im Spiel nicht der im Editor. Die Kanten bei den CheckBoxen beispielsweise sehen sehr ausgefranst aus. Woran kann es liegen?
Die GUI erstelle ich mit folgendem Code:

Delphi-Quellcode:
 EditFieldGUI:=TAdGUI.Create(Canvas);
 EditFieldGUI.Skin.LoadFromFile('sunna.axs');
 EditFieldGUI.Cursors.LoadFromFile('cursors.xml');
 EditFieldGUI.LoadFromFile('FieldEditor.axg');
und im Idle
    EditFieldGUI.Update(TimeGap); Anbei ein Screenshot, der das Problem ein wenig mehr verdeutlicht.
Miniaturansicht angehängter Grafiken
gui_292.jpg  
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 15:49
Hm, welches Grafikplugin verwendest du in deiner Anwendung? OpenGL wie im Editor?
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#3

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 15:57
Nein, ich nehme das DirectX9-Plugin. Die Einstellungen habe ich mal angehangen.
Wenn ich das OGL-Plugin nehme, sehe ich sinnigerweise nur noch den Hintergrund (kein Spielfeld oder andere Sprites) und der Text ist überhaupt nicht mehr zu lesen (unten links im Bild).

Ich hänge auch mal zwei volle Screenshots an, einmal mit OpenGL und einmal mit DirectX

Edit: Screenshots sind nicht korrekt ich mache neue
Edit2: Neue Screenshots angehangen
Miniaturansicht angehängter Grafiken
settings_177.jpg   directx_682.jpg   ogl_546.jpg  
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 16:22
Das ist natürlich interessant. Theoretisch sollten keine so gravierenden Unterschiede beim Wechseln des Plugins auftreten. Wenn du willst könntest du mir entweder mal dein gesamtes Projekt zukommen lassen oder eine Anwendung basteln, die den Fehler mit den plötzlich fehlenden Elementen rekonstruiert.

Zu deinem eigentlichen Anliegen: Diesen Fehler habe ich jetzt schon öfters geschildert bekommen - ich habe aber keine Ahnung woran es liegen könnte. Es scheint, als ob die Vertices oder deren Texturkoordinaten irgendwie deformiert sind. Falls du irgendwelche Einstellungen für deine Grafikkarte gemacht hast, stelle diese mal komplett zurück (Antialias, Filtering etc.).

Edit: Hier hat jemand ein ähnliches Problem. http://www.eggheadcafe.com/forumarch...st23437466.asp

Die Antwort darauf:
Zitat:
It looks like you are rendering multiple sprites from a single texture,
correct? This can result in artifacts where pixels from an adjacent sprite
get blended into the sprite at the borders. Subtracting 0.5 from your X and
Y coordinates can eliminate this when rendering at 1:1 scale, but the
problem gets more complicated if you want to apply arbitrary scaling to the
sprites.

I would recommend surrounding each sprite with an pixel on each side that
repeats the adjacent sprite pixels, and using texture coordinates that don't
include these pixels - this technique, called "gutters", will mean that if a
pixel outside the texture coordinate range is interpolated into any pixel
value it won't show up as an artifact.

--

Robert Dunlop
The X-Zone
http://www.directxzone.com/
Microsoft DirectX MVP
Edit2: Oder hier: http://msdn.microsoft.com/en-us/library/bb147229(VS.85).aspx
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#5

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 16:27
Grafikkarte ist auf Standardeinstellungen weil der Rechner frisch neu aufgesetzt ist.
Hm, ich sehe mal zu, was ich mit dem Projekt hinkriege...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#6

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 16:38
Soweit ich den Link aus deinem zweiten Edit und die MSDN richtig verstehe, könnte man das Problem umgehen, indem man den Magnification filter auf Linear setzt. Hast du das schon ausprobiert? (in Bezug auf ungeahnte Nebenwirkungen?)

Edit: Args, sollte ein Edit und kein Push werden. Ich brauch dringend mehr Kaffee.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#7

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 16:42
Füge einfach mal bei AdSkin.TAdSkinItem.Create nach dem erzeugen von FImages folgende Zeile ein:
FImages.Filter := atLinear;
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#8

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 2. Sep 2008, 16:45
hm, ich muss Dich leider enttäuschen. Die GUI sieht noch genauso aus und im Gegenzug ist meine Spiellandschaft verschwunden
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#9

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 7. Sep 2008, 21:14
Komisch... Dein Code würde mich wirklich mal interessieren. Ich arbeite gerade auch an einem Tile-Basierten spiel mit der SpriteEngineEx und habe hinsichtlich der Darstellungsfehler ähnliche Probleme wie du.

Schau mal was passiert wenn du die folgende Routine in AdDraws.pas austauschst:

Delphi-Quellcode:
procedure TAdCustomImage.SetSrcRegion;
var
  texw, texh: integer;
  rectw, recth: integer;
  mat: TAdMatrix;

const
  add = 0.5;
  
begin
  texw := Texture.Texture.Width;
  texh := Texture.Texture.Height;

  rectw := FSrcRect.Right - FSrcRect.Left;
  recth := FSrcRect.Bottom - FSrcRect.Top;

  mat := AdMatrix_Identity;

  //Scale the texture
  mat[0,0] := (rectw) / texw;
  mat[1,1] := (recth) / texh;

  //Translate the texture
  mat[2,0] := (FSrcRect.Left + add) / texw;
  mat[2,1] := (FSrcRect.Top + add) / texh;

  AdMesh.TextureMatrix := mat;
end;
Edit: Spiele am besten auch mal ein wenig mit der Konstante "Add" herum - auch negative Werte.
Edit2: Entferne add aus dem Skalierungsteil der Matrix. Habs im Code gemacht.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#10

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 7. Sep 2008, 21:27
hm, auch wenn ich der Meinung gewesen wäre, durch das addieren von 0.5 hätte sich etwas ändern müssen - das Ergebnis ist: Nichts. Es sieht genauso aus wie vorher.

Anbei ein Screenshot. Sowohl der Button in der GUI als auch der Text (sieht aus wie "rolle da" statt "rolled a") sehen unverändert unschön aus.

Bei krasseren Werten sieht man im Screenshot 2, dass die Textur nur verschoben ist, die Fehler trotzdem die gleichen bleiben.
Miniaturansicht angehängter Grafiken
screen2_104.png   screenshot_441.png  
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz