Seenkao писал(а):Добавлено спустя 2 часа 53 минуты 40 секунд:
Но почему тогда нет смещения в третьем варианте?
Написано же
812х600 все ок.
808х600 все ок
То есть если разрешение при масштабировании выравнивается то все ок.
Зы
1 В общем идея сделать кучу виртуальных экранов с возможностью этой же процедурой загружать весящие в пространстве картинки .
В принципе ничего не мешает все разрешения выравнивать на 4 байта (Все равно текстуры при захвате экрана или окон всегда копируются через StretchDraw ). Но просто непонятно в чем дело, а если непонятно значит можно ожидать что еще какие-то "фазы луны" вылезут. .
Вроде у меня стоит адаптация
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
Но при таких установках glTexParameteri это не катит .
(Честно говоря я просто скопировал эти настройки из примера где текстуры выводились относительно качественно. )
glPixelStorei(GL_UNPACK_ROW_LENGTH,t_bmp.Width); ускоряет загрузку "но это неточно".
2 "Почему не 32 бита?" ну так меня набор всяких полезных графических утилит на "24 бита онли рассчитан"
3 Нет это не формат загруженной картинки виноват хотя бы то тому, что битмапы я в список из файла загружаю с "перерисовкой через StretchDraw" так что pf24bit там "железно".
- Код: Выделить всё
LIM:=TImage.Create(Nil);
LIM.Picture.LoadFromFile(cPsr^.Name);
cPsr^.BMP:=TBitmap.Create;
cPsr^.BMP.PixelFormat:=pf24bit;
cPsr^.BMP.SetSize(cPsr^.W ,cPsr^.H );
cPsr^.BMP.Canvas.StretchDraw(rect(0,0,cPsr^.BMP.Width,cPsr^.BMP.Height),
LIM.Picture.Bitmap);
SRecList.Add(cPsr);
LIM.Free;
Добавлено спустя 33 минуты 23 секунды:Ура ! Заработало ...
Помогло glPixelStorei(GL_UNPACK_ALIGNMENT, 3);
(Хотя везде пишут что такой аргумент быть не может "потому что не может быть никогда" ....

)
pname Type Initial Value Valid Range
GL_PACK_ALIGNMENT integer 4 1, 2, 4, or 8
GL_UNPACK_ALIGNMENT integer 4 1, 2, 4, or 8
Добавлено спустя 20 минут 15 секунд:Рано радовался "работает через раз " ...
Добавлено спустя 1 час 34 минуты 22 секунды:Уф "100 000 ведер воды и ..."(С) !
glPixelStorei(GL_UNPACK_ALIGNMENT, 3);
Нужно и при создании текстуры юзать.