Re: [AD] Feature request: Add missing GFX_VTABLE entries

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


On Sunday 26 September 2004 21:20, Evert Glebbeek wrote:
> stretch_blit, masked_stretch_blit and stretch_sprite all use the same 
> do_stretch_blit function as a workhorse (src/i386/istretch.c), or 
> _al_stretch_blit from src/c/cstretch.c. It's probably good enough to make 
> a vtable entry for this function.
> 
> > For the set_*_blender functions, maybe we can just have one driver 
entry
> > for all of them that takes an enum (or define) to select the blender?
> 
> Makes sense.
> I'll see if I can make those changes later tonight.

Time flies when you have a job...
anyway, revised vtable patch attached. This just adds hooks to the vtables, 
and doesn't actually make the functions call those yet. I'll add support 
for that and an enum with possible blender modes later today (I will!)

Evert
Index: include/allegro/gfx.h
===================================================================
RCS file: /cvsroot/alleg/allegro/include/allegro/gfx.h,v
retrieving revision 1.12
diff -u -r1.12 gfx.h
--- include/allegro/gfx.h	14 Feb 2004 15:27:58 -0000	1.12
+++ include/allegro/gfx.h	3 Oct 2004 13:37:56 -0000
@@ -75,6 +75,7 @@
    AL_METHOD(void, drawing_mode, (void));
    AL_METHOD(void, save_video_state, (void));
    AL_METHOD(void, restore_video_state, (void));
+   AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    AL_METHOD(GFX_MODE_LIST *, fetch_mode_list, (void));
    int w, h;                     /* physical (not virtual!) screen size */
    int linear;                   /* true if video memory is linear */
@@ -171,8 +172,27 @@
    AL_METHOD(void, masked_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height));
    AL_METHOD(void, clear_to_color, (struct BITMAP *bitmap, int color));
    AL_METHOD(void, pivot_scaled_sprite_flip, (struct BITMAP *bmp, struct BITMAP *sprite, fixed x, fixed y, fixed cx, fixed cy, fixed angle, fixed scale, int v_flip));
+   AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked));
+   AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    AL_METHOD(void, draw_sprite_end, (void));
    AL_METHOD(void, blit_end, (void));
+   AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+   AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 } GFX_VTABLE;
 
 
Index: src/vtable15.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/vtable15.c,v
retrieving revision 1.5
diff -u -r1.5 vtable15.c
--- src/vtable15.c	14 Feb 2004 15:28:00 -0000	1.5
+++ src/vtable15.c	3 Oct 2004 13:37:57 -0000
@@ -72,8 +72,28 @@
    _linear_masked_blit16,
    _linear_clear_to_color16,
    _pivot_scaled_sprite_flip,
+   NULL,    // AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked))
+   NULL,    // AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    _linear_draw_sprite16_end,
-   _linear_blit16_end
+   _linear_blit16_end,
+   NULL,    // AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   NULL,    // AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   NULL,    // AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   NULL,    // AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   NULL,    // AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   NULL,    // AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   NULL,    // AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+
+   NULL,    // AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   NULL,    // AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   NULL,    // AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   NULL,    // AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   NULL,    // AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   NULL     // AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 };
 
 
Index: src/vtable16.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/vtable16.c,v
retrieving revision 1.5
diff -u -r1.5 vtable16.c
--- src/vtable16.c	14 Feb 2004 15:28:00 -0000	1.5
+++ src/vtable16.c	3 Oct 2004 13:37:57 -0000
@@ -72,8 +72,28 @@
    _linear_masked_blit16,
    _linear_clear_to_color16,
    _pivot_scaled_sprite_flip,
+   NULL,    // AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked))
+   NULL,    // AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    _linear_draw_sprite16_end,
-   _linear_blit16_end
+   _linear_blit16_end,
+   NULL,    // AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   NULL,    // AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   NULL,    // AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   NULL,    // AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   NULL,    // AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   NULL,    // AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   NULL,    // AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+
+   NULL,    // AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   NULL,    // AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   NULL,    // AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   NULL,    // AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   NULL,    // AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   NULL     // AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 };
 
 
Index: src/vtable24.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/vtable24.c,v
retrieving revision 1.5
diff -u -r1.5 vtable24.c
--- src/vtable24.c	14 Feb 2004 15:28:00 -0000	1.5
+++ src/vtable24.c	3 Oct 2004 13:37:58 -0000
@@ -72,8 +72,28 @@
    _linear_masked_blit24,
    _linear_clear_to_color24,
    _pivot_scaled_sprite_flip,
