PIXELFORMATDESCRIPTOR und DEPTH_TEST Problem



  • Hallo,

    ich hoffe ich bin hier im richtigen Themengebiet... Also ich habe eine OpenGL-Anwendung. Funktioniert auch alles, bis auf wenn ich den DEPTH_TEST anschalte, dann sehe ich eigentlich nur manchmal ein paar Teile der 3D Scene. Schalte ich ihn aus, funktioniert alles, jedoch wird logischweise der Tiefentest nicht ausgefuehrt. Jetzt habe ich in ein paar Foren geschaut und gesehen das der PIXELFORMATDESCRIPTOR evtl. falsch sein koennte. Aber ich finde bei mir keinen Fehler..
    Vielleicht jemand anderes? Welche Fehlerquellen gibt es noch?

    PIXELFORMATDESCRIPTOR pfd;
    
    	ZeroMemory( &pfd, sizeof( PIXELFORMATDESCRIPTOR ) );
    
    	pfd.nSize = sizeof( PIXELFORMATDESCRIPTOR );
    	pfd.nVersion = 1;
    	pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    	pfd.iPixelType = PFD_TYPE_RGBA;
    	pfd.cColorBits = 24;
    	pfd.cDepthBits = 32;
    	pfd.iLayerType = PFD_MAIN_PLANE;
    

    Nebenbei, fuer was ist ZeroMemory...?



  • pfd.cDepthBits = 32;
    

    der depth buffer kann maximal 24 bit breit sein 😉 die übrigen 8 bit werden, wenn spezifiziert als stencil buffer benutzt. wobei

    pfd.cColorBits = 24;
    

    denke ich durchaus 32 bit sein kann, da der alpha teil dort imho implizit mit angegeben ist 🙂

    edit:

    ZeroMemory() ist, in deinem beispiel, das geiche wie:

    memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
    

    dies schreibt sizeof(PIXELFORMATDESCRIPTOR) bytes nullen in den speicherbereich, der durch den angegebenen zeiger spezifiziert ist.

    edit2: bad grammatik ftl 😞


Anmelden zum Antworten