Condividi tramite


Criteri di gestione degli errori Direct2D

Questo argomento descrive i criteri di gestione degli errori Direct2D. Include le sezioni seguenti:

Uso di HRESULT

Se una funzione non è in batch e può avere un errore di runtime, deve restituire HRESULT per indicare un errore. Un errore di runtime è un errore che non può essere evitato in fase di progettazione, ad esempio memoria insufficiente.

Valore restituito di funzioni batch

Le funzioni in batch in Direct2D sono le funzioni elaborate come singola unità quando viene chiamato EndDraw o Close . Sono i comandi di disegno tra BeginDraw e EndDraw o comandi in GeometrySink. Per queste funzioni, gli errori vengono segnalati al momento del completamento del batch. L'errore viene restituito dopo EndDraw per i comandi di disegno e dopo Close for GeometrySink.

RenderingTargets arresta disegno se viene impostato uno stato di errore, ma un'applicazione può chiamare Flush per reimpostare lo stato di errore e riprendere il disegno.

Le funzioni Get e Set non hanno alcun valore restituito. Tuttavia, se una funzione Set ha un input non valido, il livello di debug genera un messaggio. In questo caso, non viene impostato alcun stato di errore e la funzione Set non esegue nulla.

Input non valido

Direct2D dereferences restituisce puntatori di output e parametri obbligatori che causano violazioni di accesso quando i puntatori non sono validi o NULL.

Puntatore di output

Direct2D dereferences un puntatore di output e lo assegna immediatamente a NULL al momento dell'immissione della funzione. Ciò causa una violazione di accesso se un chiamante passa NULL come puntatore al valore restituito. Questo criterio si applica anche alle matrici di puntatori. Per altri parametri di output, ad esempio uno struct, la dereferenza viene eseguita in seguito e comporta anche una violazione di accesso. Tuttavia, esistono alcuni metodi che dispongono di puntatori di output facoltativi ,ovvero EndDraw, Flush, che non causeranno una violazione di accesso.

Parametro obbligatorio

Se NULL viene passato a qualsiasi funzione che richiede un valore valido, la funzione dereferenzia il puntatore non valido in anticipo causando una violazione di accesso. Per i parametri di input facoltativi, NULL è un valore valido che genera un valore predefinito ragionevole.

RECT di input naN e scarsamente ordinati

In Direct2D, NaN viene considerato un input valido e le RECT di input non ordinate sono ordinate correttamente.

NaN come input

NaN è considerato un input valido, anche se in genere genera la primitiva contenente il disegno NaN. L'API Direct2D non fornisce filtri espliciti di NaN per convalidare l'input.

RECT di input ordinati male

Le RECT di input ordinati sono ordinate in modo che gli angoli superiore, sinistro e inferiore siano specificati correttamente. Per l'output, i rettangoli vuoti sono simili al seguente: {Infinity, Infinity, FloatMax, FloatMax}.