AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DirektX als Alternative zu BitBlt
Thema durchsuchen
Ansicht
Themen-Optionen

DirektX als Alternative zu BitBlt

Ein Thema von EWeiss · begonnen am 27. Mai 2008 · letzter Beitrag vom 28. Mai 2008
 
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: DirektX als Alternative zu BitBlt

  Alt 28. Mai 2008, 00:59
Zitat von Muetze1:
Leite dir eine eigene Komponenten von TWinControl ab. Dort kannst du das Fensterhandle nutzen um dein DC zu bekommen (kennst du ja) und diesen musste dann zu deinem Plugin o.ä. senden für sein BitBlt. Vorteil einer eigenen Komponente: du kannst CreateWnd; überschreiben und bekommst somit mit, wenn das Control (somit das Fenster) neu erzeugt wird während der Laufzeit. Dies sollte nämlich wohl der eigentliche Grund sein, warum sich dein HDC ändert. Somit musst du das HDC nur dann neu senden, wenn es sich wirklich geändert hat und du bekommst es direkt mit. Auch halte ich nichts davon ein VCL Element zu missbrauchen (Ein Panel oder ein Image ist definitiv keine Zeichenfläche!!)
Danke..
Wäre in Delphi eine möglichkeit
Das Problem ist nur ich habe mit vielen sprachen zu tun und muss quasi unabhängig jetzt von Delphi
(eigene anwendung) der DLL das HDC übergeben.

Wie gesagt über GetDC(Panel. bla bla) funktioniert das auch aber nicht von der PaintBox
oder ähnlichen Controls aus anderen Sprachen

Früher habe ich eine Renderfunktion übergeben..
Delphi-Quellcode:
function BASS_SONIQUEVIS_Render2(handle: HVIS;
                                 Data, fft: Pointer;
                                 canvas: DWORD;
                                 flags, pos: DWORD): boolean; stdcall;
damit war gewährt das immer ein gültiges DC übergeben wurde
Das habe ich geändert da ich festgestellt habe das es einigen Leuten extrem schwer viel die richtigen FFT Daten zu übergeben.
Das geschieht jetzt innerhalb BassVis

Das problem ist nun das ich die PaintBox refreshen muss um BitBlt immer ein aktuelles HDC zu übergeben.
Innerhalb der DLL kenn ich aber das Objekt nicht und schon gar nicht von welcher Sprache
aus auf das DC geschrieben werden soll.

Finde nicht den weg um das HDC zu übergeben.
Das Rendern wird nur einmal initialisiert und dann innerhalb BassVis in einen Thread verwaltet.

Hat auch den vorteil das man innerhalb der Anwendung nichts mehr damit zu tun hat.
Timer usw..

Hmmm .. muss mal schaun. Schwierig zu lösen.

gruss Emil
  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 08:39 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