++++ libass-0.9.5-patched/libass/ass_render.c 2008-08-09 00:04:28.000000000 +0200
+@@ -149,8 +149,8 @@
+ EVENT_HSCROLL, // "Banner" transition effect, text_width is unlimited
+ EVENT_VSCROLL // "Scroll up", "Scroll down" transition effects
+ } evt_type;
+- int pos_x, pos_y; // position
+- int org_x, org_y; // origin
++ double pos_x, pos_y; // position
++ double org_x, org_y; // origin
+ char have_origin; // origin is explicitly defined; if 0, get_base_point() is used
+ double scale_x, scale_y;
+ double hspacing; // distance between letters, in pixels
+@@ -161,6 +161,7 @@
+ uint32_t fade; // alpha from \fad
+ char be; // blur edges
+ int shadow;
++ int drawing_mode; // not implemented; when != 0 text is discarded, except for style override tags
+
+ effect_t effect_type;
+ int effect_timing;
+@@ -456,19 +457,19 @@
+ /**
+ * \brief Mapping between script and screen coordinates
+ */
+-static int x2scr(int x) {
++static int x2scr(double x) {
+ return x*frame_context.orig_width_nocrop / frame_context.track->PlayResX +
+ FFMAX(global_settings->left_margin, 0);
+ }
+ /**
+ * \brief Mapping between script and screen coordinates
+ */
+-static int y2scr(int y) {
++static int y2scr(double y) {
+ return y * frame_context.orig_height_nocrop / frame_context.track->PlayResY +
+ FFMAX(global_settings->top_margin, 0);
+ }
+ // the same for toptitles
+-static int y2scr_top(int y) {
++static int y2scr_top(double y) {
+ if (global_settings->use_margins)
+ return y * frame_context.orig_height_nocrop / frame_context.track->PlayResY;
+ else
+@@ -476,7 +477,7 @@
+ FFMAX(global_settings->top_margin, 0);
+ }
+ // the same for subtitles
+-static int y2scr_sub(int y) {
++static int y2scr_sub(double y) {
+ if (global_settings->use_margins)
+ return y * frame_context.orig_height_nocrop / frame_context.track->PlayResY +
+ FFMAX(global_settings->top_margin, 0) +
+@@ -679,11 +680,11 @@