OpenGL w kontrolce TGraphicControl

Odpowiedz Nowy wątek
2006-12-17 13:04
0

Pisze kontrolke bedaca plansza do gry w kolko i krzyzyk. Dziedziczy ona po klasie TGraphicControl.
Plansza jest wyswietlana juz jako gotowa bitmapa TGraphic czyli juz wczesniej przygotowana. Wykorzystuje do tego celu funkcje API BitBlt.
Niestety przy kazdym wywolaniu Invalidate() plansza miga, nie za kazdym razem ale widac ze cos jest nie tak.
Zna ktos jakis inny sposob wyswietlania bitmapy zeby nie migalo?

Probuje wykorzystac OpenGL, kompiluje sie ale podczas uruchamiania programu wyskakuje blad. Program zatrzymuje sie w zaznaczonym miejscu:

    HDC *hDC;
    HGLRC *hRC;
    PIXELFORMATDESCRIPTOR pfd;
    int iFormat;

    *hDC = GetDC (Canvas->Handle);

    ZeroMemory (&pfd, sizeof (pfd));
    pfd.nSize = sizeof (pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW |
    PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
    iFormat = ChoosePixelFormat (*hDC, &pfd);
    SetPixelFormat (*hDC, iFormat, &pfd);

-> *hRC = wglCreateContext( *hDC );

    wglMakeCurrent( *hDC, *hRC );

Macie jakies pomysly jak to zrobic zeby ladnie sie prezentowalo bez tego okropnego mrygania?


Pozostało 580 znaków

2006-12-18 13:58
0

up..

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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