}
// //eDebug("inserting %d bytes (into region %d)", len, region->region_id);
// eDebug("put data to region_buffer %p", &(*region->region_buffer));
- memcpy((__u8*)region->region_buffer->surface->data + region->region_width * y + x, data, len);
+ memcpy((__u8*)region->region_buffer->surface->data + region->region_buffer->surface->stride * y + x, data, len);
}
object = object->next;
}
}
}
+ page->state = page_state;
+
//eDebug("page updated: old: %d, new: %d", page->page_version_number, page_version_number);
// when acquisition point or mode change: remove all displayed pages.
if ((page_state == 1) || (page_state == 2))
region->region_height |= *segment++;
processed_length += 2;
- region->region_buffer = new gPixmap(eSize(region->region_width, region->region_height), 8);
+ region->region_buffer = new gPixmap(eSize(region->region_width, region->region_height), 8, 1);
+ memset(region->region_buffer->surface->data, 0, region->region_height * region->region_buffer->surface->stride);
//eDebug("new region_buffer %p", &(*region->region_buffer));
int region_level_of_compatibility, region_depth;
subtitle_page *page = m_pages;
while(page)
{
- subtitle_redraw(page->page_id);
+ if (page->state != 0)
+ subtitle_redraw(page->page_id);
page = page->next;
}
#else