Visual Basic - мастерская разработчика
Библиотеки

DirectX

Обзоры
DirectDraw
Direct3D
DirectX Audio
DirectPlay
DirectInput
Fido Topics
SourceCode
Tools&Libs

OpenGL

Статьи и учебники
Fido Topics
SourceCode
Tools&Libs

Архив по Glide

Движки

Обзоры
Учебники
SourceCode
Downloads

Создание игр

Ваши игры

Обзорные статьи
Учебники
Fido Topics
SourceCode
Download

Stuff

Программер-Чат

Псевдо-FTP
Disclaimer
Оффтопик

 

DirectDraw-Surface blitting

Fido Themes (ru.directx)

От: Alex Kosarchuk <Alex.Kosarchuk@p3.f442.n50.z2.fidonet.org>
Тема: DirectDraw->Surface blitting.
Дата: 13 апреля 2001 г. 10:41

Здраствуй,All!

Есть две траблы с блиттингом:

1) сами картинки я загружаю из 256-цветных .pcx-файлов своей функцией и помещаю в дополнительный буфер.После этого создаю offscrenn | system_memmory surface с нужными размерами,лочу её, записываю туда данные из буфера и в дальнейшем пользуюсь BltFast.
Вскоре обнаружилось,что мой механизм не работает с некоторыми картинками - картинки некоторого размера (10х10,25х20 и т.п.) выводятся с ошибками, как если в буфер на NxM записать (N-1)xM картинку. Причём алгоритм раскодирования тут скорее всего ни при чём - его я много раз писал
и раньше.

2) Если переключиться на другое приложение,а потом - обрано на мой, то прекращается вывод графики,IDDSurface->BltFast возвращает ошибку.


- Alex.


От: Alexey Yakovenko <waker@mdart.com>
Тема: Re: DirectDraw->Surface blitting.
Дата: 14 апреля 2001 г. 14:41


"Alex Kosarchuk" <Alex.Kosarchuk@p3.f442.n50.z2.fidonet.org> wrote in
message news:987162478@p3.f442.n50.z2.FidoNet.ftn...
> Здраствуй,All!
>
> Есть две траблы с блиттингом:
> 1) сами картинки я загружаю из 256-цветных .pcx-файлов своей функцией
> и помещаю в дополнительный буфер.После этого создаю
> offscrenn | system_memmory surface с нужными размерами,лочу её,
> записываю туда данные из буфера и в дальнейшем пользуюсь BltFast.
> Вскоре обнаружилось,что мой механизм не работает с некоторыми
картинками -
> картинки некоторого размера (10х10,25х20 и т.п.) выводятся с ошибками,
> как если в буфер на NxM записать (N-1)xM картинку. Причём алгоритм
> раскодирования тут скорее всего ни при чём - его я много раз писал
> и раньше.

ты DDSD::lPitch учитываешь?

> 2) Если переклюиться на другое приложение,а потом - обрано на мой,
> то прекращается вывод графики,IDDSurface->BltFast возвращает
> ошибку.

тебе, скорей всего, возвращается DDERR_SURFACELOST, нужно вызвать surf->restore (это для primary surface и backbuffer выдается?).


От: Yura Schapov <Yura.Schapov@p18.f28.n5012.z2.fidonet.org>
Тема: DirectDraw->Surface blitting.
Дата: 14 апреля 2001 г. 18:54

Как поживаете, Alex ?

Мои бортовые системы запеленговали, что в Пятница Апрель 13 2001 11:41, Alex
Kosarchuk писал All:
AK> Если переклюиться на другое приложение,а потом - обрано на мой,
AK> то прекращается вывод графики,IDDSurface->BltFast возвращает
AK> ошибку.

Может быть Restore?

hr = m_FrontBuffer->Flip(NULL, DDFLIP_WAIT);
if (hr==DDERR_SURFACELOST) { m_FrontBuffer->Restore();
m_BackBuffer->Restore();}

Люди! Hе дайте помереть дураком! Под OpenGL движок портировал, а под D3D никак не могу :( Очень прошу максимально простой пример как нарисовать треугольник в D3D, а то в этом отстойном MSDN какие-то монстры огромадного размера... неужели d3d обязательно нужно полметра костылей? Инета нету. =(

C уважением, Yura Schapov.

 


Проект
Создание Народного Учебника по OpenGL

Участвовать!
Поиск
Найдите статью или файл:


Рассылка
Новости сайта
La Vision в вашем почтовом ящике








Программирование на С++ Delphi и Паскаль
Центр демо-искусства в России