- Timestamp:
- 08/21/08 16:31:03 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/DeferredShader.cpp
r2858 r2859 1 1 #include "DeferredShader.h" 2 #include "glInterface.h" 2 #include "FrameBufferObject.h" 3 #include "RenderState.h" 3 4 4 5 … … 9 10 { 10 11 12 13 static void PrintGLerror(char *msg) 14 { 15 GLenum errCode; 16 const GLubyte *errStr; 17 18 if ((errCode = glGetError()) != GL_NO_ERROR) 19 { 20 errStr = gluErrorString(errCode); 21 fprintf(stderr,"OpenGL ERROR: %s: %s\n", errStr, msg); 22 } 23 } 24 25 26 static CGprogram sCgDeferredProgram; 27 static CGparameter sColorsTexParam; 28 static CGparameter sPositionsTexParam; 29 static CGparameter sNormalsTexParam; 30 31 32 DeferredShader::DeferredShader(int w, int h): 33 mWidth(w), mHeight(h) 34 {} 35 36 37 void DeferredShader::Init(CGcontext context) 38 { 39 40 sCgDeferredProgram = 41 cgCreateProgramFromFile(context, 42 CG_SOURCE, 43 "src/shaders/deferred.cg", 44 RenderState::sCgFragmentProfile, 45 "main", 46 NULL); 47 48 if (sCgDeferredProgram != NULL) 49 { 50 cgGLLoadProgram(sCgDeferredProgram); 51 52 // we need size of texture for scaling 53 sPositionsTexParam = cgGetNamedParameter(sCgDeferredProgram, "positions"); 54 sColorsTexParam = cgGetNamedParameter(sCgDeferredProgram, "colors"); 55 sNormalsTexParam = cgGetNamedParameter(sCgDeferredProgram, "normals"); 56 } 57 else 58 cerr << "deferred program failed to load" << endl; 59 60 61 PrintGLerror("init"); 62 } 63 64 11 65 void DeferredShader::Render(FrameBufferObject *fbo) 12 66 { 67 GLuint positionsTex = fbo->GetColorBuffer(0)->GetTexture(); 68 GLuint colorsTex = fbo->GetColorBuffer(0)->GetTexture(); 69 GLuint normalsTex = fbo->GetColorBuffer(0)->GetTexture(); 70 13 71 glPushAttrib(GL_VIEWPORT_BIT); 14 glViewport(0, 0, fbo->GetWidth(), fbo->GetHeight());72 glViewport(0, 0, mWidth, mHeight); 15 73 16 74 glDisable(GL_ALPHA_TEST); … … 35 93 cgGLBindProgram(sCgDeferredProgram); 36 94 95 cgGLSetTextureParameter(sColorsTexParam, colorsTex); 96 cgGLEnableTextureParameter(sColorsTexParam); 97 37 98 cgGLSetTextureParameter(sPositionsTexParam, positionsTex); 38 99 cgGLEnableTextureParameter(sPositionsTexParam); 39 40 cgGLSetTextureParameter(sColorsTexParam, colorsTex);41 cgGLEnableTextureParameter(sColorsTexParam);42 100 43 101 cgGLSetTextureParameter(sNormalsTexParam, normalsTex);
Note: See TracChangeset
for help on using the changeset viewer.