Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

DirectX. Использование возможностей по выводу графики

Тип: контрольная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Использование DirectX для решения задач по выводу и обработке графики в Microsoft Windows. Описание используемых DirectX-функций. Исходный текст отлаженной программы. Техника работы с окнами. Результаты работы программы, составление алгоритма, листинг.
Краткое сожержание материала:

Размещено на

Содержание

Цель работы

Краткая теория

Описание используемых DirectX-функций

Исходный текст отлаженной программы

Результаты работы программы

Вывод

Цель работы

Использование DirectX для решения задач по выводу и обработке графики в Microsoft Windows.

В качестве задачи взята проблема проверки принадлежности точки полигону. Так как в нашем случае важен не сам алгоритм, а демонстрация работы DirectX, то задача максимально упрощена и в качестве полигона берется его частный случай - треугольник, а в качестве точки - текущее положение указателя мышки.

Краткая теория

DirectX (от англ. direct -- прямой, непосредственный) -- это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.

Практически все части DirectX API представляют собой наборы COM-совместимых объектов.

В целом, DirectX подразделяется на:

DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:

DirectDraw : интерфейс вывода растровой графики. (Его разработка давно прекращена)

Direct3D (D3D): интерфейс вывода трёхмерных примитивов.

DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.

DirectPlay: интерфейс сетевой коммуникации игр.

DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)

DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.

DirectShow: интерфейс, используемый для ввода/вывода аудио и/или видео данных.

DirectX Instruments -- технология, позволяющая на основе мультимедийного API DirectX создавать и использовать программные синтезаторы. В отличие от DX-плагинов, такие программы могут полностью управляться по MIDI и служат главным образом не для обработки, а для синтеза звука. Технология DXi была популярна в 2001--2004 гг., особенно в программных продуктах Cakewalk, но со временем проиграла «войну форматов» технологии VST от Steinberg.

DirectSetup: часть, ответственная за установку DirectX.

DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, кодировщики/декодировщики)

Direct2D : интерфейс вывода двухмерной графики

DirectX пришел на смену GDI. Простые игры, которые не требуют быстрой графики, могут использовать GDI. Однако GDI не обеспечивает качественной анимации, поскольку в нём нет возможности синхронизации с кадровым буфером. Также, в GDI нет растеризации для отрисовки 3D-графики. Современные игры используют DirectX или OpenGL, что даёт программистам доступ к большему количеству аппаратных возможностей.

Но DirectX используется не только в играх, но и в клиентских приложениях. Начиная с версии 3.0 .NET Framework начал в себя включать WPF (Windows Presentation Foundation) - систему для построения клиентских приложений под Windows.

В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление.

Графической технологией, лежащей в основе WPF, является именно DirectX, в отличие от Windows Forms, где используется GDI/GDI+. Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX.

Описание используемых DirectX-функций

IDirect3D9* Direct3DCreate9(

UINT SDKVersion

);

Parameters

SDKVersion

Type: UINT

Return value

Type: IDirect3D9*

HRESULT CreateDevice(

[in] UINT Adapter,

[in] D3DDEVTYPE DeviceType,

[in] HWND hFocusWindow,

[in] DWORD BehaviorFlags,

[in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,

[out, retval] IDirect3DDevice9 **ppReturnedDeviceInterface

);

Return value

Type: HRESULT

HRESULT D3DXCreateFont(

_In_ LPDIRECT3DDEVICE9 pDevice,

_In_ INT Height,

_In_ UINT Width,

_In_ UINT Weight,

_In_ UINT MipLevels,

_In_ BOOL Italic,

_In_ DWORD CharSet,

_In_ DWORD OutputPrecision,

_In_ DWORD Quality,

_In_ DWORD PitchAndFamily,

_In_ LPCTSTR pFacename,

_Out_ LPD3DXFONT *ppFont

);

Parameters

pDevice [in]

Type: LPDIRECT3DDEVICE9

Указатель на IDirect3DDevice9 интерфейс, который ассоциируется с шрифтом.

Height [in]

Type: INT

Высота символа в логических единицах.

Width [in]

Type: UINT

Ширина символа в логических единицах.

Weight [in]

Type: UINT

Вес шрифта.

Italic [in]

Type: BOOL

True для italic шрифта, иначе false.

pFacename [in]

Type: LPCTSTR

Строка с именем шрифта.

ppFont [out]

Type: LPD3DXFONT*

Возвращает указатель на ID3DXFont интерфейс, представляющий созданный объект шрифта.

Return value

Type: HRESULT

INT DrawText(

[in] LPD3DXSPRITE pSprite,

[in] LPCTSTR pString,

[in] INT Count,

[in] LPRECT pRect,

[in] DWORD Format,

[in] D3DCOLOR Color

);

Parameters

pSprite [in]

Type: LPD3DXSPRITE

Указатель на ID3DXSprite, содержащий строку. Может быть NULL, если Direct3D будет отрисовывать строку своим sprite object.

pString [in]

Type: LPCTSTR

Указатель на строку для вывода. Если параметр Count равен -1, то строка должна быть null-terminated.

Count [in]

Type: INT

Количество символов в строке.

pRect [in]

Type: LPRECT

Указатель на RECT, содержащий область, в которой будет отрисовываться текст.

Format [in]

Type: DWORD

Метод форматирования текста.

Color [in]

Type: D3DCOLOR

Цвет текста.

Return value

Type: INT

HRESULT CreateVertexBuffer(

[in] UINT Length,

[in] DWORD Usage,

[in] DWORD FVF,

[in] D3DPOOL Pool,

[out, retval] IDirect3DVertexBuffer9 **ppVertexBuffer,

[in] HANDLE *pSharedHandle

);

Parameters

Length [in]

Type: UINT

Длина буфера в байтах

FVF [in]

Type: DWORD

Комбинация D3DFVF, определяет формат вершин в этом буфере

Pool [in]

Type: D3DPOOL

Член D3DPOOL тип перечисления представляет собой рабочий класс памяти в который отправляется ресурс. Не устанавливать D3DPOOL_SCRATCH.

ppVertexBuffer [out, retval]

Type: IDirect3DVertexBuffer9**

Адрес на указатель IDirect3DVertexBuffer9 интерфейса, представляет созданный буферный ресурс.

pSharedHandle [in]

Type: HANDLE*

Занято. Установить этот параметр в NULL.

Return value

Type: HRESULT

HRESULT Clear(

[in] DWORD Count,

[in] const D3DRECT *pRects,

[in] DWORD Flags,

[in] D3DCOLOR Color,

[in] float Z,

[in] DWORD Stencil

);

Parameters

Count [in]

Другие файлы:

DirectX 9. Уроки программирования на C++
Рассмотрено профессиональное программирование трехмерной графики под Windows на языке C++ с использованием библиотеки DirectX 9. Раскрыты возможности...

Сравнение возможностей графических систем OpenGL и DirectX
Общая характеристика основных и дополнительных возможностей графического стандарта OpenGL в области компьютерной графики. Исследование набора определе...

DirectX 9. Уроки программирования на C++ (+ Code)
Рассмотрено профессиональное профаммирование трехмерной графики под Windows на языке C++ с использованием технологии DirectX 9. Раскрыты возможности к...

DirectX 10 - это просто. Программируем графику на С++
Рассмотрено создание графических приложений для Windows на С++ с использованием новой версии компонента Direct3D 10, входящего в состав библиотеки Dir...

OpenGL и DirectX: программирование графики. Для профессионалов
Задачи, связанные с различными аспектами компьютерной графики, возникают в самых различных сферах применения информационных технологий. Иногда они явл...