AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGl Rendercontex schützen
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGl Rendercontex schützen

Ein Thema von EWeiss · begonnen am 16. Jun 2008 · letzter Beitrag vom 16. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#11

Re: OpenGl Rendercontex schützen

  Alt 16. Jun 2008, 16:10
Zitat:
Sinn dieser Aussage
Ja sorry war nicht nötig..
wollte nur sagen das die Koordinaten sich in BassBoxInfo befinden und korrekt übergeben werden
Zitat:
Die Bar setzt sich nicht immer hundert prozent an das OpenGl Window.
Bild im Anhang
Kann man da was in
gluPerspective(45, BassBoxInfo^.w / BassBoxInfo^.h, 1, 1000.0); ändern damit das nicht passiert ?
Zitat:
Was meinst du mit "Flackern"?
flickert, flackert
zeichnet immer neu gibt es da einen Lock befehl oder so der das verhindert ?

gruss Emil
Miniaturansicht angehängter Grafiken
position_184.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#12

Re: OpenGl Rendercontex schützen

  Alt 16. Jun 2008, 16:30
Also als erstes zur falschen Position:

ich bin mir nicht sicher, aber kann es sein, dass glViewport(X, Y, W, H); Probleme macht? Probier mal glViewport(0, 0, W, H); aus. Ich weiß ja nicht, für was die Variablen X und Y genau sollen, ich denke, dass sie die Fensterposition beinhalten. Jedoch ist diese für OpenGL egal, da das komplett unterschiedliche Sachen sind.

Zum Flackern:
Das Flackern an sich sagt mir schon was, doch das kommt mir sehr seltsam vor. In OpenGl flackert normalerweise nichts, da du alles in einen Background-Buffer zeichnest, der dann in einem Rutsch ans Fenster übergeben wird - aber erst wenn er fertig ist. Ich glaub, dein Code hat da irgendwo ne Macke.

PS: das Flackern kann auch passieren, wenn du OpenGl mit GDI-Objekten (z.B. der VCL) kombinierst. Da flackert aber nicht OpenGl sondern die VCL bzw. GDI-Sachen.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

Re: OpenGl Rendercontex schützen

  Alt 16. Jun 2008, 16:47
Ja sie werden kombiniert allerdings nur zum laden der Texturen (im Plugin)
Habe mal ein Sample angehängt da kannst sehen das es flackert

starte dazu das Vulcan Plugin..
Das Plugin ist zwar eigentlich unnötig da nicht viel Visualisiert wird.. aber egal
Den Berg kann man verschieben sowie andere objekte von verschiedenen Plugins

Mit der Space taste werden die original positionen wieder hergestellt.
Doppelklick ins panel = FullScreen
with GenBitmap zeigt die Vis in einen eigenen Fenster
da kannst du sehen das es probleme biem resitz gibt.

Die Koordinaten x,y sind 0,0

gruss EMil

EDIT:
noch ein pic angehängt
getestet mit XP denke das bei Vista probleme auftauchen könnten
kann es nicht testen oder ändern habe kein Vista
Miniaturansicht angehängter Grafiken
phoenix_141.jpg  
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

Re: OpenGl Rendercontex schützen

  Alt 16. Jun 2008, 19:53
habe leider ein etwa gleiches problem mit dem Font
habe es umgestellt funktioniert aber nicht da die Matrix zweimal geändert wird
in der gleichen procedure.

Delphi-Quellcode:
procedure glPrintBitmap(x, y : GLFloat; text : pchar; fontset : GLint);

begin

  glPushAttrib(GL_ALL_ATTRIB_BITS);
  try
    if (fontset>1) then fontset :=1;
    glBindTexture(GL_TEXTURE_2D,fontset); // Select Our Font Texture
    glDisable(GL_DEPTH_TEST);                // Disables Depth Testing
    // 1 mal geändert
    glMatrixMode(GL_PROJECTION);                // Select The Projection Matrix
    glPushMatrix();                   // Store The Projection Matrix
    glLoadIdentity();                   // Reset The Projection Matrix
    glOrtho(0,640,0,480,-100,100);
    glMatrixMode(GL_MODELVIEW);             // Select The Modelview Matrix
    glPushMatrix();                   // Store The Modelview Matrix
    glLoadIdentity();                   // Reset The Modelview Matrix

    glTranslated(x,y,0);                   // Position The Text (0,0 - Bottom Left)
    glListBase(base - 32 + (128 * cardinal(fontset))); // Choose The Font Set (0 or 1)
    glCallLists(strlen(text),GL_BYTE,text);    // Write The Text To The Screen
    // 2 mal geändert
    glMatrixMode(GL_PROJECTION);                // Select The Projection Matrix
    glPopMatrix();                   // Restore The Old Projection Matrix
    glMatrixMode(GL_MODELVIEW);                // Select The Modelview Matrix
    glPopMatrix();                   // Restore The Old Projection Matrix
    glEnable(GL_DEPTH_TEST);                // Enables Depth Testing
  finally
    glPopAttrib;
  end;

end;

Delphi-Quellcode:
procedure HoldMatrixFontMode(x, y : GLFloat; text : pchar; fontset : GLint);
var
  iMatrixMode : integer;
begin
  glGetIntegerv(GL_MATRIX_MODE, @iMatrixMode);
  glMatrixMode(GL_PROJECTION);
  glPushMatrix;
  try
    glPrintBitmap(x, y, text, fontset);
  finally
    glMatrixMode(GL_PROJECTION);
    glPopMatrix;
    glMatrixMode(iMatrixMode);
  end;
end;
kannst mir nochmal nen tip geben wie ich das hin bekomme ?
Aufruf..
HoldMatrixFontMode(10, 13, SongName, 1); EDIT:
Von Text kann man da nicht sprechen..
Hat sich erledigt ...

gruss Emil
Miniaturansicht angehängter Grafiken
text_470.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:26 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