static void renderchain_blit_to_texture( cg_renderchain_t *chain, const void *frame, unsigned width, unsigned height, unsigned pitch) { D3DLOCKED_RECT d3dlr; Pass *first = (Pass*)&chain->passes[0]; if (first->last_width != width || first->last_height != height) { d3d_lock_rectangle(first->tex, 0, &d3dlr, NULL, first->info.tex_h, D3DLOCK_NOSYSLOCK); d3d_lock_rectangle_clear(first->tex, 0, &d3dlr, NULL, first->info.tex_h, D3DLOCK_NOSYSLOCK); } d3d_texture_blit(chain->pixel_size, first->tex, &d3dlr, frame, width, height, pitch); }
static void renderchain_blit_to_texture(void *data, const void *frame, unsigned width, unsigned height, unsigned pitch) { D3DLOCKED_RECT d3dlr; xdk_renderchain_t *chain = (xdk_renderchain_t*)data; LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)chain->dev; d3d_frame_postprocess(chain); if (chain->last_width != width || chain->last_height != height) { d3d_lockrectangle_clear(chain->tex, 0, &d3dlr, NULL, chain->tex_h, D3DLOCK_NOSYSLOCK); } /* Set the texture to NULL so D3D doesn't complain about it being in use... */ d3d_set_texture(d3dr, 0, NULL); d3d_texture_blit(chain->pixel_size, chain->tex, &d3dlr, frame, width, height, pitch); }