Вообщем констатирую "маразм крепчал"  (в даном случае мой собственный). 
 
 Сделал я просто замечательное ускорение захвата кадров ... (запахал его в отдельный поток)  
Ура! Но упс  SBS не работает ... Шо ? Где ! А понял! В "левый поток" не приходят флаги от рендера (для отдельного пересчета  для левого и правового глаза  ) ничтоже суетясь затолкал в захват еще два вызова процедуры захвата ... Не работает? 
Ну где "наша не пропадала" запихал в  рендер разделение картинки на две половинки  . ( Думал нагляднее будет... Ага ! "Нагляднее по самое не хочу"  ) Три раза переписал ... 
Не фурчит. Наконец вспомнил, что можно влезть в карту верши текстуры. Так заработало. Ушёл спать .
Но "непокорное" разделение  достало настолько, что утром написал специальный "Баг тест"...         
- Код: Выделить всё
- procedure CreateSnapshotPlusWH (var B:TBitmap;W,H:Integer;WindowHD:HWND;Sbs:Integer);
 var
 wnd:HWND;
 dc:HDC;
 r:TRect;
 X,WS,HS:Longint;
 begin
 If B=Nil then exit;
 
 wnd :=WindowHD;
 if wnd = 0 then
 begin
 dc := GetDC(0);
 Ws:=Screen.Width;
 Hs:=Screen.Height;
 end
 else
 begin
 dc := GetWindowDC(wnd);
 GetWindowRect(wnd,r);
 Ws:=r.Right-r.Left;
 Hs:=r.Bottom-r.Top;
 end;
 
 if SBS in [1,2] then ws:=ws div 2;
 if SBS in [0,1] then X:=0;
 if SBS = 2 then x:=ws;
 b.SetSize(W,H);
 
 StretchBlt(B.Canvas.Handle,0,0,B.Width,B.Height,DC,x,0,WS,HS,SRCCOPY);
 ReleaseDC(wnd,dc);
 end;
 
 procedure TMForm.Button1Click(Sender: TObject);
 procedure GLuKoTest1;
 Var
 L,R :TBitmap;
 begin
 L:=TBitmap.Create; R:=TBitmap.Create;;
 CreateSnapshotPlusWH(R,800,600,0,1);
 CreateSnapshotPlusWH(L,800,600,0,2);
 IMage1.Picture.Assign(R);
 IMage2.Picture.Assign(L);
 L.Free;
 R.Free;
 end;
 procedure GLuKoTest2;
 Var
 C,L,R :TBitmap;
 begin
 L:=TBitmap.Create;R:=TBitmap.Create;C:=TBitmap.Create;
 
 CreateSnapshotPlusWH(C,800,600,0,0);
 L.SetSize(R_W div 2,R_H); R.SetSize(R_W div 2,R_H);
 
 R.Canvas.CopyRect(rect(0,0,R.Width,R.Height),
 C.Canvas,rect(0,0,R.Width,C.Height));
 
 L.Canvas.CopyRect(rect(0,0,L.Width,L.Height),
 C.Canvas,rect(L.Width,0,C.Width,C.Height));
 
 IMage1.Picture.Assign(R);
 IMage2.Picture.Assign(L);
 
 c.Free;
 L.Free;
 R.Free;
 end;
 
 begin
 GLuKoTest2;
 end;
 
Это уже исправленная версия ...
Но в начале там было что-то вроде этого. 
L.Canvas.CopyRect(rect(0,0,L.Width,L.Height), C.Canvas,rect(
0,L.Width,C.Width,C.Height));
Очередная "Жертва копипасты" !
В свое оправдание  могу сказать  только, что при такой ошибке картинка получается "в Пикассо Стайл " .
Вообщем не пишите программы глубокой ночь, выпив бочку кофе . 
Бо на утро, будет как у старины Роберта Вуда который накурившись  опиума сделал чудное открытие и даже чудовищным усилием воли  заставил себя его записать, но на утро он прочел просто сокрушительную истину 
"Банан длинен, а его кожура еще длинней!"   