Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi nonVCL OpenGL-Screensaver (https://www.delphipraxis.net/91966-nonvcl-opengl-screensaver.html)

SnuffMaster23 12. Mai 2007 14:43


nonVCL OpenGL-Screensaver
 
Die Fortsetzung von hier...

Also die Preview (mit Timer, 100 ms) ist schwarz, es wird auch nichts gerendert, der Rechner bleibt aber bedienbar^^

Das ist meine OpenGL-Initialisierung:
Delphi-Quellcode:
InitOpenGL;
FillChar(pfd, sizeof(pfd), 0);
DC            := GetDC(AppHWND);
pfd.cColorBits := 32;
pfd.cAlphaBits := 32;
pfd.cDepthBits := 32;
pfd.dwFlags   := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
p             := ChoosePixelFormat(DC, @pfd);
SetPixelFormat(DC, p, @pfd);
RC            := wglCreateContext(DC);
wglMakeCurrent(DC, RC);

glClearColor(1, 0, 0, 1);
glEnable(GL_DEPTH_TEST);

glViewport(0, 0, WNDRect.Right, WNDRect.Bottom);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(45, WNDRect.Right / WNDRect.Bottom, 1, 10);
glMatrixMode(GL_MODELVIEW);
glShadeModel(GL_SMOOTH);
Damit müsste der Bildschirm bzw. das Fenster ja schonmal rot werden, tuts aber nicht.
Sogar wenn ich in Render noch ein SwapBuffers(DC) einfüge, das hatte ich vergessen :oops:

Naja, erstmal würds mir ja reichen wenn ichs im Schonermodus testen könnte, also das Problem mit PeekMessage beseitigt wäre :)

turboPASCAL 12. Mai 2007 16:08

Re: nonVCL OpenGL-Screensaver
 
Guck mal bei http://www.delphigl.com/ vorbei, da gibt es diverse Templates...

teebee 13. Mai 2007 18:49

Re: nonVCL OpenGL-Screensaver
 
Kennst Du schon das NeHe-Tutorial? Benutzt PeekMessage, es gibt auch Delphi-Source ohne VCl (unten auf der Seite).

SnuffMaster23 14. Mai 2007 15:40

Re: nonVCL OpenGL-Screensaver
 
So, ich hab mir jetzt ein Template von dgl gezogen...
Damit funktionierts, nur es ist kein Screensaver.

teebee 14. Mai 2007 18:35

Re: nonVCL OpenGL-Screensaver
 
Dein Programm in einen Bildschirmschoner umzubauen ist nicht so schwierig. Für einfaches Testen reicht es schon, einfach die Dateiendung in .scr zu ändern. (Oder das gleich per Direktive einzustellen.) Dann musst Du nur noch die verschiedenen möglichen Parameter behandeln, statt DefWindowProc empfiehlt MS DefScreenSaverProc, das sollte es dann aber sein. :) Findest Du alles in turboPascals Template.

SnuffMaster23 14. Mai 2007 18:45

Re: nonVCL OpenGL-Screensaver
 
Nur mit turboPascals Template funktionierts nicht :(

Sicher, zum testen reicht die Endung und DefScreenSaverProc, aber dann krieg ich ja noch keine Preview.
Aber darum kümmer ich mich später, ich bin froh dass ich jetzt endlich was sehe^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 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