+   NULL,    // AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked))
+   NULL,    // AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    _linear_draw_sprite24_end,
-   _linear_blit24_end
+   _linear_blit24_end,
+   NULL,    // AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   NULL,    // AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   NULL,    // AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   NULL,    // AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   NULL,    // AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   NULL,    // AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   NULL,    // AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+
+   NULL,    // AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   NULL,    // AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   NULL,    // AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   NULL,    // AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   NULL,    // AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   NULL     // AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 };
 
 
Index: src/vtable32.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/vtable32.c,v
retrieving revision 1.5
diff -u -r1.5 vtable32.c
--- src/vtable32.c	14 Feb 2004 15:28:00 -0000	1.5
+++ src/vtable32.c	3 Oct 2004 13:37:58 -0000
@@ -72,8 +72,28 @@
    _linear_masked_blit32,
    _linear_clear_to_color32,
    _pivot_scaled_sprite_flip,
+   NULL,    // AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked))
+   NULL,    // AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    _linear_draw_sprite32_end,
-   _linear_blit32_end
+   _linear_blit32_end,
+   NULL,    // AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   NULL,    // AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   NULL,    // AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   NULL,    // AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   NULL,    // AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   NULL,    // AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   NULL,    // AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+
+   NULL,    // AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   NULL,    // AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   NULL,    // AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   NULL,    // AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   NULL,    // AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   NULL     // AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 };
 
 
Index: src/vtable8.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/vtable8.c,v
retrieving revision 1.5
diff -u -r1.5 vtable8.c
--- src/vtable8.c	14 Feb 2004 15:28:00 -0000	1.5
+++ src/vtable8.c	3 Oct 2004 13:37:58 -0000
@@ -72,8 +72,28 @@
    _linear_masked_blit8,
    _linear_clear_to_color8,
    _pivot_scaled_sprite_flip,
+   NULL,    // AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked))
+   NULL,    // AL_METHOD(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
    _linear_draw_sprite8_end,
-   _linear_blit8_end
+   _linear_blit8_end,
+   NULL,    // AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   NULL,    // AL_METHOD(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+   NULL,    // AL_METHOD(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+   NULL,    // AL_METHOD(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+   NULL,    // AL_METHOD(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+   NULL,    // AL_METHOD(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+   NULL,    // AL_METHOD(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
+   NULL,    // AL_METHOD(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+   NULL,    // AL_METHOD(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+
+   NULL,    // AL_METHOD(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+   NULL,    // AL_METHOD(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+   NULL,    // AL_METHOD(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+   NULL,    // AL_METHOD(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+   NULL,    // AL_METHOD(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+   NULL     // AL_METHOD(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 };
 
 
Index: src/dos/vesa.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/dos/vesa.c,v
retrieving revision 1.18
diff -u -r1.18 vesa.c
--- src/dos/vesa.c	8 Feb 2003 21:31:38 -0000	1.18
+++ src/dos/vesa.c	3 Oct 2004 13:37:59 -0000
@@ -64,6 +64,7 @@
    NULL, NULL, NULL, NULL,       /* no hardware cursor */
    NULL,                         /* no drawing mode hook */
    NULL, NULL,                   /* no state saving */
+   NULL,    /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    vesa_fetch_mode_list,         /* aye! */
    0, 0, FALSE, 0, 0, 0, 0, FALSE
 };
Index: src/linux/fbcon.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/linux/fbcon.c,v
retrieving revision 1.30
diff -u -r1.30 fbcon.c
--- src/linux/fbcon.c	2 Jul 2004 16:25:41 -0000	1.30
+++ src/linux/fbcon.c	3 Oct 2004 13:38:00 -0000
@@ -79,6 +79,7 @@
    NULL,                         /* no drawing mode hook */
    fb_save,
    fb_restore,
+   NULL,    // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    NULL,                         /* no fetch mode hook */
    0, 0,
    TRUE,
Index: src/linux/svgalib.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/linux/svgalib.c,v
retrieving revision 1.36
diff -u -r1.36 svgalib.c
--- src/linux/svgalib.c	28 Feb 2004 16:17:03 -0000	1.36
+++ src/linux/svgalib.c	3 Oct 2004 13:38:01 -0000
@@ -72,6 +72,7 @@
    NULL,                         /* no drawing mode hook */
    svga_save,
    svga_restore,
