void lp_rast_set_state( struct lp_rasterizer *rast,
const union lp_rast_cmd_arg arg )
{
+ const struct lp_rast_state *state = arg.set_state;
+
RAST_DEBUG("%s\n", __FUNCTION__);
/* XXX to do */
memcmp(setup->fs.stored,
&setup->fs.current,
sizeof setup->fs.current) != 0) {
- struct lp_rast_state *stored;
-
- stored = get_data(&setup->data, sizeof *stored);
+ /* The fs state that's been stored in the bins is different from
+ * the new, current state. So allocate a new lp_rast_state object
+ * and append it to the bin's setup data buffer.
+ */
+ struct lp_rast_state *stored =
+ (struct lp_rast_state *) get_data(&setup->data, sizeof *stored);
if(stored) {
memcpy(stored,
&setup->fs.current,
sizeof setup->fs.current);
setup->fs.stored = stored;
+
+#if 0
+ /* put the state-set command into all bins */
+ bin_everywhere( setup,
+ lp_rast_set_state,
+ *setup->fs.stored );
+#endif
}
}
}