· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.DIRECTX.OPENGL —› Refresh Rate

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Сен 5, 2003 13:52:47

Как установить частоту экрана в DX?
SetDisplayMode берёт только размеры экрана и глубину цвета.
И посоветуйте хорошую книгу по DX полному бегиннеру.


Дата: Сен 5, 2003 18:45:36

Если напишешь потом статью - книгами я тебе просто завалю. Качать надоест :)


Дата: Сен 6, 2003 12:07:28

Статью о чём? Об определении параметров экрана под DX? Так я по аналогии смотрю как другие делают и копаю Ddraw.inc.
А вообще-то я только начинающий. Впервые сел (в DOS) за ассемблер года 2 назад. В паскалескую прогу вставлял inline Assembler. Постепенно разобрался. Свой первый серьёзный проект в DOS-е хочу вскоре опубликовать здесь. Это скринсейвер на тему Матрицы в виде COM файла. Меньше 4 килобайт.


Дата: Сен 6, 2003 17:03:09 · Поправил: _G3

Это скринсейвер на тему Матрицы в виде COM файла. Меньше 4 килобайт.
У меня он в 256 байт влез: http://www.256b.com/demo.php?demoId=365
Хотя можно и еще уменьшить.


Дата: Сен 7, 2003 16:34:47

Можешь без проблем пользоваться ChangeDisplaySetting:

1. Обьявить структуру DEVMODE
2. Занести туда данные:
   devmode.dmBitsPerPel         = 8 (в битах)
   devMode.dmSize               = SIZEOF(DEVMODE)
   devMode.dmPelsWidth          = ширина
   devMode.dmPelsHeight         = высота
   devMode.dmDisplayFrequency   = 85 (в Герцах)
   devMode.dmFields             = DM_PELSWIDTH or DM_PELSHEIGHT or \
                                  DM_DISPLAYFREQUENCY or DM_FLAGSDM_BITSPERPELS

3. Потом ChangeDisplaySettings, ADDR devMode, CDS_FULLSCREEN


Дата: Сен 7, 2003 16:36:57

volodya

А меня можно книгами завалить ?


Дата: Сен 7, 2003 18:43:45

Спасибо, keYMax, но мне нужно средствами DX. В GDI я и так уже разобрался. Просто моя прога должна уметь выполнять графику и в GDI и в DX.

volodya, я всё ещё не получил ответ на то, какая тебя статья интересует. Жду ответа и ссылочек.


Дата: Сен 7, 2003 20:54:35

SolidCode

Всегда приятно иметь дело с вежливыми людьми :)

Самое интересное, что изначально SetDisplayMode имел 5 параметров. А потом два были ликвидированы. Как раз именно dwRefreshRate и еще dwFlags. В официальной доке приведены все пять, а в примечании сказано что два последних не используются. Они были бы как раз кстати :(

Покопаемся еще может что и найдем.


Дата: Сен 8, 2003 23:21:20

Может так?

//это из ddraw.h
DEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );

//а это пишем в программе
LPDIRECTDRAW2 pdd;
DirectDrawCreate(IDD_IDirectDraw2,&pdd,0);
pdd->SetDisplayMode(width,height,bpp,rate,0);


Дата: Сен 9, 2003 17:41:39

Спасибо за советы. Попробую.
Да я и видел в разных сырцах то 3 то 5 параметров для SetDisplayMode. И никак не мог разобраться почему. Тяжко без хелпов по DX - методом научного тыка.
Кстати, я смотрел примеры в уроках по DX8.1. Там снова есть возможность устанавливать Refresh Rate, но уже совсем по-другому. А мне нужно чтобы прога работала в любом DX.


Дата: Сен 10, 2003 06:58:44

Black_mirror
А можно всё это (а точнее строку из Ddraw.h) показать на асме (чтобы в ddraw.inc вставить)? А то я не могу понять эту идею с GUID.

keYMax
Ты вроде хорошо разбираешься в DX. Может ты ответишь на поставленный мною выше в этом сообщении вопрос? Или инфу подкинешь по DirectDraw 2? У тебя есть официальная дока по DirectDraw2? Сколько она весит? А то у меня есть SDK, но только для 8.1.


Дата: Сен 10, 2003 22:48:06

SolidCode

К сожалению официальной доки нет :(
Есть только Doc файл размером 650 кб (упакованый). На русском. В нем идет полный разбор DirectDraw 2. Хороший он или плохой судить не берусь. Смотрел только мельком.

С GUID пока не могу подсказать. Но там все просто. Где-то был пример, надо посмотреть.


Дата: Сен 10, 2003 22:53:03 · Поправил: keYMax

Если возникнут еще вопросы смогу ответить только через пару дней.


Дата: Сен 11, 2003 03:17:03 · Поправил: Black_mirror

SolidCode

pdd dd ?
label guid
dd 0xB3A6F3E0
dw 0x2B43,0x11CF
db 0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56

invoke DirectDrawCreate,offset guid,offset pdd,0
mov ebx,[pdd]
mov ebx,[ebx]
stdcall dword ptr [ebx+84],width,height,bpp,rate,0


Дата: Сен 15, 2003 18:33:52

keYMax, вышли мне, пожалуйста этот док по DX2. Или ссылку подкинь.

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.098