+   NULL,                        /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    NULL,			 /* svga_fetch_mode_list disabled */
    0, 0,
    TRUE,
Index: src/mac/mdraw.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/mac/mdraw.c,v
retrieving revision 1.6
diff -u -r1.6 mdraw.c
--- src/mac/mdraw.c	25 Mar 2002 12:41:41 -0000	1.6
+++ src/mac/mdraw.c	3 Oct 2004 13:38:02 -0000
@@ -81,6 +81,7 @@
    NULL,
    NULL,
    NULL,
+   NULL,    // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    NULL,
    640, 480,
    TRUE,
Index: src/macosx/qzfull.m
===================================================================
RCS file: /cvsroot/alleg/allegro/src/macosx/qzfull.m,v
retrieving revision 1.16
diff -u -r1.16 qzfull.m
--- src/macosx/qzfull.m	2 Apr 2004 09:04:57 -0000	1.16
+++ src/macosx/qzfull.m	3 Oct 2004 13:38:02 -0000
@@ -76,6 +76,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    osx_qz_fetch_mode_list,       /* AL_METHOD(int, fetch_mode_list, (void)); */
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
Index: src/macosx/qzwindow.m
===================================================================
RCS file: /cvsroot/alleg/allegro/src/macosx/qzwindow.m,v
retrieving revision 1.15
diff -u -r1.15 qzwindow.m
--- src/macosx/qzwindow.m	19 Jul 2004 10:23:07 -0000	1.15
+++ src/macosx/qzwindow.m	3 Oct 2004 13:38:03 -0000
@@ -79,6 +79,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    NULL,                         /* AL_METHOD(int, fetch_mode_list, (void)); */
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
Index: src/misc/modex.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/misc/modex.c,v
retrieving revision 1.29
diff -u -r1.29 modex.c
--- src/misc/modex.c	14 Feb 2004 15:48:42 -0000	1.29
+++ src/misc/modex.c	3 Oct 2004 13:38:04 -0000
@@ -88,6 +88,7 @@
    _x_masked_blit,
    _x_clear_to_color,
    _pivot_scaled_sprite_flip,
+   NULL, /* AL_METHOD(void, do_stretch_blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int dest_width, int dest_height, int masked)); */
    _x_draw_sprite_end,
    _x_blit_from_memory_end
 };
@@ -123,6 +124,7 @@
    NULL,                         /* no drawing mode hook */
    _save_vga_mode,
    _restore_vga_mode,
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    modex_fetch_mode_list,
    0, 0,
    TRUE,
Index: src/misc/vbeaf.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/misc/vbeaf.c,v
retrieving revision 1.19
diff -u -r1.19 vbeaf.c
--- src/misc/vbeaf.c	17 Sep 2003 13:12:25 -0000	1.19
+++ src/misc/vbeaf.c	3 Oct 2004 13:38:06 -0000
@@ -158,6 +158,7 @@
    NULL,                         /* no drawing mode hook */
    vbeaf_save,
    vbeaf_restore,
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    vbeaf_fetch_mode_list,        /* fetch mode hook */
    0, 0, FALSE, 0, 0, 0, 0, FALSE
 };
Index: src/misc/vga.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/misc/vga.c,v
retrieving revision 1.20
diff -u -r1.20 vga.c
--- src/misc/vga.c	17 Sep 2003 13:12:25 -0000	1.20
+++ src/misc/vga.c	3 Oct 2004 13:38:07 -0000
@@ -61,6 +61,7 @@
    NULL,                         /* no drawing mode hook */
    _save_vga_mode,
    _restore_vga_mode,
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    vga_fetch_mode_list,
    320, 200,
    TRUE,
Index: src/qnx/qphfull.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/qnx/qphfull.c,v
retrieving revision 1.1
diff -u -r1.1 qphfull.c
--- src/qnx/qphfull.c	6 May 2002 17:58:03 -0000	1.1
+++ src/qnx/qphfull.c	3 Oct 2004 13:38:07 -0000
@@ -72,6 +72,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    qnx_ph_fetch_mode_list_accel,
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
@@ -110,6 +111,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    qnx_ph_fetch_mode_list_soft,
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
@@ -148,6 +150,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    qnx_ph_fetch_mode_list_safe,
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
Index: src/qnx/qphwin.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/qnx/qphwin.c,v
retrieving revision 1.1
diff -u -r1.1 qphwin.c
--- src/qnx/qphwin.c	6 May 2002 17:58:03 -0000	1.1
+++ src/qnx/qphwin.c	3 Oct 2004 13:38:08 -0000
@@ -65,6 +65,7 @@
    NULL,                         /* AL_METHOD(void, drawing_mode, (void)); */
    NULL,                         /* AL_METHOD(void, save_video_state, (void)); */
    NULL,                         /* AL_METHOD(void, restore_video_state, (void)); */
