Einzelnen Beitrag anzeigen

CHackbart

Registriert seit: 22. Okt 2012
267 Beiträge
 
#5

AW: Tokyo, Android, TViewPort3D => Black Screen

  Alt 15. Jul 2017, 20:36
Hat jemand zufällig eine Idee woran das Problem lag bzw. liegt? Ich habe das Problem unter iOS, dass mein Viewport nicht angezeigt wird. Was unter Berlin noch problemlos ging, schaut jetzt wie im Anhang aus. Irgendwie wird nur ein kleiner Teil angezeigt und auch nicht an der korrekten Position. Unter Berlin lief es noch einwandfrei.
Jetzt habe ich versucht das ganze umzustellen auf ein reines TForm3D und bin über ein weiteres Problem gestolpert.

Mittels folgendem Code erstelle ich ein Screenshot:

Delphi-Quellcode:
procedure GenerateFormImageExt(AForm: TCommonCustomForm; ABmp: TBitmap);
var
  AScale: single;
begin
  TThread.Synchronize(TThread.CurrentThread,
    procedure()
    begin
      AScale := GetScreenScale(False);
      ABmp.Clear(claNull);
      ABmp.BitmapScale := AScale;
      ABmp.Width := Round(AForm.Width * AScale);
      ABmp.Height := Round(AForm.Height * AScale);

      if AForm is TForm then
      begin
        ABmp.Canvas.BeginScene;
        TForm(AForm).PaintTo(ABmp.Canvas);
        ABmp.Canvas.EndScene;
      end
      else if AForm is TForm3D then
        TForm3D(AForm).Context.CopyToBitmap(ABmp, ABmp.Bounds);
    end);

end;
Das geht unter DX11 und DX9, aber bei GLES (also auf den anderen Systemen) sieht man nur einen kleinen Ausschnitt. CopyToBitmap ruft procedure TCustomContextOpenGL.DoCopyToBits(const Bits: Pointer; const Pitch: Integer; const ARect: TRect); auf, aber der Code scheint mir nicht fehlerhaft, sondern entspricht im Endeffekt dem was ich schon seit Jahren mit OpenGL veranstalte.

Irgendwie ist das alles ziemlich unbefriedigend

Christian
Miniaturansicht angehängter Grafiken
img_1491.jpg  
  Mit Zitat antworten Zitat