Szybkie wyświetlanie bitmapy

0

Witam.
Mam mały problem. Próbuję napisać aplikację, która w pewnych odstępach czasu wyświetla obraz na pulpicie tak szybko, aby nie był zauważalny dla ludzkiego oka. Próbowałem to już zrobić na kilka różnych sposobów (GDI, GDI+, DirectDraw), ale zawsze da się ten obrazek zauważyć.

Przykładowo:

GdiplusStartup(&gdiplusToken, &GDIplus, NULL);	
Graphics		graphics(GetWindowDC(GetDesktopWindow()));
Bitmap		bitmap(L"D:\\img.bmp");
CachedBitmap	cBitmap(&bitmap, &graphics);
while(1)
{
	graphics.DrawCachedBitmap(&cBitmap, 0, 0);
	InvalidateRect(NULL, NULL, TRUE);
	Sleep(1000);		
}

Czy ktoś ma jakiś pomysł, jak by to zrobić?

0

Windows nie wyświetla pulpitu z częstotliwością 60Hz.

0

może narysuj i wymuś jakoś odśnieżenie ekranu?

0

jeżeli będą to serie obrazów to spróbuj podwójnego buforowania.

0

Na GDI i GDI+ nie licz, one nie mają takiej wydajności, aby wyświetlać w nich animacje, ale DirectDraw?

Jeszcze co rozumiesz przez pulpit? Okno pulpitu, jak go uzyskujesz, FindWindow?

0

Użyj DX (raczej D3D niż DirectDraw).
Do drugiego bufora wrzuć swój obrazek
W petli:

  • zrób zrzut ekranu, wrzuć do pierwszego bufora.
  • pokaż okno DX
  • zamień bufory
  • znowu zamień bufory
  • ukryj okno DX

1 użytkowników online, w tym zalogowanych: 0, gości: 1