OpenGl, "SetPixel"



  • Hi,

    Sagt mal, gibt es irgendwo vlt. ein übersichtliches CodeSnippet
    um ein COLORREF 2D Array in den Framebuffer zu schieben?

    Das OpenGL redbook und Codeworx sind zwar net aber auf den ersten blick doch unübersichtlich. (find ich jedenfalls)

    Was hab ich?
    einen 2Darray voller farben für eine x,y pos eines RECT.
    Was will ich: das das auf den Bildschirm landet.

    Seid gegrüßt und habt schon mal dank



  • Du bist auch bereits lange genug dabei, um zu wissen, dass du im falschen Forum bist, oder?

    btw:
    10 Sekunden google:
    http://www.flipcode.com/archives/Drawing_Pixels_With_OpenGL.shtml



  • Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ungetestetes copy&paste:

    void display(
      unsigned int *data, // pixel-buffer
      int w,              // dessen breite
      int h,              // dessen hoehe
      float x,            // x-position auf dem bildschirm
      float y,            // y-position auf dem bildschirm
      int screenWidth,    // Breite des Bildschirms
      int screenHeight    // Hoehe des Bildschirms
    )
    {
      glMatrixMode(GL_MODELVIEW);
      glPushMatrix();
      glLoadIdentity();   
      glTranslatef(x, y, 0.0f);
    
      glMatrixMode(GL_PROJECTION);
      glPushMatrix();
      glLoadIdentity();  
      glOrtho(0, screenWidth, screenHeight, 0, -1, 1);
    
      glEnable(GL_TEXTURE_RECTANGLE_ARB);
      glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture);
      glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
    
      glBegin(GL_QUADS);
      glTexCoord2i(w,0); glVertex2i(w, 0);
      glTexCoord2i(0,0); glVertex2i(0, 0);
      glTexCoord2i(0,h); glVertex2i(0, h);
      glTexCoord2i(w,h); glVertex2i(w, h);
      glEnd();
    
      glPopMatrix();
      glMatrixMode(GL_MODELVIEW);
      glPopMatrix();
    }
    

    Gegeben sei:

    GLuint texture;
    glGenTextures(1, &texture);
    

    GL_TEXTURE_RECTANGLE_ARB ist in glext.h definiert und funktioniert auch auf einigen Karten die sonst keine Non-Power-Of-Two Texturen unterstuetzen.



  • Jo, es war schon spät am abend,... und soooooone mühe wollte ich mir net machen 🙂

    ich gebe Dir ja recht das ich im falschen Forum war....
    ich danke für eure antworten,..

    Aber nochmal ne frage:

    ist es besser im IDLE mode den display im DBUFFER zu aktualsisieren, oder im TIMER callback??

    Timer Callback hat ja schliesslich den vorteil dass es alle n msec aufgerufen wird, idle das es ständig im hintergrund läuft,..

    seid gegrüßt


Anmelden zum Antworten