2012-11-07 6 views
5

ultima volta che ho fatto questo si può usare DirectDraw per blit ad una superficie di hardware, o anche direttamente mappa e disegnare direttamente.Qual è il modo più veloce per disegnare su un HWND su Windows moderno?

Qual è il metodo consigliato per fare questo oggi? Usa Direct3D 10/11 e fai lo stesso?

Edit: Per chiarire la mia domanda, voglio fare un po 'di software rasterizzazione e quindi hanno bisogno di un modo rapido per blit dati dei pixel direttamente al display.

+0

Hai provato GIL? È piuttosto veloce per ImageProcessing. http://www.boost.org/doc/libs/1_52_0/libs/gil/doc/index.html –

+0

Questo è del tutto estraneo. –

risposta

2

Vorrei suggerire di utilizzare Direct2D che è significato per le applicazioni desktop in questi giorni. Citazione:

Scopo

Direct2D è un accelerazione hardware, immediato-mode, 2-D grafica API che fornisce alte prestazioni e di alta qualità di rendering per il 2-D geometria, bitmap, e testo. L'API Direct2D è progettata per interagire correttamente con GDI, GDI + e Direct3D con .

Requisiti: Vista e versioni successive nonché le rispettive versioni del server (se necessario).

+0

D2D viene principalmente utilizzato per disegnare grafica vettoriale. Ci sono funzioni bitmap, ma non sono certamente un percorso diretto per la VRAM. –

+0

Come vieni a questa conclusione? Se i driver lo supportano (cosa che devono fare per ottenere la certificazione), sarà un modo diretto. O cosa mi manca qui? Non mi rendevo conto che la grafica vettoriale fosse l'obiettivo principale, pensavo che la composizione veloce fosse l'obiettivo principale per D2D. Francamente non è chiaro per me cosa stai cercando allora :) – 0xC0000022L

+1

Direct2D prima passa attraverso la memoria texture e quindi disegna tramite rasterizzazione. È fondamentalmente un wrapper su Direct3D. –