Re: [AD] Patch for two new entries to GFX_VTABLE

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Eric Botcazou wrote:

--- src/blit.c 2001/11/06 15:30:46 1.9
+++ src/blit.c 2001/11/08 03:57:29
@@ -785,9 +785,11 @@
 {
    BLIT_CLIP();

-   if (!(is_video_bitmap(dest) && is_video_bitmap(src)) &&
-       (src->vtable->color_depth != dest->vtable->color_depth)) {
+   if (src->vtable->color_depth != dest->vtable->color_depth) {
       /* need to do a color conversion */
+      if (dest->vtable->blit_between_formats)
+         dest->vtable->blit_between_formats(src, dest, s_x, s_y, d_x, d_y,
w, h);
+      else
       blit_between_formats(src, dest, s_x, s_y, d_x, d_y, w, h);
    }
    else if (is_same_bitmap(src, dest)) {


Why did you remove the (!(is_video_bitmap(dest) && is_video_bitmap(src))
condition ? The whole if/then/else chain is modified.


Not really, this just undoes an old patch I submitted a while ago, which was a hack for AllegroGL. The condition up there should never be met in regular Allegro programs - you can't have video bitmaps of a different color depth than the screen bitmap. However, in AllegroGL you can, so my previous patch inhibited the color conversion for that case. Now that we have a vtable entry for converting in between color formats, I can easily do everything needed from within AllegroGL.


I suppose you want to do your own color conversion for video bitmaps only.


Like I said, that can't happen ;)
If you want to do memory bitmap -> video bitmap conversion (or inversely), then nothing has changed - the regular blit_between_formats gets called.

Why not rather hook the blit_to_self() method of the vtable ?


Because video bitmaps are not necessairly part of the screen (AllegroGL) ;)

[snip]


This one looks ok, except that since the new method is a replacement for
_pivot_scaled_sprite_flip() in rotate.c, it should be invoked wherever
_pivot_scaled_sprite_flip() is invoked, not inside
_pivot_scaled_sprite_flip() itself.


Ok, I'll submit a replacement patch.



--
- Robert J Ohannessian
"Microsoft code is probably O(n^20)" (my CS prof)
http://pages.infinit.net/voidstar/



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/