Citat:
Mildly Innovative LunnatX:
Dobro , lepo je to , ali nisi napisao KAKO staviti prikaz u preview monitor ... ;)
Usput , zar nisi cuo za UPX ? Lepa je to stvar ... ;)
Svaki screensaver treba da exportuje sledece funkcije:
Code:
LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
Ako screensaver radi u preview modu, Windows ce pozvati ScreenSaverProc a hWnd
parametar ce biti handle malog monitora u preview prozoru. Ako screensaver radi
fullscreen hWnd parametar ce biti handle desktop-a.
Vidi primer:
Code:
LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
RECT clientrect;
switch (message)
{
case WM_CREATE:
// TODO: Add initialization code for your screensaver here
if (!EnableOpenGL(hWnd)) return 0;
read_config();
GetWindowRect( hWnd, &clientrect );
ScreenWidth = clientrect.right - clientrect.left;
ScreenHeight = clientrect.bottom - clientrect.top;
GLInit();
Init();
SetTimer( hWnd, ID_TIMER, 1000/FPS, NULL );
return( 0 );
case WM_TIMER:
DrawFrame(hWnd);
return( 0 );
break;
case WM_DESTROY:
// TODO: Cleanup resources used by your screensaver here.
KillTimer( hWnd, ID_TIMER );
Shutdown( hwnd );
wglMakeCurrent( NULL, NULL );
wglDeleteContext( MainRC );
ReleaseDC( hWnd, MainDC );
break;
}
return DefScreenSaverProc(hWnd, message, wParam, lParam);
}
Kada zavrsis sa obradom poruka pozovi
DefScreenSaverProc umesto
DefWindowProc
Znam za upx... matrix ss sam napisao pre nekoliko godina (bas kada se pojavio
Matrix). U to vreme UPX mi je pravio probleme (memory leak) pa sam odustao.
yooyo