static void drawFrame(glw_ps3_t *gp, int buffer) { gcmContextData *ctx = gp->gr.gr_be.be_ctx; realityViewportTranslate(ctx, gp->res.width/2, gp->res.height/2, 0.0, 0.0); realityViewportScale(ctx, gp->res.width/2, -gp->res.height/2, 1.0, 0.0); realityZControl(ctx, 0, 1, 1); // disable viewport culling // Enable alpha blending. realityBlendFunc(ctx, NV30_3D_BLEND_FUNC_SRC_RGB_SRC_ALPHA | NV30_3D_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA, NV30_3D_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA | NV30_3D_BLEND_FUNC_DST_ALPHA_ZERO); realityBlendEquation(ctx, NV40_3D_BLEND_EQUATION_RGB_FUNC_ADD | NV40_3D_BLEND_EQUATION_ALPHA_FUNC_ADD); realityBlendEnable(ctx, 1); realityViewport(ctx, gp->res.width, gp->res.height); setupRenderTarget(gp, buffer); // set the clear color realitySetClearColor(ctx, 0x00000000); realitySetClearDepthValue(ctx, 0xffff); // Clear the buffers realityClearBuffers(ctx, REALITY_CLEAR_BUFFERS_COLOR_R | REALITY_CLEAR_BUFFERS_COLOR_G | REALITY_CLEAR_BUFFERS_COLOR_B | NV30_3D_CLEAR_BUFFERS_COLOR_A | REALITY_CLEAR_BUFFERS_DEPTH); // XMB may overwrite currently loaded shaders, so clear them out gp->gr.gr_be.be_vp_current = NULL; gp->gr.gr_be.be_fp_current = NULL; realityCullEnable(ctx, 1); realityFrontFace(ctx, REALITY_FRONT_FACE_CCW); realityCullFace(ctx, REALITY_CULL_FACE_BACK); glw_lock(&gp->gr); glw_prepare_frame(&gp->gr, 0); gp->gr.gr_width = gp->res.width; gp->gr.gr_height = gp->res.height; glw_rctx_t rc; glw_rctx_init(&rc, gp->gr.gr_width, gp->gr.gr_height); glw_layout0(gp->gr.gr_universe, &rc); glw_render0(gp->gr.gr_universe, &rc); glw_unlock(&gp->gr); }
void glw_rtt_enter(glw_root_t *gr, glw_rtt_t *grtt, glw_rctx_t *rc) { /* Save viewport */ glGetIntegerv(GL_VIEWPORT, grtt->grtt_viewport); glBindTexture(GL_TEXTURE_2D, 0); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, grtt->grtt_framebuffer); glViewport(0, 0, grtt->grtt_width, grtt->grtt_height); glClear(GL_COLOR_BUFFER_BIT); abort(); glw_rctx_init(rc, grtt->grtt_width, grtt->grtt_height, 0, NULL); }
void glw_rtt_enter(glw_root_t *gr, glw_rtt_t *grtt, glw_rctx_t *rc) { int m = gr->gr_be.gbr_primary_texture_mode; /* Save viewport */ glGetIntegerv(GL_VIEWPORT, grtt->grtt_viewport); glBindTexture(m, 0); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, grtt->grtt_framebuffer); glViewport(0, 0, grtt->grtt_width, grtt->grtt_height); glClear(GL_COLOR_BUFFER_BIT); glw_rctx_init(rc, grtt->grtt_width, grtt->grtt_height, 0); }
JNIEXPORT void JNICALL Java_com_showtimemediacenter_showtime_STCore_glwStep(JNIEnv *env, jobject obj, jint id) { android_glw_root_t *agr = (android_glw_root_t *)id; glw_root_t *gr = &agr->gr; glw_lock(gr); gr->gr_can_externalize = 1; gr->gr_externalize_cnt = 0; glViewport(0, 0, gr->gr_width, gr->gr_height); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glw_prepare_frame(gr, 0); glw_rctx_t rc; glw_rctx_init(&rc, gr->gr_width, gr->gr_height, 1); glw_layout0(gr->gr_universe, &rc); glw_render0(gr->gr_universe, &rc); glw_unlock(gr); glw_post_scene(gr); }