Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje zásady zpracování chyb Direct2D. Obsahuje následující části.
- Použití HRESULT
- návratová hodnota dávkových funkcí
- Neplatný vstup
- NaN a špatně uspořádané vstupní RECTs
Použití HRESULT
Pokud není funkce dávková a může selhat během běhu, měla by vrátit HRESULT k indikaci selhání. Selhání za běhu je jakékoli selhání, kterému nelze v době návrhu zabránit, například nedostatek paměti.
Návratová hodnota dávkových funkcí
Dávkové funkce v Direct2D jsou funkce, které se zpracovávají jako jedna jednotka při volání EndDraw nebo Close. Jedná se o příkazy kreslení mezi BeginDraw a EndDraw nebo příkazy na GeometrySink. U těchto funkcí se chyby oznamují, když je dávka dokončena. Chyba je vrácena po EndDraw pro příkazy kreslení a po Close pro GeometrySink.
RenderTargets zastaví renderování, pokud je nastaven chybový stav, ale aplikace může volat Flush k obnovení stavu chyby a pokračovat v renderování.
funkce Get a Set nemají žádnou návratnou hodnotu. Pokud ale funkce Set má neplatný vstup, vrstva ladění vygeneruje zprávu. V tomto případě není nastaven žádný chybový stav a funkce Set nic nedělá.
Neplatný vstup
Direct2D dereferencuje výstupní ukazatele a požadované parametry, což vede k narušení přístupu, pokud jsou ukazatele neplatné nebo NULL.
Výstupní ukazatel
Direct2D dereferencuje výstupní ukazatel a nastaví jej na NULL ihned po vstupu do funkce. To způsobí narušení přístupu, pokud volající předá NULL jako ukazatel na návratovou hodnotu. Tato zásada platí také pro pole ukazatelů. U jiných výstupních parametrů, jako je například struktura, se dereference provede později a dojde také k narušení přístupu. Existují však některé metody, které mají volitelné výstupní ukazatele (to znamená EndDraw, Flush), které nezpůsobí narušení přístupu.
Povinný parametr
Pokud se NULL předá jakékoli funkci vyžadující platnou hodnotu, funkce předčasně dereferencuje chybný ukazatel, což vede k porušení přístupu. U volitelných vstupních parametrů NULL je platná hodnota, která má za následek určitou rozumnou výchozí hodnotu.
NaN a špatně uspořádané vstupní recty
V Direct2D se NaN považuje za platný vstup a vstupní RECTy, které jsou špatně uspořádané, jsou seřazené.
NaN jako vstup
Hodnota NaN se považuje za platný vstup, ale obvykle způsobí, že primitivum, které obsahuje NaN, se nevykreslí. Rozhraní API Direct2D neposkytuje explicitní filtrování naN pro ověření vstupu.
Špatně uspořádané vstupní RECTy
Špatně uspořádané vstupní obdélníky (RECTs) se seřadí tak, aby byly správně zadány horní, levý a dolní, pravý rohy. Pro výstup vypadají prázdné obdélníky takto: {Infinity, Infinity, FloatMax, FloatMax}.