int main(int argc, char *argv[]) { initialize(); srand(time(NULL)); SDL_Surface *screen; screen = SDL_SetVideoMode(WIDTH, HEIGHT, DEPTH, SDL_SWSURFACE); if ( screen == NULL ) { fprintf(stderr, "Unable to set 640x480 video: %s\n", SDL_GetError()); exit(1); } //Main game loop while(1) { //Check for end game conditions if (!player.alive) { RenderFinal(screen, FALSE); } else if (g_monsters == NULL) { RenderFinal(screen, TRUE); } UpdateState(); RenderState(screen); HandleEvents(); usleep(50000); } }
void GLRenderer::Render() { glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo); RenderScene(); glBindFramebuffer(GL_FRAMEBUFFER, 0); RenderFinal(); }
HRESULT ForwardPlusRenderer::RenderFrame(const RenderTarget& renderTarget, const RenderView& view) { HRESULT hr = S_OK; if (RTWidth != renderTarget.Texture->GetDesc().Width || RTHeight != renderTarget.Texture->GetDesc().Height) { hr = RecreateSurfaces(renderTarget.Texture->GetDesc().Width, renderTarget.Texture->GetDesc().Height, MsaaEnabled ? 4 : 1); CHECKHR(hr); } // Scene traversal once, used for multiple passes Scene->GetVisibleVisuals(view, &Visuals); Scene->GetVisibleLights(view, &Lights); RenderZPrePass(view); CullLights(view); RenderFinal(view, renderTarget); return S_OK; }