Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi opengl nur in panel (https://www.delphipraxis.net/26909-opengl-nur-panel.html)

nailor 31. Jul 2004 13:28


opengl nur in panel
 
hab ne vcl anwendung und will nur auf einem panel (nicht der ganzen form) opengl nutzen. geht das? wie?

mischerr 31. Jul 2004 16:13

Re: opengl nur in panel
 
Ja, klar geht das. Mache das z.Zt. auch. Eigentlich ist das garkeine besondere Sache. Du must einfach statt des Handles des Forms, das Handle des Panels sowie dessen Grösseninformationen verwenden. Ich hab mir dazu eine Klasse geschrieben (welche aber noch nicht fertig ist), die die OpenGL-Aktivitäten übernimmt. Alle zu rendernden statischen Elemente werden innerhalb dieser Klasse erledigt. Alle dynamischen in einem CallBackEvent im Form. Bei mir reicht es, dass die Inhalte bei OnIdle gerendert werden (2D / CAD-Zeichnung) in Spielen würde ich einen Timer (DX-Timer), QueryPerformanceCounter oder Thread verwenden.

Hier im Groben, wie es bei mir klappt.

Form.Create...
Code:
  FOpenGL:= TOpenGL.Create(pView.Handle, OpenGLRenderCallBack);
  Application.OnIdle:= ApplicationEventIdle;
Im OnIdle wird hier gerendert...
Code:
  FOpenGL.Render;
Der Konstructor meiner Klasse...
Code:
constructor TOpenGL.Create(WndHND: THandle; RenderCallBack: TNotifyEvent);
begin
  inherited Create;
  FRenderCallBack:= RenderCallBack;
  FWnd:= WndHND;
  FDC := GetDC(FWnd);
  SetupPixelFormat;
  FRC := wglCreateContext(FDC);
  wglMakeCurrent(FDC, FRC);
  glEnable(GL_DEPTH_TEST);
  glLoadIdentity;
  glEnable(GL_CULL_FACE);
  glCullFace(GL_BACK);
end;
Aber auch hier bei mir gibt's noch viele "todo's". :wink:

Grüsse!

nailor 31. Jul 2004 17:40

Re: opengl nur in panel
 
ok, hatte nur das handle geändert, nicht die größe. das klappte dann nicht so ganz. werde es aber nochmal probieren


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz