und nocheinmal opengl

  1. thurin

    thurin Thread StarterMacUser Mitglied

    Mitglied seit:
    24.03.2004
    Beiträge:
    77
    Zustimmungen:
    0
    also ich habs einam geschaft opengl im vollbildmodus zu initialisieren.. allerdings bleiben alle opengl befehle ohne wirkung.. sprich: der bildschirm bleibt schwarz..

    hier der quellcode:

    #include <unistd.h>
    #include <iostream.h>
    #include <ApplicationServices/ApplicationServices.h>
    #include <OpenGL/OpenGL.h>
    #include <OpenGL/gl.h>
    #include <OpenGL/glu.h>

    int main (int argc, char * const argv[]) {

    CGDisplayCapture(kCGDirectMainDisplay);

    CGOpenGLDisplayMask displayMask =
    CGDisplayIDToOpenGLDisplayMask( kCGDirectMainDisplay ) ;

    CGLPixelFormatAttribute attribs[] =
    {
    kCGLPFAFullScreen,
    kCGLPFADisplayMask,
    (CGLPixelFormatAttribute)displayMask,
    (CGLPixelFormatAttribute)NULL
    } ;

    CGLPixelFormatObj pixelFormatObj ;
    long numPixelFormats ;

    CGLError error = CGLChoosePixelFormat( attribs, &pixelFormatObj, &numPixelFormats );
    std::cout << "choose pixel format: " << CGLErrorString( error ) << std::endl;

    if ( pixelFormatObj == NULL ) std::cout << "format ist null!" << std::endl;

    CGLContextObj contextObj ;
    error = CGLCreateContext( pixelFormatObj, NULL, &contextObj ) ;
    std::cout << "create context: " << CGLErrorString( error ) << std::endl;

    if ( contextObj == NULL ) std::cout << "Kontext ist null!" << std::endl;

    error = CGLSetCurrentContext( contextObj ) ;
    std::cout << "set current context: " << CGLErrorString( error ) << std::endl;
    error = CGLSetFullScreen( contextObj ) ;
    std::cout << "set fullscreen: " << CGLErrorString( error ) << std::endl;

    glClearColor( 0, 0, 1, 0 ) ;

    glBegin( GL_POINT );
    glPointSize( 10.0 );
    glClearColor( 1.0, 0.0, 0.0, 1.0 );
    //glClear( GL_COLOR_BUFFER_BIT );
    //glColor3f( 0.0, 1.0, 0.0 );
    glVertex2i( 100, 100 );
    glVertex2i( 100, 150 );
    glEnd();

    sleep( 3 );

    CGLSetCurrentContext( NULL ) ;
    CGLClearDrawable( contextObj ) ;
    CGLDestroyContext( contextObj );

    CGLDestroyPixelFormat( pixelFormatObj ) ;

    CGReleaseAllDisplays();

    return 0;
    }

    hat wer eine ahnung woran das liegt?

    lg, f
     
    thurin, 27.04.2004
  2. ks23

    ks23MacUser Mitglied

    Mitglied seit:
    15.04.2004
    Beiträge:
    1.935
    Zustimmungen:
    2
    ks23, 27.04.2004
  3. Kusanagi

    KusanagiMacUser Mitglied

    Mitglied seit:
    22.02.2004
    Beiträge:
    63
    Zustimmungen:
    0
    Tja also in deinem Prog bekommt OpenGL einfach den Befehl zum Zeichen nicht.
    Probier mal ein glFlush() nach glEnd()
     
    Kusanagi, 06.05.2004
  4. thurin

    thurin Thread StarterMacUser Mitglied

    Mitglied seit:
    24.03.2004
    Beiträge:
    77
    Zustimmungen:
    0
    &nbsp;

    das problem hat sich schon längst gelöst.. komischerweise setzt glVertex2i die punkte nicht in devicekoordinaten, sondern auch in den normalisierten viewportkoordinaten (-1 - 1) mit glVertex2f im bereich -1 - 1 hats dann tadellos funktioniert..

    glFlush is nicht zwingend notwendig..
     
    thurin, 06.05.2004
Die Seite wird geladen...
Ähnliche Themen - nocheinmal opengl
  1. Dylans Ghost
    Antworten:
    2
    Aufrufe:
    251
    Dylans Ghost
    06.11.2015
  2. Dylans Ghost
    Antworten:
    4
    Aufrufe:
    403
    Dylans Ghost
    30.10.2012
  3. theGK01
    Antworten:
    7
    Aufrufe:
    797
    theGK01
    10.06.2012
  4. azrax
    Antworten:
    1
    Aufrufe:
    890
    DeineMudda
    10.03.2011