Причина, по которой вы услышите беспокойство людей о GDI, заключается в том, что раньше это были просто вызовы Windows API.Более новые его версии (которые назывались GDI +, когда я в последний раз смотрел на них) на самом деле представляют собой просто API, размещенный поверх вызовов DirectX.Поэтому использование GDI может показаться довольно простым в программировании, но добавление слоя между вещами всегда замедляет работу.Как упоминалось в ответе Джерри Коффина, ваши примеры касаются перемещения данных, и это медленное время.Я немного удивлен тем, что DirectX намного медленнее, но я не могу больше помочь с копанием документации по DirectX (которая была довольно крутой в течение довольно долгого времени на самом деле). Возможно, стоит проверить www.codesampler.comЯ всегда находил у него хорошие стартовые места, и на самом деле, хотя я могу быть безумен за эти слова, я бы поклялся, что улучшения в DirectX SDK в документации, и примеры были сделаны на основе этой работы, ребята!)
Что касается обсуждения DirectDraw против Direct3D (а не вызовов GDI).Я бы сказал, перейти к Direct3D.Я считаю, что DirectDraw устарела с 8.0 или около того, а 9.0 существует уже довольно давно.И, в конце концов, весь DirectX - это 3D, он просто варьируется в зависимости от уровня полезного 2D-интерфейса, который есть вокруг, но вы можете обнаружить, что вы можете делать очень интересные вещи в 2D-среде, когда фактически используете 3D-пространство.(У меня было довольно аккуратное случайно сгенерированное оружие молнии для клона космических захватчиков:))
В любом случае, надеюсь, это помогло!
PS: Следует отметить, что DirectX не всегдасамый быстрый.Для ввода с клавиатуры (если это не изменилось в 10 или 11) почти всегда рекомендовалось использовать события Windows ... поскольку DirectInput был просто оберткой для этой системы! .. Однако XInput - -wesome - !!