Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описаны политики обработки ошибок Direct2D. Он содержит следующие разделы.
- использование HRESULT
- Возвращаемое значение пакетных функций
- недопустимый ввод
- NaN и неправильно упорядоченные входные прямоугольники
Использование HRESULT
Если функция не является пакетной и может иметь сбой во время выполнения, он должен вернуть HRESULT, чтобы указать сбой. Ошибка времени выполнения — это любая ошибка, которую нельзя избежать на этапе разработки, например, недостаток памяти.
Возвращаемое значение пакетных функций
Пакетные функции в Direct2D — это функции, которые обрабатываются в виде одной единицы при вызове EndDraw или Close. Они представляют собой команды рисования между BeginDraw и EndDraw или командами GeometrySink. Для этих функций сообщения об ошибках передаются после завершения пакета. Ошибка возвращается после EndDraw для команд рисования и после выполнения команды Close при использовании GeometrySink.
RenderTargets останавливает рисование, если задано состояние ошибки, но приложение может вызывать Flush для сброса состояния ошибки и возобновления рисования.
Функции Get и Set не имеют возвращаемого значения. Однако если функция Set имеет недопустимые входные данные, слой отладки создает сообщение. В этом случае состояние ошибки не задано, а функция set не делает ничего.
Недопустимые входные данные
Direct2D разыменовывает указатели вывода и необходимые параметры, что приводит к нарушению доступа, если указатели недопустимы или NULL.
Указатель вывода
Direct2D разыменовывает указатель вывода и назначает его NULL сразу после ввода функции. Это приводит к нарушению доступа, если вызывающий передает NULL в качестве указателя на возвращаемое значение. Эта политика также применяется к массивам указателей. Для других выходных параметров, таких как структура данных, разыменование происходит позже и также приводит к нарушению доступа. Однако существуют некоторые методы с необязательными указателями вывода (то есть EndDraw, Flush), которые не вызывают нарушения доступа.
Обязательный параметр
Если значение NULL передается любой функции, требующей допустимого значения, функция разыменовывает неверный указатель раньше времени, что приводит к нарушению доступа. Для необязательных входных параметров NULL является допустимым значением, которое приводит к определенному разумному умолчанию.
NaN и плохо упорядоченные входные элементы RECTs
В Direct2D NaN считается допустимым значением, а неупорядоченные входные RECT сортируются.
NaN в качестве входных данных
NaN считается допустимым входным данным, хотя обычно он приводит к примитиву, который содержит не рисунок NaN. API Direct2D не предоставляет явную фильтрацию NaN для проверки входных данных.
Плохо упорядоченные входные rects
Неправильно упорядоченные входные элементы RECT сортируются таким образом, чтобы верхние, левые и нижние правые угла были правильно указаны. Для вывода пустые прямоугольники выглядят следующим образом: {Бесконечность, Бесконечность, FloatMax, FloatMax}.