Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenGl) (https://www.delphipraxis.net/117118-hintergrundfarbe-aendert-wert-obwohl-ausgeschaltet-opengl.html)

EWeiss 11. Jul 2008 20:28


Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenGl)
 
Wieder mal OpenGl mache das Forum noch zu damit ;)
Hoffe es bleibt auch für andere was davon hängen.

Ich ändere meine Farbe so ..
Delphi-Quellcode:
procedure DrawBackgroundBeat;
var
  i : integer;

begin
  BackGroundBeat := 0;
  for I := 0 to 9 do
    BackGroundBeat := BackgroundBeat + Module1.spectrumData[0][I] +
                      Module1.spectrumData[1][I];
    BackgroundBeat := BackgroundBeat /64 ;

    if not (PlayState = 3) or (PlayState = 0) then
      if BackgroundBeat > 2 then
      begin
        glColor3f(BackgroundBeat/16 ,
                  BackgroundBeat/24 ,
                  BackgroundBeat/4);
        glClearColor(0, 0, BackgroundBeat / 64, 0);
      end;
end;
teste ob das zuletzt geladene Cover identisch ist.
Delphi-Quellcode:
    if LastAddCover = QuadTexture[i] then
      DrawBackgroundBeat;
Jetzt wird das verkleinerte Bild(Cover) mit dem Beat in der Farbe verändert
Das problem .. der hintergrund aber auch.
Das soll er aber nicht ;)
Da ausgeschaltet.

Ich möchte damit erreichen das der user erkennt welches Album(Cover)in dem Kreis gerade aktiv ist.

gruss Emil

turboPASCAL 12. Jul 2008 23:55

Re: Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenG
 
Zitat:

Jetzt wird das verkleinerte Bild(Cover) mit dem Beat in der Farbe verändert
Das Problem .. der Hintergrund aber auch.
Das soll er aber nicht :wink: da ausgeschaltet.
Hä ? Wie jetzt ?

Delphi-Quellcode:
procedure DrawBackgroundBeat;
var
  i : integer;

begin
  BackGroundBeat := 0;
  for I := 0 to 9 do
    BackGroundBeat := BackgroundBeat + Module1.spectrumData[0][I] +
                      Module1.spectrumData[1][I];
    BackgroundBeat := BackgroundBeat /64 ;

    if not (PlayState = 3) or (PlayState = 0) then
      if BackgroundBeat > 2 then
      begin
        glColor3f(BackgroundBeat/16 ,
                  BackgroundBeat/24 ,
                  BackgroundBeat/4);
        // <-----------------------------------------------------------<< //
        // Die "Hintergrundfarbe" in blau

        glClearColor(0, 0, BackgroundBeat / 64, 0);

        // >>-----------------------------------------------------------> //
      end;
end;

EWeiss 13. Jul 2008 00:12

Re: Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenG
 
Zitat:

Die "Hintergrundfarbe" in blau
hmmm

ja du hast recht kann mir quasi
Delphi-Quellcode:
glColor3f(BackgroundBeat/16 ,
                  BackgroundBeat/24 ,
                  BackgroundBeat/4);
das sparen
Delphi-Quellcode:
BackgroundBeat/16
BackgroundBeat/24
da die beiden Farben eh ausgeschaltet sind.

oder muss sie addieren ;)
Mal schaun
Danke für den Hinweis auf den Bug :)
Das Problem ansicht habe ich anders gelößt
Das aktive Album(Quader) wird etwas größer mit einen weißen Rand
drumherum gezeichnet das erkennt garantiert jeder und sieht nicht schlecht aus.

Mit ausgeschaltet meine ich in der GLDraw..
Delphi-Quellcode:
    // BackGroundBeat
    if EnableBeat  then
      DrawBackgroundBeat
    else
     glColor4f(1, 1, 1, 1);
Eigentlich sollte nun der Hintergrund nicht mehr die Farbe ändern sondern nur das Quader für das aktive Album.
Geht aber scheinbar deshalb nicht weil diese sowie der Hintergrund auf dem gleichen ViewPort liegen.
Da kann ich ausschalten was ich will.

gruss Emil

Corpsman 13. Jul 2008 09:21

Re: Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenG
 
also meines erachtens ist der Befehl


Delphi-Quellcode:
    glColor3f(BackgroundBeat/16 ,
                  BackgroundBeat/24 ,
                  BackgroundBeat/4);
vor
Delphi-Quellcode:
        glClearColor(0, 0, BackgroundBeat / 64, 0);
total sinnlos. Denn er wirkt sich in keinsterweise auf glclearcolor aus.

zu dem Befehl gibts auch ne Hilfe

EWeiss 13. Jul 2008 10:25

Re: Hintergrundfarbe ändert wert obwohl ausgeschaltet (OpenG
 
Zitat:

Zitat von Corpsman
also meines erachtens ist der Befehl


Delphi-Quellcode:
    glColor3f(BackgroundBeat/16 ,
                  BackgroundBeat/24 ,
                  BackgroundBeat/4);
vor
Delphi-Quellcode:
        glClearColor(0, 0, BackgroundBeat / 64, 0);
total sinnlos. Denn er wirkt sich in keinsterweise auf glclearcolor aus.

zu dem Befehl gibts auch ne Hilfe

was sagt mir das jetzt ?
Zitat:

zu dem Befehl gibts auch ne
Die Hilfe kannst dir sparen ;)
habe oben schon geschrieben das R,G ohne funktion sind .. Oder ?

B ist keinesfalls sinnlos
1.
BackgroundBeat := Samples /64

2.
BackgroundBeat / 4
wird der wert nochmal durch 4 geteilt
und die Farbe gesetzt

anschließend wird diese Farbe mit
BackgroundBeat / 64 gelöscht
Was wirkt sich da nicht aus ?

EDIT:
Na gut hast mich überzeugt.
Danke für den Hinweis

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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