#include "pipe/p_inlines.h"
#include "util/u_memory.h"
#include "util/u_pack_color.h"
+#include "util/u_surface.h"
#include "lp_scene.h"
#include "lp_scene_queue.h"
#include "lp_debug.h"
setup->scene = lp_scene_dequeue(setup->empty_scenes);
if(0)lp_scene_reset( setup->scene ); /* XXX temporary? */
- if (setup->fb) {
- lp_scene_set_framebuffer_size(setup->scene,
- setup->fb->width, setup->fb->height);
- }
+ lp_scene_set_framebuffer_size(setup->scene,
+ setup->fb.width,
+ setup->fb.height);
}
return setup->scene;
}
struct lp_scene *scene = lp_setup_get_current_scene(setup);
lp_rasterize_scene(setup->rast,
- scene,
- setup->fb,
- write_depth);
+ scene,
+ &setup->fb,
+ write_depth);
reset_context( setup );
LP_DBG(DEBUG_SETUP, "%s\n", __FUNCTION__);
- if (setup->fb->cbufs[0]) {
+ if (setup->fb.cbufs[0]) {
if (setup->clear.flags & PIPE_CLEAR_COLOR)
lp_scene_bin_everywhere( scene,
lp_rast_clear_color,
lp_rast_arg_null() );
}
- if (setup->fb->zsbuf) {
+ if (setup->fb.zsbuf) {
if (setup->clear.flags & PIPE_CLEAR_DEPTHSTENCIL)
lp_scene_bin_everywhere( scene,
lp_rast_clear_zstencil,
set_state( setup, SETUP_FLUSHED );
- setup->fb = fb;
+ util_copy_framebuffer_state(&setup->fb, fb);
- lp_scene_set_framebuffer_size(scene, setup->fb->width, setup->fb->height);
+ lp_scene_set_framebuffer_size(scene, setup->fb.width, setup->fb.height);
}
if (flags & PIPE_CLEAR_DEPTHSTENCIL) {
setup->clear.zstencil.clear_zstencil =
- util_pack_z_stencil(setup->fb->zsbuf->format,
+ util_pack_z_stencil(setup->fb.zsbuf->format,
depth,
stencil);
}