Сообщение от
valerium
на композите и на HDMI картинка цветная, а на VGA она в оттенках синего и видна не вся - так, как будто на вход подключен только синий канал, а красный и зеленый в обрыве.
.....
идеи, какой параметр и где поискать, чтобы синеву выправить ?
Сегодня плотно полистал чужой код на предмет того, что же делается с цветами, да еще и неодинаково для всех трех.
Обнаружил следующее в Core\code\Adjust_customer.c:
Код:
void CAdjustContrast(void)
{
BYTE cnt;
if(_GET_INPUT_SOURCE() == _SOURCE_VGA)
{
for(cnt=0;cnt<3;cnt++)
{
//pData[cnt] = (((WORD)stColorTempData.ColorTemp[cnt] * stConBriData.Contrast / 128) > 255) ? 255 : (BYTE)((WORD)stColorTempData.ColorTemp[cnt] * stConBriData.Contrast / 128);
pData[cnt] = (BYTE)(((WORD)stColorTempData.ColorTemp[cnt+3] * (stConBriData.Contrast+_CONTRAST_MIN) / 128) > 255) ? 255 : (BYTE)((WORD)stColorTempData.ColorTemp[cnt+3] * (stConBriData.Contrast+_CONTRAST_MIN) / 128);
}
}
else
{
pData[0] = (0x80 + stConBriData.Contrast - 38);
pData[1] = (0x80 + stConBriData.Contrast - 38);
pData[2] = (0x80 + stConBriData.Contrast - 38);
}
CAdjustSetContrast();
}
Первый фрагмент с вычислением pData[cnt] злостно закомментарен и похакан второй строкой, которая берет цветовую температуру из каких-то неведомых ячеек того же массива. После восстановления первой строки и удаления второй (странной), затем выставления цветовой температуры в юзер-режиме R=128, G=128, B=128, а также поднятия контрастности почти в самый верх и немного яркости я вместо синевы добился вполне себе достойной цветной картинки. Правда неясно, почему эти параметры криво сохраняются, точнее, после выключения-включения выполняется некий auto adjust и часть параметров слетает. Надо будет разбираться, откуда они берутся при старте.
Что это было ? Зачем это ? Может быть этот код уже побывал в Индии и претерпел некоторые тамошние суровые и беспощадные изменения ?