Changeset 1200


Ignore:
Timestamp:
Oct 29, 2008 12:05:35 PM (14 years ago)
Author:
gah
Message:

working version of nanovis

Location:
trunk/packages/vizservers/nanovis
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanovis/Trace.cpp

    r1199 r1200  
    66#include <GL/glut.h>
    77
    8 void Trace(const char* format, ...)
     8void
     9Trace(const char* format, ...)
    910{
    1011    char buff[1024];
    1112    va_list lst;
    12 
     13   
    1314    va_start(lst, format);
    1415    vsnprintf(buff, 1023, format, lst);
     
    1920
    2021bool
    21 CheckFramebuffer(GLenum *statusPtr)
     22CheckFBO(GLenum *statusPtr)
    2223{
    23     *statusPtr = (GLenum)glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
     24    *statusPtr = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
    2425    return (*statusPtr == GL_FRAMEBUFFER_COMPLETE_EXT);
    2526}
    2627
    27 
    28 
    2928void
    30 PrintFramebufferStatus(GLenum status, const char *string)
     29PrintFBOStatus(GLenum status, const char *prefix)
    3130{
    32   const char *mesg;
    33   fprintf(stderr, "FB Status: %s: ", string);
    34   switch(status) {
     31    const char *mesg;
     32    switch(status) {
    3533    case GL_FRAMEBUFFER_COMPLETE_EXT:
    36       mesg = "<<<< OK >>>>";
    37       break;
     34        mesg = "<<<< OK >>>>";                                          break;
    3835    case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT:
    39       mesg = "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT";
    40       break;
     36        mesg = "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT";              break;
    4137    case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
    42       mesg = "GL_FRAMEBUFFER_UNSUPPORTED_EXT";
    43       break;
     38        mesg = "GL_FRAMEBUFFER_UNSUPPORTED_EXT";                        break;
    4439    case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:
    45       mesg = "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT";
    46       break;
     40        mesg = "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT";      break;
    4741    case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:
    48       mesg = "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT";
    49       break;
     42        mesg = "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT";              break;
    5043    case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:
    51       mesg = "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT";
    52       break;
     44        mesg = "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT";                 break;
    5345    case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:
    54       mesg = "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT";
    55       break;
     46        mesg = "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT";             break;
    5647    case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:
    57       mesg = "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT";
    58       break;
     48        mesg = "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT";             break;
    5949    default:
    60       fprintf(stderr, "UNKNOWN framebuffer status %u\n", (unsigned int)status);
    61       return;
    62   }
    63   fprintf(stderr, "%d\n", mesg);
     50        fprintf(stderr, "FB Status: %s: UNKNOWN framebuffer status %u\n",
     51                prefix, (unsigned int)status);
     52        return;
     53    }
     54    fprintf(stderr, "FB Status: %s: %s", prefix, mesg);
    6455}
    6556
    6657bool
    67 CheckGL(const char *string)
     58CheckGL(const char *prefix)
    6859{
    69   const char *mesg;
    70   GLenum status = (GLenum)glGetError();
    71   switch(status) {
     60    const char *mesg;
     61    GLenum status = (GLenum)glGetError();
     62    switch(status) {
    7263    case GL_NO_ERROR:
    73       return true;
     64        return true;
    7465    case GL_INVALID_ENUM:
    75       mesg = "GL_INVALID_ENUM"; break;
     66        mesg = "GL_INVALID_ENUM";                       break;
    7667    case GL_INVALID_VALUE:
    77       mesg = "GL_INVALID_VALUE"; break;
     68        mesg = "GL_INVALID_VALUE";                      break;
    7869    case GL_INVALID_OPERATION:
    79       mesg = "GL_INVALID_OPERATION"; break;
     70        mesg = "GL_INVALID_OPERATION";                  break;
    8071    case GL_STACK_OVERFLOW:
    81       mesg = "GL_STACK_OVERFLOW"; break;
     72        mesg = "GL_STACK_OVERFLOW";                     break;
    8273    case GL_STACK_UNDERFLOW:
    83       mesg = "GL_STACK_UNDERFLOW"; break;
     74        mesg = "GL_STACK_UNDERFLOW";                    break;
    8475    case GL_OUT_OF_MEMORY:
    85       mesg = "GL_OUT_OF_MEMORY"; break;
     76        mesg = "GL_OUT_OF_MEMORY";                      break;
    8677    case GL_INVALID_FRAMEBUFFER_OPERATION_EXT:
    87       mesg = "GL_INVALID_FRAMEBUFFER_OPERATION_EXT"; break;
     78        mesg = "GL_INVALID_FRAMEBUFFER_OPERATION_EXT";  break;
    8879    default:
    89       fprintf(stderr, "UNKNOWN GL status %d: %s\n", status, string);
    90       return false;
    91   }
    92   fprintf(stderr, "GL Status: %s: %s", string, mesg);
    93   return false;
     80        fprintf(stderr, "GL Status: %s: Unknown status %d\n", prefix, status);
     81        return false;
     82    }
     83    fprintf(stderr, "GL Status: %s: %s", prefix, mesg);
     84    return false;
    9485}
    9586
  • trunk/packages/vizservers/nanovis/Trace.h

    r1199 r1200  
    66
    77extern void Trace(const char* format, ...);
    8 extern bool CheckFramebuffer(GLenum *statusPtr);
    9 extern void PrintFramebufferStatus(GLenum status, const char *string);
    10 extern bool CheckGL(const char *string);
     8extern bool CheckFBO(GLenum *statusPtr);
     9extern void PrintFBOStatus(GLenum status, const char *prefix);
     10extern bool CheckGL(const char *prefix);
    1111#endif
  • trunk/packages/vizservers/nanovis/nanovis.cpp

    r1199 r1200  
    601601{
    602602    if (debug_flag) {
    603        fprintf(stderr, "in init_offscreen_buffer\n");
     603        fprintf(stderr, "in init_offscreen_buffer\n");
    604604    }
    605605    // Initialize a fbo for final display.
    606606    glGenFramebuffersEXT(1, &final_fbo);
    607    
     607    
    608608    glGenTextures(1, &final_color_tex);
    609609    glBindTexture(GL_TEXTURE_2D, final_color_tex);
    610 
     610   
    611611    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    612612    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     
    629629
    630630    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
    631         GL_TEXTURE_2D, final_color_tex, 0);
     631        GL_TEXTURE_2D, final_color_tex, 0);
    632632    glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
    633         GL_RENDERBUFFER_EXT, final_depth_rb);
     633        GL_RENDERBUFFER_EXT, final_depth_rb);
     634
    634635    CheckGL("glFramebufferTexture2DEXT");
     636
    635637    GLenum status;
    636     if (!CheckFramebuffer(&status)) {
    637        if (debug_flag) {
    638           PrintFramebufferStatus(status, "final_fbo");
    639        }
    640     }
     638    if (!CheckFBO(&status)) {
     639        if (debug_flag) {
     640            PrintFBOStatus(status, "final_fbo");
     641        }
     642    }
     643
    641644    // Check framebuffer completeness at the end of initialization.
    642645    //CHECK_FRAMEBUFFER_STATUS();
    643     //NanoVis::display();
    644 
     646   
    645647    //assert(glGetError()==0);
    646648    if (debug_flag) {
    647        fprintf(stderr, "leaving init_offscreen_buffer\n");
     649        fprintf(stderr, "leaving init_offscreen_buffer\n");
    648650    }
    649651}
     
    655657{
    656658    if (debug_flag) {
    657        fprintf(stderr, "in resize_offscreen_buffer(%d, %d)\n", w, h);
     659        fprintf(stderr, "in resize_offscreen_buffer(%d, %d)\n", w, h);
    658660    }
    659661    win_width = w;
    660662    win_height = h;
    661 
     663   
    662664    if (fonts) {
    663665        fonts->resize(w, h);
    664666    }
    665 
    666667    //fprintf(stderr, "screen_buffer size: %d\n", sizeof(screen_buffer));
    667668    printf("screen_buffer size: %d %d\n", w, h);
    668 
     669   
    669670    if (screen_buffer) {
    670671        delete[] screen_buffer;
    671672        screen_buffer = NULL;
    672673    }
    673 
     674   
    674675    screen_buffer = new unsigned char[4*win_width*win_height];
    675676    assert(screen_buffer != NULL);
    676 
     677   
    677678    //delete the current render buffer resources
    678679    glDeleteTextures(1, &final_color_tex);
    679680    glDeleteFramebuffersEXT(1, &final_fbo);
    680 
     681   
    681682    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb);
    682683    glDeleteRenderbuffersEXT(1, &final_depth_rb);
    683 
     684   
    684685    //change the camera setting
    685686    cam->set_screen_size(0, 0, win_width, win_height);
    686687    plane_render->set_screen_size(win_width, win_height);
    687 
     688   
    688689    //Reinitialize final fbo for final display
    689690    glGenFramebuffersEXT(1, &final_fbo);
    690 
     691   
    691692    glGenTextures(1, &final_color_tex);
    692693    glBindTexture(GL_TEXTURE_2D, final_color_tex);
     
    701702#endif
    702703    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, final_fbo);
    703     glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
    704                               GL_COLOR_ATTACHMENT0_EXT,
    705                               GL_TEXTURE_2D, final_color_tex, 0);
    706 
     704    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
     705        GL_TEXTURE_2D, final_color_tex, 0);
     706   
    707707    glGenRenderbuffersEXT(1, &final_depth_rb);
    708708    glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, final_depth_rb);
    709     glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
    710                              GL_DEPTH_COMPONENT24, win_width, win_height);
    711     glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
    712                                  GL_DEPTH_ATTACHMENT_EXT,
    713                                  GL_RENDERBUFFER_EXT, final_depth_rb);
    714 
     709    glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24,
     710        win_width, win_height);
     711    glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
     712        GL_RENDERBUFFER_EXT, final_depth_rb);
     713   
    715714    CheckGL("glFramebufferText2DEXT");
    716715    GLenum status;
    717     if (!CheckFramebuffer(&status)) {
    718        if (debug_flag) {
    719           PrintFramebufferStatus(status, "final_fbo");
    720        }
    721     }
     716    if (!CheckFBO(&status)) {
     717        if (debug_flag) {
     718            PrintFBOStatus(status, "final_fbo");
     719        }
     720    }
     721
    722722    //CHECK_FRAMEBUFFER_STATUS();
    723723    if (debug_flag) {
    724        fprintf(stderr, "leaving resize_offscreen_buffer(%d, %d)\n", w, h);
     724        fprintf(stderr, "leaving resize_offscreen_buffer(%d, %d)\n", w, h);
    725725    }
    726726}
     
    808808{
    809809    // print system information
    810     fprintf(stderr, "-----------------------------------------------------------\n");
    811     fprintf(stderr, "OpenGL driver: %s %s\n", glGetString(GL_VENDOR), glGetString(GL_VERSION));
     810    fprintf(stderr,
     811            "-----------------------------------------------------------\n");
     812    fprintf(stderr, "OpenGL driver: %s %s\n", glGetString(GL_VENDOR),
     813            glGetString(GL_VERSION));
    812814    fprintf(stderr, "Graphics hardware: %s\n", glGetString(GL_RENDERER));
    813     fprintf(stderr, "-----------------------------------------------------------\n");
     815    fprintf(stderr,
     816            "-----------------------------------------------------------\n");
    814817    if (path == NULL) {
    815         fprintf(stderr, "no path defined for shaders or resources\n");
     818        fprintf(stderr, "No path defined for shaders or resources\n");
    816819        fflush(stderr);
    817         DoExit(-1);
    818     }
    819     // init GLEW
     820        DoExit(1);
     821    }
    820822    GLenum err = glewInit();
    821823    if (GLEW_OK != err) {
     
    831833        DoExit(1);
    832834    }
    833 
     835   
    834836    NvInitCG();
    835837    NvShader::setErrorCallback(CgErrorCallback);
    836 
     838   
    837839    fonts = new R2Fonts();
    838840    fonts->addFont("verdana", "verdana.fnt");
    839841    fonts->setFont("verdana");
    840 
     842   
    841843    color_table_renderer = new NvColorTableRenderer();
    842844    color_table_renderer->setFonts(fonts);
    843 
    844845    particleRenderer = new NvParticleRenderer(NMESH, NMESH, g_context);
    845846
     
    852853    grid->setFont(fonts);
    853854
    854 #ifdef notdef
    855855    pointset_renderer = new PointSetRenderer();
    856 #endif
    857856}
    858857
Note: See TracChangeset for help on using the changeset viewer.