Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   SoniqueVis und Direct2D (https://www.delphipraxis.net/191322-soniquevis-und-direct2d.html)

SonnyBoyPro 3. Jan 2017 00:18

SoniqueVis und Direct2D
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Abend,

nachdem ich wieder mal Zeit gefunden habe mich ein wenig mit meiner HTPC Software zu beschäftigen hab ich nun ein Interface für die Sonique Visualizations geschrieben.

Irgendwie sieht das aber nicht so aus wie am Sonique-Player (speziell diese blauen Netze seh ich nicht...)

Direct2D erwartet ein Bild im GUID_WICPixelFormat32bppPBGRA Format,
Laut Header braucht Vis einen
Zitat:

Video points to memory in 32bit video memory ... the 32 bit ABGR buffer
Also kreuz ich nach dem Rendern von dem SVP Modul in das WIC Image die Bytes aus bevor ich
eine ID2D1Bitmap erstelle: ABGR wird zu BGRA, und A mal fix auf 255 gesetzt...
Muss man die Pixel anders auskreuzen oder kommt das von wo anders z.B. FFT/Wave Daten? :wall:




BG

EWeiss 3. Jan 2017 01:12

AW: SoniqueVis und Direct2D
 
Welches Plugin?
Zitat:

FFT/Wave Daten?
Kenn das Plugin nicht aber FFT/Wave Daten benötigst du auf jeden Fall ansonsten Visualisiert nichts zur Musik.

gruss

TiGü 3. Jan 2017 09:38

AW: SoniqueVis und Direct2D
 
Was ist denn genau das Problem?
Das Konvertieren von BGRA nach ABGR bzw. umgekehrt?
Wer malt die blauen Netze: Das Plugin (also du selbst) oder der Sonique-Player?

SonnyBoyPro 3. Jan 2017 16:52

AW: SoniqueVis und Direct2D
 
Hallo,

ich verwende momentan das Rabbit Hole Plugin.
Wave und FFT hol ich mir über die BASS.

Die blauen Netz erscheinen wenn ich den Content den mir das Plugin zurück gibt auf meine D2-Oberfläche zeichne (erscheinen aber auch wenn ich das ganze auf ein normales GDI Fenster zeichne).

Im Sonique-Player sieht man keine blauen Netze, sieht sowieso etwas anders aus,.. schöner

Vielleicht mal zum Drehen. Ich mach das so
Delphi-Quellcode:
       a:=puffre[i];
       r:=puffre[i+1];
       g:=puffre[i+2];
       b:=puffre[i+3];
       PictData[i]:=b;
       PictData[i+1]:=g;
       PictData[i+2]:=r;
       PictData[i+3]:=255;
Dabei ist puffre ein Zwischenpuffer in den das Plugin rein rendert und PicData den Buffer den ich über die Lock-Methode vom IWICBitmap bekommen habe.

BG

EWeiss 3. Jan 2017 17:04

AW: SoniqueVis und Direct2D
 
Wenn du bass verwendest nutze doch das jeweilige Plugin für Visualisierungen.
Bass_SFX (Sehr Fehleranfällig und unterstützt nicht alles) oder BassVis.

Du benötigst dann nur das jeweilige Hande des Render Contex.


gruss

SonnyBoyPro 3. Jan 2017 22:16

AW: SoniqueVis und Direct2D
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo EWeiss,

das Problem ist das ich unter DirectX 11.1 mit Direct2D kein Handle zur Verfügung habe
um BASSVIS zu nutzen.

Ich hab mir allerdings den Source von SFX angesehen und bin schon etwas schlauer geworden.

Hab die FFT ein wenig anders gemacht und darum ist (logischerweise) das Ergebnis des Renderer anders.

BG

EWeiss 3. Jan 2017 22:31

AW: SoniqueVis und Direct2D
 
Sieht doch ok aus.

gruss


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