Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не plot ит пиксель 
:(
    Опции темы
antonmaster
Дата 4.6.2005, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.2.2005

Репутация: нет
Всего: нет



вот такой код должен показывать пару пикселей рэндомного цвета:

Код



       if (ddrval = DirectDrawCreate(NULL, &lpDD, NULL) != DD_OK)
               MessageBox(hwnd, "error creating directdraw object", "error", 0);

       if (ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN) != DD_OK)
               MessageBox(hwnd, "error setting cooperative level", "error", 0);

       if (ddrval = lpDD->SetDisplayMode(640, 480, 8) != DD_OK)
               MessageBox(hwnd, "error setting display mode", "error", 0);

       dxstruct.dwSize = sizeof(dxstruct);
       dxstruct.dwFlags = DDSD_CAPS;
       dxstruct.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

       if (FAILED(lpDD->CreateSurface(&dxstruct, &lpDDSurf, NULL)))
               MessageBox(hwnd, "Failed creating Surface", "error", 0);

       srand(GetTickCount());
for (x=1; x<255; x++)
{
 palette[x].peRed = rand() & 0xFF;
 palette[x].peBlue = rand() & 0xFF;
 palette[x].peGreen = rand() & 0xFF;
 palette[x].peFlags = PC_NOCOLLAPSE;
}

       if (FAILED(lpDD->CreatePalette(DDPCAPS_8BIT | DDPCAPS_INITIALIZE, palette, &lpDDpale, NULL)))
               MessageBox(hwnd, "Error creating palette", "error", 0);

       if (FAILED(lpDDSurf->SetPalette(lpDDpale)))
               MessageBox(hwnd, "Error setting palette", "error", 0);

       lpDDSurf->Lock(NULL, &dxstruct, DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR, NULL);

       UCHAR* buffer = (UCHAR*)dxstruct.lpSurface;
       UINT  nPitch = dxstruct.lPitch;

       for (x=0;x<500;x++)
               PlotPixel(rand()%640, rand()%480, rand()%256, buffer, nPitch);

       lpDDSurf->Unlock(NULL);
....
...

.....

inline void PlotPixel(int x, int y, UCHAR color, UCHAR* buffer, int nPitch)
{
       buffer[y * nPitch + x] = color;
}


directx инициализирует нормально, палитру, дисплэй мод тоже, но вот пикселей не видно stena.gif

Это сообщение отредактировал(а) antonmaster - 4.6.2005, 15:59
PM MAIL   Вверх
antonmaster
Дата 4.6.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 5.2.2005

Репутация: нет
Всего: нет



уже разобрался.
сори за лишний флуд
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.