OSDev

для всех
Текущее время: 27 апр 2024, 21:26

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: VESA и альфа канал
СообщениеДобавлено: 02 июн 2012, 23:21 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
скажите можно ли запустить альфа канал в визе и как это сделать,
просто на много проще вписывать по 4 вайта чем 3

п.с.(альфа канал это прозрачность)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 02 июн 2012, 23:37 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
Альфа-канала нет, но 32-битные режимы есть - "лишний" байт никак в них не используется.

Как именно распределены цвета в пикселе можно узнать, вызвав функции получения информации о режиме VBE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 00:45 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
мне эти режимы и нужны,
везде пишут 24-битные и 32-битные режимы
а какой из них 32 и какой 24 не пишут,
мне то оно надо не для прозрачноси.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 09:21 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
Пойдем сложным путем (опять). Спецификация на VBE3.

Сначала вы вызываете функцию 4F00h VBE и получаете в ответ структуру, где помимо информации о самом адаптере есть список номеров режимов - двухбайтовых целых. Затем для каждого режима из этого списка вызываете функцию 4F01 и получаете в ответ блок информации о режиме. Полей там достаточно много, но нас сейчас интересует несколько.

В поле ModeAttributes указаны атрибуты режима. Дальше я буду описывать работу только с режимами, у которых там установлены биты 0, 3, 4, 7. Поле memorymodel указывает организацию памяти режима, вам нужны только direct color режимы (значение 6).

Следующие поля - XResolution, YResolution, BitsPerPixel и целая группа масок и смещений для красного, зеленого, синего цветов и зарезервированной части. Они описывают, как именно используется каждый бит пикселя. А нужны они, например, из-за того, что есть два 16-битных режима: 5:6:5:0 и 5:5:5:1, и иначе их не различить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 10:06 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
scuter писал(а):
скажите можно ли запустить альфа канал в визе и как это сделать,
просто на много проще вписывать по 4 вайта чем 3

п.с.(альфа канал это прозрачность)


альфа канал это 4 байт пикселя, его можно использовать для создания прямой ссылки на объект чей этот пиксетль, или прозрачности. Что собственно я и делаю.
Он естественно есть, если пиксель 32битный. Для весы у меня такой код.

mov dword[VESAInfo_Signature],'VBE2'
mov ax, 4F00h
mov di, VESA_Info
int 10h

lds si,[VESAInfo_VideoModePtr]
jmp .1
@@: add si,2

mov ax,4F01h ;узнаем LFB режима
mov di,Mode_Info
int 10h

cmp [ModeInfo_Width],1024;800;640
jnz .1
cmp [ModeInfo_Height],768;600;480
jnz .1
cmp [ModeInfo_Depth],32
jz @f

.1: mov cx,[si]
cmp cx,0FFFFh
jne @b
@@:

mov ax,4F02h ;установим режим
mov bx,cx
int 10h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 10:25 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Угу, а если нужного режима нет, устанавливаем режим 0FFFFh :|


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 12:36 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
На моей интеловской карточке нет 32битных режимов только 24битные. И не все они с LFB некоторые только через окна работают


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VESA и альфа канал
СообщениеДобавлено: 03 июн 2012, 13:03 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Вообще есть мнение, что интеловские работают сейчас только с 32битным, вообще все операции с альфа коналом происходят в буфере, а в самой видео памяти, которая выводится на экран постоянно нет конечно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB