OpenGL w kontrolce TGraphicControl

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?


0

up..

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