{ pDirectDraw7=NULL;//обнуляем поинтер на экземпляр DirectDraw7 перед обновлением его значения
//создание экземпляра (== интерфейса) DirectDraw
hRet=DirectDrawCreateEx(
NULL, // создавать для текущего графич. адаптера (можно отключить аксерераторы или их эмуляцию !!!)
(VOID**)&pDirectDraw7,// получаем pointer входа в DirectDraw7 (доступ к его методам)
IID_IDirectDraw7, // имя нужного интерфейса DirectDraw7
NULL); // не используется
//Контроль кодов ошибок создания экземпляра объекта DirectDraw
if(hRet==DD_OK)pStr="СОЗДАН новый экземпляр объекта DirectDraw7";
if(hRet!=DD_OK)pStr="Error при создании DirectDraw7";
if(hRet==DDERR_DIRECTDRAWALREADYCREATED)pStr="DirectDraw7 уже был создан";
}
//Задание уровня использования видеоадаптера (есть 12 уровней)
// if(nF1<=2)//!!! делаем только при первых двух нажатиями 'F1'
{ hRet=pDirectDraw7->SetCooperativeLevel(
hWnd, //хендел на первичное (классическое) Windows окно
DDSCL_EXCLUSIVE | //монопольноt управление работой графич. адаптера
DDSCL_FULLSCREEN);//весь экран
//DDSCL_NORMAL);// == Windows окно (работает при стиле WS_OVERLAPPEDWINDOW в CreateWindowEx()
//ВНИМАНИЕ:
//Изменения уровня использования видеоадаптера функцией SetCooperativeLevel()
//требует при повторном входе в оконную функцию обновить экземпляр класса DirectDraw.
}
// /*
//Задание графического режима вывода на экран
// if(nF1<=2)//!!! делаем при первых двух нажатиями 'F1'
{hRet=pDirectDraw7->SetDisplayMode(
1024, // пикселей по x
768, // пикселей по y
32, // бит на пиксель
// 16, // бит на пиксель
// 8, // бит на пиксель
NULL, // частота кадров прежняя
NULL);// не используется
}
// */
//!!!СОЗДАНИЕ ПОВЕРХНОСТИ, подконтрольной средствам DurectX v.7.0:
// Сздадим ПЕРВИЧНУЮ (Primary) поверхность (Surface)
static DDSURFACEDESC2 ddSurfaceDesc={NULL};//объявление структуры для хранения параметров поверхности c обнулением начапьных значений ее полей !!!
//ZeroMemory(&ddSurfaceDesc, sizeof(ddSurfaceDesc));//обнуление структуры для параметров поверхности
//Установка необходимых (желаемых) начальных значений полей структуры DDSURFACEDESC2
ddSurfaceDesc.dwSize=sizeof(ddSurfaceDesc); //поле размера структуры
ddSurfaceDesc.dwFlags=DDSD_BACKBUFFERCOUNT | // разрешаем использовать BACKBUFFER
DDSD_CAPS; // разрешаем использовать вторичные поверхности
ddSurfaceDesc.ddsCaps.dwCaps= DDSCAPS_PRIMARYSURFACE | // видимой должна быть первичная поверхность
DDSCAPS_COMPLEX | // == создается комплексная поверхность
DDSCAPS_FLIP; // разрешается Flip() переключение поверхностей
ddSurfaceDesc.dwBackBufferCount=1; // будем использовать 1 (один)BACKBUFFER
//Создание ПЕРВИЧНОЙ поверхности (поверхности, видимой на экране)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.