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 секунды:
Добавлено спустя 1 час 34 минуты 22 секунды:Уф "100 000 ведер воды и ..."(С) !
  glPixelStorei(GL_UNPACK_ALIGNMENT, 3);
Нужно и при создании текстуры  юзать.