+   NULL,                         /* AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a)); */
    NULL,                         /* AL_METHOD(int, fetch_mode_list, (void)); */
    0, 0,                         /* physical (not virtual!) screen size */
    TRUE,                         /* true if video memory is linear */
Index: src/win/wddfull.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/win/wddfull.c,v
retrieving revision 1.21
diff -u -r1.21 wddfull.c
--- src/win/wddfull.c	2 Oct 2002 14:23:24 -0000	1.21
+++ src/win/wddfull.c	3 Oct 2004 13:38:08 -0000
@@ -53,6 +53,7 @@
    NULL,                         // AL_METHOD(void, drawing_mode, (void));
    NULL,                         // AL_METHOD(void, save_video_state, (void*));
    NULL,                         // AL_METHOD(void, restore_video_state, (void*));
+   NULL,    // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    gfx_directx_fetch_mode_list,
    0, 0,                         // physical (not virtual!) screen size
    TRUE,                         // true if video memory is linear
@@ -91,6 +92,7 @@
    NULL,                        // AL_METHOD(void, drawing_mode, (void));
    NULL,                        // AL_METHOD(void, save_video_state, (void*));
    NULL,                        // AL_METHOD(void, restore_video_state, (void*));
+   NULL,                        // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    gfx_directx_fetch_mode_list,
    0, 0,                        // physical (not virtual!) screen size
    TRUE,                        // true if video memory is linear
@@ -124,6 +126,7 @@
    NULL,                        // AL_METHOD(void, drawing_mode, (void));
    NULL,                        // AL_METHOD(void, save_video_state, (void*));
    NULL,                        // AL_METHOD(void, restore_video_state, (void*));
+   NULL,                        // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    gfx_directx_fetch_mode_list,
    0, 0,                        // physical (not virtual!) screen size
    TRUE,                        // true if video memory is linear
Index: src/win/wddwin.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/win/wddwin.c,v
retrieving revision 1.71
diff -u -r1.71 wddwin.c
--- src/win/wddwin.c	25 Sep 2004 08:23:15 -0000	1.71
+++ src/win/wddwin.c	3 Oct 2004 13:38:09 -0000
@@ -61,6 +61,7 @@
    NULL,                        // AL_METHOD(void, drawing_mode, (void));
    NULL,                        // AL_METHOD(void, save_video_state, (void*));
    NULL,                        // AL_METHOD(void, restore_video_state, (void*));
+   NULL,                        // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    NULL,                        // AL_METHOD(int, fetch_mode_list, (void));
    0, 0,                        // int w, h;
    TRUE,                        // int linear;
Index: src/win/wgdi.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/win/wgdi.c,v
retrieving revision 1.33
diff -u -r1.33 wgdi.c
--- src/win/wgdi.c	11 Jun 2003 17:38:11 -0000	1.33
+++ src/win/wgdi.c	3 Oct 2004 13:38:10 -0000
@@ -73,6 +73,7 @@
    NULL,                        // AL_METHOD(void, drawing_mode, (void));
    NULL,                        // AL_METHOD(void, save_video_state, (void*));
    NULL,                        // AL_METHOD(void, restore_video_state, (void*));
+   NULL,                        // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    NULL,                        // AL_METHOD(int, fetch_mode_list, (void));
    0, 0,                        // int w, h;
    TRUE,                        // int linear;
Index: src/x/xgfxdrv.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/x/xgfxdrv.c,v
retrieving revision 1.16
diff -u -r1.16 xgfxdrv.c
--- src/x/xgfxdrv.c	31 Aug 2004 07:29:28 -0000	1.16
+++ src/x/xgfxdrv.c	3 Oct 2004 13:38:10 -0000
@@ -49,6 +49,7 @@
 #endif
    _xwin_drawing_mode,
    NULL, NULL,
+   NULL,    // AL_METHOD(void, set_blender_mode, (int mode, int r, int g, int b, int a));
    NULL,
    320, 200,
    TRUE,


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