AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Beschleunigung von Laderoutine

Ein Thema von EWeiss · begonnen am 15. Aug 2016 · letzter Beitrag vom 17. Aug 2016
 
EWeiss
(Gast)

n/a Beiträge
 
#1

Beschleunigung von Laderoutine

  Alt 15. Aug 2016, 18:51
Meine Laderoutine..

Delphi-Quellcode:
  // is ShowCover
  if ShowCover then
  begin

    if CoverPath <> 'then
    begin
      if CoverPath <> Path then
        ScanDirectory(CoverPath, 'jpg, jpeg, png', False);

      if aCovers.count > -1 then
      begin
        LstCoverPath.Clear;
        LstQuadTexture.Clear;
      end;

      if (aCovers.count <= QuadCount) then
      begin
        for I := 0 to (aCovers.count - 1) do
        begin
          // extract Filename
          aFileName := ExtractFileName(aCovers[I]);
          // extract extension
          aFileName := Copy(aFileName, 1, Length(aFileName) - Length(ExtractFileExt(aFileName)));
          // uppercase
          aFileName := AnsiUpperCase(aFileName);

          Name := ExtractFileName(GetAlbumArtisName);
          Name := Copy(Name, 1, Length(Name) - Length(ExtractFileExt(Name)));
          if (aFileName = 'FOLDER') or (aFileName = Name) then
          begin
            if quadTexture[I] <> NoCoverTexture then
              glDeleteTextures(1, @quadTexture[I]);

            LoadTexture(aCovers[I], quadTexture[I], False);
            LstQuadTexture.Add(IntToStr(quadTexture[I]));
            LstCoverPath.Add(aCovers[I]);
          end;
        end; // end for i

        transAlpha := 1.0;
        if (LastAddCover = 0) or (LastAddCover = Round(NoCoverTexture)) then
          Result := False;
        if LstCoverPath.count <> 0 then
        begin
          InitAlbumIniPath;
          SaveINI;
        end;
        exit; // exit For
      end
      else // else aCovers.count
      begin
        if (aCovers.count > QuadCount) then
        begin
          aCovers.Delete(0);
          for I := 0 to (aCovers.count - 1) do
          begin
            // extract Filename
            aFileName := ExtractFileName(aCovers[I]);
            // without extension
            aFileName := Copy(aFileName, 1, Length(aFileName) - Length(ExtractFileExt(aFileName)));

            aFileName := AnsiUpperCase(aFileName);

            Name := AnsiUpperCase(GetAlbumArtisName);
            Name := Copy(Name, 1, Length(Name) - Length(ExtractFileExt(Name)));
            if (aFileName = 'FOLDER') or (aFileName = Name) then
            begin
              if quadTexture[I] <> NoCoverTexture then
                glDeleteTextures(1, @quadTexture[I + 1]);

              LoadTexture(aCovers[I], quadTexture[I], False);
              LstQuadTexture.Add(IntToStr(quadTexture[I]));
              LstCoverPath.Add(aCovers[I]);
            end;
          end; // end for i
          transAlpha := 1.0;
          if LstCoverPath.count <> 0 then
          begin
            InitAlbumIniPath;
            SaveINI;
          end;
        end; // end aCovers.count
      end; // end else aCovers.count
    end; // end CoverPath
  end; //end ShowCover
Hat jemand eine Idee wie man das beschleunigen könnte.?
Das Problem ist das ich bei jeder neu eingelegten CD (Abspielen eines Albums)
Alle Covers neu eingelesen und zugeordnet werden müssen da ich das erste Cover des Karussells lösche um am ende ein neues zu addieren.
Aber nur dann wenn das Cover sich noch nicht im Karussell befindet.

Mir fällt im Moment keine schnellere Lösung ein.
Was die Anwendung blockt ist LoadTexture.
Den Prozess weiterlaufen lassen bringt keine Abhilfe weil man dann das ersetzen jedes Cover sehen kann.

gruss
  Mit Zitat antworten Zitat
 


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 22:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz