Changeset 2882 for trunk


Ignore:
Timestamp:
Mar 23, 2012 12:58:08 PM (12 years ago)
Author:
ldelgass
Message:

Assume baseline requirement of NV40 GPU, which translates to Cg profiles vp40
and fp40, which in turn require NV_vertex_program3 and NV_fragment_program2
assembly shader extensions. Add explicit check for these extensions.

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

Legend:

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

    r2877 r2882  
    103103           
    104104            cgGLBindProgram(_shader->getFP());
    105             cgGLEnableProfile(CG_PROFILE_FP30);
     105            cgGLEnableProfile(CG_PROFILE_FP40);
    106106           
    107107            cgGLSetTextureParameter(_tfParam, _tfPtr->id());
     
    137137            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    138138           
    139             cgGLDisableProfile(CG_PROFILE_FP30);
     139            cgGLDisableProfile(CG_PROFILE_FP40);
    140140        }
    141141    }
     
    575575        if (_tfPtr != NULL) {
    576576            cgGLBindProgram(_shader->getFP());
    577             cgGLEnableProfile(CG_PROFILE_FP30);
     577            cgGLEnableProfile(CG_PROFILE_FP40);
    578578           
    579579            cgGLSetTextureParameter(_tfParam, _tfPtr->id());
     
    611611            glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    612612           
    613             cgGLDisableProfile(CG_PROFILE_FP30);
     613            cgGLDisableProfile(CG_PROFILE_FP40);
    614614        }
    615615    }
  • trunk/packages/vizservers/nanovis/NvColorTableShader.cpp

    r2870 r2882  
    3434
    3535    cgGLBindProgram(_cgFP);
    36     cgGLEnableProfile(CG_PROFILE_FP30);
     36    cgGLEnableProfile(CG_PROFILE_FP40);
    3737}
    3838
    3939void NvColorTableShader::unbind()
    4040{
    41     cgGLDisableProfile(CG_PROFILE_FP30);
     41    cgGLDisableProfile(CG_PROFILE_FP40);
    4242    cgGLDisableTextureParameter(_dataParam);
    4343    cgGLDisableTextureParameter(_tfParam);
  • trunk/packages/vizservers/nanovis/NvLIC.cpp

    r2870 r2882  
    115115    _render_vel_fprog =
    116116        LoadCgSourceProgram(_cgContext, "render_vel.cg",
    117                             CG_PROFILE_FP30, "main");
     117                            CG_PROFILE_FP40, "main");
    118118
    119119    _vel_tex_param_render_vel =
     
    260260    cgGLSetParameter1f(_max_param, max);
    261261
    262     cgGLEnableProfile(CG_PROFILE_FP30);
     262    cgGLEnableProfile(CG_PROFILE_FP40);
    263263
    264264    glBegin(GL_QUADS);
     
    289289    glEnd();
    290290
    291     cgGLDisableProfile(CG_PROFILE_FP30);
     291    cgGLDisableProfile(CG_PROFILE_FP40);
    292292
    293293    cgGLDisableTextureParameter(_vel_tex_param_render_vel);
  • trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp

    r2870 r2882  
    5151    cgGLEnableTextureParameter(_initPosTexParam);
    5252
    53     cgGLEnableProfile(CG_PROFILE_FP30);
     53    cgGLEnableProfile(CG_PROFILE_FP40);
    5454}
    5555
     
    5757NvParticleAdvectionShader::unbind()
    5858{
    59      cgGLDisableProfile(CG_PROFILE_FP30);
     59     cgGLDisableProfile(CG_PROFILE_FP40);
    6060   
    6161     cgGLDisableTextureParameter(_velTexParam);
  • trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.h

    r2837 r2882  
    4848    CGparameter _maxParam;
    4949    CGparameter _modeParam;
     50
    5051    unsigned int _velocityVolumeID;
    5152    Vector3 _scale;
  • trunk/packages/vizservers/nanovis/NvRegularVolumeShader.cpp

    r2877 r2882  
    5959
    6060    cgGLBindProgram(_cgFP);
    61     cgGLEnableProfile(CG_PROFILE_FP30);
     61    cgGLEnableProfile(CG_PROFILE_FP40);
    6262}
    6363
     
    6767    cgGLDisableTextureParameter(_tf_one_volume_param);
    6868
    69     cgGLDisableProfile(CG_PROFILE_FP30);
     69    cgGLDisableProfile(CG_PROFILE_FP40);
    7070}
  • trunk/packages/vizservers/nanovis/NvStdVertexShader.cpp

    r2870 r2882  
    2828    cgGLSetStateMatrixParameter(_mvi_vert_std_param, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_INVERSE);
    2929    cgGLBindProgram(_cgVP);
    30     cgGLEnableProfile(CG_PROFILE_VP30);
     30    cgGLEnableProfile(CG_PROFILE_VP40);
    3131}
    3232
    3333void NvStdVertexShader::unbind()
    3434{
    35     cgGLDisableProfile(CG_PROFILE_VP30);
     35    cgGLDisableProfile(CG_PROFILE_VP40);
    3636}
  • trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.cpp

    r2877 r2882  
    6565
    6666    cgGLBindProgram(_cgFP);
    67     cgGLEnableProfile(CG_PROFILE_FP30);
     67    cgGLEnableProfile(CG_PROFILE_FP40);
    6868}
    6969
     
    7474    cgGLDisableTextureParameter(_tfParam);
    7575
    76     cgGLDisableProfile(CG_PROFILE_FP30);
     76    cgGLDisableProfile(CG_PROFILE_FP40);
    7777}
  • trunk/packages/vizservers/nanovis/ParticleSystem.cpp

    r2870 r2882  
    431431    _distanceInitFP = 
    432432        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    433                                 CG_PROFILE_FP30, "initSortIndex", NULL);
     433                                CG_PROFILE_FP40, "initSortIndex", NULL);
    434434    cgGLLoadProgram(_distanceInitFP);
    435435
    436436    _distanceSortFP =
    437437        cgCreateProgramFromFile(_context, CG_SOURCE,  path.c_str(),
    438                                 CG_PROFILE_FP30, "computeDistance", NULL);
     438                                CG_PROFILE_FP40, "computeDistance", NULL);
    439439    _viewPosParam = cgGetNamedParameter(_distanceSortFP, "viewerPosition");
    440440    cgGLLoadProgram(_distanceSortFP);
     
    442442    _distanceSortLookupFP =
    443443        cgCreateProgramFromFile(_context, CG_SOURCE,  path.c_str(),
    444                                 CG_PROFILE_FP30, "lookupPosition", NULL);
     444                                CG_PROFILE_FP40, "lookupPosition", NULL);
    445445    cgGLLoadProgram(_distanceSortLookupFP);
    446446
     
    448448    _sortRecursionFP =
    449449        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    450                                 CG_PROFILE_FP30, "mergeSortRecursion", NULL);
     450                                CG_PROFILE_FP40, "mergeSortRecursion", NULL);
    451451    cgGLLoadProgram(_sortRecursionFP);
    452452
     
    457457    _sortEndFP =
    458458        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    459                                 CG_PROFILE_FP30, "mergeSortEnd", NULL);
     459                                CG_PROFILE_FP40, "mergeSortEnd", NULL);
    460460    cgGLLoadProgram(_sortEndFP);
    461461
     
    466466    _passthroughFP =
    467467        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    468                                 CG_PROFILE_FP30, "main", NULL);
     468                                CG_PROFILE_FP40, "main", NULL);
    469469    cgGLLoadProgram(_passthroughFP);
    470470
     
    475475    _moveParticlesFP =
    476476        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    477                                 CG_PROFILE_FP30, "main", NULL);
     477                                CG_PROFILE_FP40, "main", NULL);
    478478    cgGLLoadProgram(_moveParticlesFP);
    479479    _mpTimeScale = cgGetNamedParameter(_moveParticlesFP, "timeStep");
     
    504504    _initParticlePosFP =
    505505        cgCreateProgramFromFile(_context, CG_SOURCE, path.c_str(),
    506                                 CG_PROFILE_FP30, "initParticlePosMain", NULL);
     506                                CG_PROFILE_FP40, "initParticlePosMain", NULL);
    507507    cgGLLoadProgram(_initParticlePosFP);
    508508    _ipVectorFieldParam = cgGetNamedParameter(_moveParticlesFP, "vfield");
     
    512512{
    513513    cgGLBindProgram(_passthroughFP);
    514     cgGLEnableProfile(CG_PROFILE_FP30);
     514    cgGLEnableProfile(CG_PROFILE_FP40);
    515515
    516516    cgGLSetParameter4f(_scaleParam, 1.0, 1.0, 1.0, 1.0);
     
    522522    drawQuad();
    523523
    524     cgGLDisableProfile(CG_PROFILE_FP30);
     524    cgGLDisableProfile(CG_PROFILE_FP40);
    525525}
    526526
     
    631631
    632632        cgGLBindProgram(_distanceInitFP);
    633         cgGLEnableProfile(CG_PROFILE_FP30);
     633        cgGLEnableProfile(CG_PROFILE_FP40);
    634634
    635635        drawQuad();
    636636
    637         cgGLDisableProfile(CG_PROFILE_FP30);
     637        cgGLDisableProfile(CG_PROFILE_FP40);
    638638        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);           
    639639
     
    942942
    943943    cgGLBindProgram(_moveParticlesFP);
    944     cgGLEnableProfile(CG_PROFILE_FP30);
     944    cgGLEnableProfile(CG_PROFILE_FP40);
    945945    cgGLSetParameter1f(_mpTimeScale, 0.005);
    946946    cgGLSetParameter1f(_mpUseInitTex, 1.0);
     
    964964    cgGLDisableTextureParameter(_mpVectorField);
    965965    glDisable(GL_TEXTURE_RECTANGLE_NV);
    966     cgGLDisableProfile(CG_PROFILE_FP30);
     966    cgGLDisableProfile(CG_PROFILE_FP40);
    967967
    968968    glMatrixMode(GL_PROJECTION);
     
    10551055
    10561056        cgGLBindProgram(_moveParticlesFP);
    1057         cgGLEnableProfile(CG_PROFILE_FP30);
     1057        cgGLEnableProfile(CG_PROFILE_FP40);
    10581058
    10591059        // INSOO
     
    10861086
    10871087        glDisable(GL_TEXTURE_RECTANGLE_NV);
    1088         cgGLDisableProfile(CG_PROFILE_FP30);
     1088        cgGLDisableProfile(CG_PROFILE_FP40);
    10891089
    10901090        glMatrixMode(GL_PROJECTION);
     
    11881188
    11891189    cgGLBindProgram(_initParticlePosFP);
    1190     cgGLEnableProfile(CG_PROFILE_FP30);
     1190    cgGLEnableProfile(CG_PROFILE_FP40);
    11911191    cgGLSetTextureParameter(_ipVectorFieldParam, _curVectorFieldID);
    11921192    cgGLEnableTextureParameter(_ipVectorFieldParam);
     
    12161216    glDisable(GL_TEXTURE_RECTANGLE_NV);
    12171217    cgGLDisableTextureParameter(_ipVectorFieldParam);
    1218     cgGLDisableProfile(CG_PROFILE_FP30);
     1218    cgGLDisableProfile(CG_PROFILE_FP40);
    12191219
    12201220    glMatrixMode(GL_PROJECTION);
     
    12411241
    12421242    cgGLBindProgram(_initParticlePosFP);
    1243     cgGLEnableProfile(CG_PROFILE_FP30);
     1243    cgGLEnableProfile(CG_PROFILE_FP40);
    12441244    cgGLSetTextureParameter(_ipVectorFieldParam, _curVectorFieldID);
    12451245    cgGLEnableTextureParameter(_ipVectorFieldParam);
     
    12701270    glDisable(GL_TEXTURE_RECTANGLE_NV);
    12711271    cgGLDisableTextureParameter(_ipVectorFieldParam);
    1272     cgGLDisableProfile(CG_PROFILE_FP30);
     1272    cgGLDisableProfile(CG_PROFILE_FP40);
    12731273
    12741274    glMatrixMode(GL_PROJECTION);
     
    13171317
    13181318    cgGLBindProgram(_distanceSortFP);
    1319     cgGLEnableProfile(CG_PROFILE_FP30);
     1319    cgGLEnableProfile(CG_PROFILE_FP40);
    13201320
    13211321    glActiveTextureARB(GL_TEXTURE0_ARB);
     
    13421342    drawQuad();
    13431343
    1344     cgGLDisableProfile(CG_PROFILE_FP30);
     1344    cgGLDisableProfile(CG_PROFILE_FP40);
    13451345
    13461346    glMatrixMode(GL_PROJECTION);
     
    14231423    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, psys_fbo[_destPosIndex]);
    14241424    cgGLBindProgram(_distanceSortLookupFP);
    1425     cgGLEnableProfile(CG_PROFILE_FP30);
     1425    cgGLEnableProfile(CG_PROFILE_FP40);
    14261426
    14271427    glActiveTextureARB(GL_TEXTURE0_ARB);
     
    14501450
    14511451    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
    1452     cgGLDisableProfile(CG_PROFILE_FP30);
     1452    cgGLDisableProfile(CG_PROFILE_FP40);
    14531453
    14541454    // POSITION LOOKUP
     
    15011501        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, sort_fbo[_destSortIndex]);
    15021502        cgGLBindProgram(_sortRecursionFP);
    1503         cgGLEnableProfile(CG_PROFILE_FP30);
     1503        cgGLEnableProfile(CG_PROFILE_FP40);
    15041504
    15051505        glActiveTextureARB(GL_TEXTURE0_ARB);
     
    15271527        glPopAttrib();
    15281528
    1529         cgGLDisableProfile(CG_PROFILE_FP30);
     1529        cgGLDisableProfile(CG_PROFILE_FP40);
    15301530
    15311531        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
     
    15441544        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, sort_fbo[_destSortIndex]);
    15451545        cgGLBindProgram(_sortEndFP);
    1546         cgGLEnableProfile(CG_PROFILE_FP30);
     1546        cgGLEnableProfile(CG_PROFILE_FP40);
    15471547
    15481548        glActiveTextureARB(GL_TEXTURE0_ARB);
     
    15691569        glPopAttrib();
    15701570
    1571         cgGLDisableProfile(CG_PROFILE_FP30);
     1571        cgGLDisableProfile(CG_PROFILE_FP40);
    15721572
    15731573        glBindTexture(GL_TEXTURE_RECTANGLE_NV , 0);
  • trunk/packages/vizservers/nanovis/PointShader.h

    r2833 r2882  
    2929        if (_cgVP) {
    3030            cgGLBindProgram(_cgVP);
    31             cgGLEnableProfile((CGprofile) CG_PROFILE_VP30);
     31            cgGLEnableProfile((CGprofile) CG_PROFILE_VP40);
    3232        }
    3333        if (_cgFP) {
    3434            cgGLBindProgram(_cgFP);
    35             cgGLEnableProfile((CGprofile) CG_PROFILE_FP30);
     35            cgGLEnableProfile((CGprofile) CG_PROFILE_FP40);
    3636        }
    3737    }
     
    4040    {
    4141        if (_cgVP) {
    42             cgGLDisableProfile((CGprofile)CG_PROFILE_VP30);
     42            cgGLDisableProfile((CGprofile)CG_PROFILE_VP40);
    4343        }
    4444        if (_cgFP) {
    45             cgGLDisableProfile((CGprofile)CG_PROFILE_FP30);
     45            cgGLDisableProfile((CGprofile)CG_PROFILE_FP40);
    4646        }
    4747
  • trunk/packages/vizservers/nanovis/Unirect.cpp

    r2881 r2882  
    315315}
    316316
    317 
    318317int
    319318Rappture::Unirect2d::LoadData(Tcl_Interp *interp, int objc,
     
    490489    return TCL_OK;
    491490}
    492 
    493491
    494492bool
     
    637635}
    638636
    639 
    640637bool
    641638Rappture::Unirect3d::Resample(Rappture::Outcome &result, size_t nSamples)
  • trunk/packages/vizservers/nanovis/VelocityArrowsSlice.cpp

    r2877 r2882  
    2929
    3030    _queryVelocityFP =
    31         LoadCgSourceProgram(_context, "queryvelocity.cg", CG_PROFILE_FP30, "main");
     31        LoadCgSourceProgram(_context, "queryvelocity.cg", CG_PROFILE_FP40, "main");
    3232
    3333    _qvVectorFieldParam = cgGetNamedParameter(_queryVelocityFP, "vfield");
     
    191191    glDisable(GL_DEPTH_TEST);
    192192    cgGLBindProgram(_queryVelocityFP);
    193     cgGLEnableProfile(CG_PROFILE_FP30);
     193    cgGLEnableProfile(CG_PROFILE_FP40);
    194194    cgGLSetTextureParameter(_qvVectorFieldParam, _vectorFieldGraphicsID);
    195195    cgGLEnableTextureParameter(_qvVectorFieldParam);
     
    220220    glDisable(GL_TEXTURE_RECTANGLE_NV);
    221221    cgGLDisableTextureParameter(_qvVectorFieldParam);
    222     cgGLDisableProfile(CG_PROFILE_FP30);
     222    cgGLDisableProfile(CG_PROFILE_FP40);
    223223
    224224    glReadPixels(0, 0, _renderTargetWidth, _renderTargetHeight, GL_RGB, GL_FLOAT, _velocities);
  • trunk/packages/vizservers/nanovis/nanovis.cpp

    r2880 r2882  
    761761    }
    762762#endif
     763    if (!GLEW_NV_vertex_program3 ||
     764        !GLEW_NV_fragment_program2) {
     765        ERROR("NV_vertex_program3 and NV_fragment_program2 extensions are required to run nanovis\n");
     766        doExit(1);
     767    }
    763768
    764769    if (!R2FilePath::getInstance()->setPath(path)) {
  • trunk/packages/vizservers/nanovis/shaders/update_pos.cg

    r2852 r2882  
    5252
    5353    //reconstruct negative value
    54     //float4 vel = float4(tex3D(vel_tex, pos.xyz).xyz, 0) - float4(0.5, 0.5, 0.5, 0.0f);
    5554    float4 vel = float4(tex3D(vel_tex, pos.xyz).yzw, 0) - float4(0.5, 0.5, 0.5, 0.0f);
    5655    vel = vel * (2 * max);
Note: See TracChangeset for help on using the changeset viewer.