Qualcuno potrebbe fornire un esempio di un modo efficace per lavorare con i pixel usando Direct2D?Come lavorare con i pixel usando Direct2D
Per esempio, come posso scambiare tutti verdi pixel (RGB = 0x00FF00
) con pixel rossi (RGB = 0xFF0000
) su un target di rendering? Qual è l'approccio standard? È possibile utilizzare ID2D1HwndRenderTarget
per quello? Qui presumo l'utilizzo di una sorta di accelerazione hardware. Devo creare un oggetto diverso per le manipolazioni dirette dei pixel?
Utilizzo di DirectDraw Vorrei utilizzare il metodo BltFast
su IDirectDrawSurface7
con un'operazione logica. C'è qualcosa di simile con Direct2D?
Un altro compito è generare dinamicamente immagini complesse dove ogni punto di posizione e colore è il risultato di una funzione matematica. Per fare un esempio, semplifichiamo tutto e disegniamo Y = X^2
. Come farlo con Direct2D? In definitiva avrò bisogno di disegnare funzioni complesse, ma se qualcuno potrebbe darmi un semplice esempio per Y = X^2
.
Degno di nota è che è possibile utilizzare 'QueryInterface' su un ID2D1RenderTarget' (qualsiasi tipo)' per ottenere la 'ID2D1DeviceContext'. Ciò consente di utilizzare il metodo molto più semplice 'ID2D1Factory :: CreateHwndRenderTarget' ma ancora ottenere l'API più recente e evitare di trattare con i documenti DXGI/Direct3D. Questo non è documentato, ma sembra essere intenzionale, da quello che posso dire. –