AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX:OpenGL-Panel oder Layout in 2D Formular

Ein Thema von luisk · begonnen am 1. Jul 2016 · letzter Beitrag vom 6. Jul 2016
Antwort Antwort
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#1

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 2. Jul 2016, 13:30
kann ich auch reine OpenGL-Panel anlegen, so wie bei VCL ?
Sowas bräuchte ich.
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
514 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 2. Jul 2016, 14:20
kann ich auch reine OpenGL-Panel anlegen, so wie bei VCL ?
Sowas bräuchte ich.
Soweit ich weiss geht das leider nicht ohne weiteres... Für Android und iOS kannst du OpenGL ES einsetzen, Infos dazu kriegst du hier. Getestet habe ich das selber nicht sollte aber funktionieren.

Wie es mit Windows und Mac aussieht kann ich dir nicht sagen, habe aber gelesen das es nicht einfach (vielleicht auch unmöglich) sein soll Firemonkey dazu zu überreden ein eigenes OpenGL context zu erstellen. Wenn ich den Link dazu noch finde editiere ich ihn rein.

Freundliche Grüsse

Edit: Hier der Link
Milos
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
675 Beiträge
 
#3

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 2. Jul 2016, 14:55
Ich kann es Dir nicht genau sagen, aber bei GLScene funktioniert es wohl. Dort gibt es eine Unit "GLScene.FMX.Viewer". Es wird wohl irgendwie ein Kontext erzeugt.
Vlt hilft Dir das ja weiter.

P.S.: Wenn Du es geschafft hast, dann bitte eine Rückmeldung.

Hier noch ein Link.
Achtung: Bin kein Informatiker sondern komme vom Bau.

Geändert von Jens01 ( 2. Jul 2016 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#4

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 2. Jul 2016, 21:29
Hallo Milos, Hallo Jens01 so gehts z.B.:
1.Dieses VCL-Panel FMX-Adapter einbinden
http://alex-ai.blogspot.de/2013/11/h...iremonkey.html
Delphi-Quellcode:
unit FMXAdapter;
 
interface
 
uses
  FMX.Forms,
  Vcl.ExtCtrls;
 
type
  TFMX_Adapter_Panel = class(Vcl.ExtCtrls.TPanel)
  private
    FForm: TCommonCustomForm;
    procedure ResizeForm;
    procedure SetForm(const AForm: TCommonCustomForm);
  protected
    procedure Resize; override;
  public
    property Form: TCommonCustomForm read FForm write SetForm;
  end;
 
implementation
 
uses
  Types,
  Winapi.Windows, System.SysUtils,
  FMX.Platform.Win;
 
 
{ TFMX_Adapter_Panel }
 
procedure TFMX_Adapter_Panel.Resize;
begin
  inherited;
  ResizeForm();
end;
 
procedure TFMX_Adapter_Panel.ResizeForm;
begin
  if Assigned(FForm) then begin
    FForm.SetBounds(BorderWidth, BorderWidth, ClientWidth + BorderWidth, ClientHeight + BorderWidth);
  end;
end;
 
procedure TFMX_Adapter_Panel.SetForm(const AForm: TCommonCustomForm);
begin
  FForm := AForm;
  FForm.BorderIcons := [];
  FForm.BorderStyle := TFmxFormBorderStyle.bsNone;
  FForm.Visible := True;
  Winapi.Windows.SetParent( FmxHandleToHWND(FForm.Handle),Handle );
  FForm.Left:=0;
  FForm.Top:=0;
  FForm.Width:=width;
  FForm.Height:=height;
  ResizeForm();
end;
 
end.

2. und in einem FMX-Fenster plazieren über:
 FMX_Adapter_Panel.ParentWindow := FormToHWND( Self );

3. Ein weiteres FMX-Fenster FMX_Render_Form in diesem
FMX_Adapter_Panel plazieren über:
FMX_Adapter_Panel.Form:=FMX_Render_Form;
// SetForm gegenüber dem Link geändert, damit sich das Form sauber im Panel plaziert.

4. Dann kannst Du Dein Bsp. drinnen laufen lassen, indem Du Dein FMX_Render_Form übergibst:
http://esv.cocolog-nifty.com/blog/opengl/index.html
http://escargot.la.coocan.jp/SimpleS...OpenGL_FMX.pas

Ich hab auch versucht in das VCL-Panel zu rendern. Es tat sich aber nichts.
Beim FMX-Form im VCL-Panel geht es.

Die Frage ist: Wie läuft das Ganze unter Android, wenn man bei diesem Weg ein VCL-Panel als Container nehmen muss ?

Man kann auch ein FMX-Form in ein anderes legen über
 Winapi.Windows.SetParent( FmxHandleToHWND(Form_x.Handle),FmxHandleToHWND(Handle) ); doch wenn man den Rahmen und die Icons wegnimmt geht es nicht mehr - seltsam.

Embarcadero könnte da mal was passendes liefern.

Geändert von luisk ( 3. Jul 2016 um 06:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#5

AW: FMX:OpenGL-Panel oder Layout in 2D Formular

  Alt 6. Jul 2016, 07:47
das funktioniert leider nur unter Windows.
Gibt es für Android auch eine Lösung ?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz