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

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


> Ok, revised patch attached.

Really attached this time.
Index: include/allegro/3d.h
===================================================================
RCS file: /cvsroot/alleg/allegro/include/allegro/3d.h,v
retrieving revision 1.3
diff -u -r1.3 3d.h
--- include/allegro/3d.h	31 Oct 2002 12:56:24 -0000	1.3
+++ include/allegro/3d.h	10 Oct 2004 14:47:21 -0000
@@ -64,12 +64,12 @@
 
 AL_VAR(float, scene_gap);
 
-AL_FUNC(void, polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
-AL_FUNC(void, polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
-AL_FUNC(void, triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
-AL_FUNC(void, triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
-AL_FUNC(void, quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
-AL_FUNC(void, quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
+AL_FUNC(void, _soft_polygon3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]));
+AL_FUNC(void, _soft_polygon3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D_f *vtx[]));
+AL_FUNC(void, _soft_triangle3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3));
+AL_FUNC(void, _soft_triangle3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3));
+AL_FUNC(void, _soft_quad3d, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4));
+AL_FUNC(void, _soft_quad3d_f, (struct BITMAP *bmp, int type, struct BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4));
 AL_FUNC(int, clip3d, (int type, fixed min_z, fixed max_z, int vc, AL_CONST V3D *vtx[], V3D *vout[], V3D *vtmp[], int out[]));
 AL_FUNC(int, clip3d_f, (int type, float min_z, float max_z, int vc, AL_CONST V3D_f *vtx[], V3D_f *vout[], V3D_f *vtmp[], int out[]));
 
Index: include/allegro/draw.h
===================================================================
RCS file: /cvsroot/alleg/allegro/include/allegro/draw.h,v
retrieving revision 1.4
diff -u -r1.4 draw.h
--- include/allegro/draw.h	31 Oct 2002 12:56:24 -0000	1.4
+++ include/allegro/draw.h	10 Oct 2004 14:47:22 -0000
@@ -38,26 +38,26 @@
 AL_FUNC(void, xor_mode, (int on));
 AL_FUNC(void, solid_mode, (void));
 AL_FUNC(void, do_line, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int d, AL_METHOD(void, proc, (struct BITMAP *, int, int, int))));
-AL_FUNC(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
-AL_FUNC(void, polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
-AL_FUNC(void, rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
+AL_FUNC(void, _soft_triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+AL_FUNC(void, _soft_polygon, (struct BITMAP *bmp, int vertices, AL_CONST int *points, int color));
+AL_FUNC(void, _soft_rect, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
 AL_FUNC(void, do_circle, (struct BITMAP *bmp, int x, int y, int radius, int d, AL_METHOD(void, proc, (struct BITMAP *, int, int, int))));
-AL_FUNC(void, circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
-AL_FUNC(void, circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
+AL_FUNC(void, _soft_circle, (struct BITMAP *bmp, int x, int y, int radius, int color));
+AL_FUNC(void, _soft_circlefill, (struct BITMAP *bmp, int x, int y, int radius, int color));
 AL_FUNC(void, do_ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int d, AL_METHOD(void, proc, (struct BITMAP *, int, int, int))));
-AL_FUNC(void, ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
-AL_FUNC(void, ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+AL_FUNC(void, _soft_ellipse, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
+AL_FUNC(void, _soft_ellipsefill, (struct BITMAP *bmp, int x, int y, int rx, int ry, int color));
 AL_FUNC(void, do_arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int d, AL_METHOD(void, proc, (struct BITMAP *, int, int, int))));
-AL_FUNC(void, arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
+AL_FUNC(void, _soft_arc, (struct BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color));
 AL_FUNC(void, calc_spline, (AL_CONST int points[8], int npts, int *x, int *y));
-AL_FUNC(void, spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
-AL_FUNC(void, floodfill, (struct BITMAP *bmp, int x, int y, int color));
+AL_FUNC(void, _soft_spline, (struct BITMAP *bmp, AL_CONST int points[8], int color));
+AL_FUNC(void, _soft_floodfill, (struct BITMAP *bmp, int x, int y, int color));
 AL_FUNC(void, blit, (struct BITMAP *source, struct BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height));
 AL_FUNC(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_FUNC(void, stretch_blit, (struct BITMAP *s, struct BITMAP *d, int s_x, int s_y, int s_w, int s_h, int d_x, int d_y, int d_w, int d_h));
 AL_FUNC(void, masked_stretch_blit, (struct BITMAP *s, struct BITMAP *d, int s_x, int s_y, int s_w, int s_h, int d_x, int d_y, int d_w, int d_h));
 AL_FUNC(void, stretch_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int w, int h));
-AL_FUNC(void, draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
+AL_FUNC(void, _soft_draw_gouraud_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4));
 
 #ifdef __cplusplus
    }
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	10 Oct 2004 14:47:22 -0000
@@ -19,6 +19,7 @@
 #ifndef ALLEGRO_GFX_H
 #define ALLEGRO_GFX_H
 
+#include "3d.h"
 #include "base.h"
 #include "fixed.h"
 
@@ -75,6 +76,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 */
@@ -145,7 +147,7 @@
    AL_METHOD(void, line, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
    AL_METHOD(void, fastline, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
    AL_METHOD(void, rectfill, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int color));
-   AL_METHOD(int,  triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
+   AL_METHOD(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color));
    AL_METHOD(void, draw_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y));
    AL_METHOD(void, draw_256_sprite, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y));
    AL_METHOD(void, draw_sprite_v_flip, (struct BITMAP *bmp, struct BITMAP *sprite, int x, int y));
@@ -171,8 +173,25 @@
    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, 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, 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: include/allegro/inline/draw.inl
===================================================================
RCS file: /cvsroot/alleg/allegro/include/allegro/inline/draw.inl,v
retrieving revision 1.6
diff -u -r1.6 draw.inl
--- include/allegro/inline/draw.inl	14 Feb 2004 15:27:59 -0000	1.6
+++ include/allegro/inline/draw.inl	10 Oct 2004 14:47:22 -0000
@@ -20,6 +20,7 @@
 #define ALLEGRO_DRAW_INL
 
 #include "allegro/debug.h"
+#include "allegro/3d.h"
 #include "gfx.inl"
 
 #ifdef __cplusplus
@@ -82,6 +83,148 @@
 })
 
 
+AL_INLINE(void, triangle, (struct BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->triangle(bmp, x1, y1, x2, y2, x3, y3, color);
+})
+
+
+AL_INLINE(void, polygon, (BITMAP *bmp, int vertices, AL_CONST int *points, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->polygon(bmp, vertices, points, color);
+})
+
+
+AL_INLINE(void, rect, (BITMAP *bmp, int x1, int y1, int x2, int y2, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->rect(bmp, x1, y1, x2, y2, color);
+})
+
+
+AL_INLINE(void, circle, (BITMAP *bmp, int x, int y, int radius, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->circle(bmp, x, y, radius, color);
+})
+
+
+AL_INLINE(void, circlefill, (BITMAP *bmp, int x, int y, int radius, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->circlefill(bmp, x, y, radius, color);
+})
+
+
+
+AL_INLINE(void, ellipse, (BITMAP *bmp, int x, int y, int rx, int ry, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->ellipse(bmp, x, y, rx, ry, color);
+})
+
+
+
+AL_INLINE(void, ellipsefill, (BITMAP *bmp, int x, int y, int rx, int ry, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->ellipsefill(bmp, x, y, rx, ry, color);
+})
+
+
+
+AL_INLINE(void, arc, (BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->arc(bmp, x, y, ang1, ang2, r, color);
+})
+
+
+
+AL_INLINE(void, spline, (BITMAP *bmp, AL_CONST int points[8], int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->spline(bmp, points, color);
+})
+
+
+
+AL_INLINE(void, floodfill, (BITMAP *bmp, int x, int y, int color),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->floodfill(bmp, x, y, color);
+})
+
+
+
+AL_INLINE(void, polygon3d, (BITMAP *bmp, int type, struct BITMAP *texture, int vc, V3D *vtx[]),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->polygon3d(bmp, type, texture, vc, vtx);
+})
+
+
+
+AL_INLINE(void, polygon3d_f, (BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[]),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->polygon3d_f(bmp, type, texture, vc, vtx);
+})
+
+
+
+AL_INLINE(void, triangle3d, (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->triangle3d(bmp, type, texture, v1, v2, v3);
+})
+
+
+
+AL_INLINE(void, triangle3d_f, (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->triangle3d_f(bmp, type, texture, v1, v2, v3);
+})
+
+
+
+AL_INLINE(void, quad3d, (BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->quad3d(bmp, type, texture, v1, v2, v3, v4);
+})
+
+
+
+AL_INLINE(void, quad3d_f, (BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4),
+{
+   ASSERT(bmp);
+
+   bmp->vtable->quad3d_f(bmp, type, texture, v1, v2, v3, v4);
+})
+
+
+
+
+
 AL_INLINE(void, draw_sprite, (BITMAP *bmp, BITMAP *sprite, int x, int y),
 {
    ASSERT(bmp);
@@ -153,6 +296,16 @@
 })
 
 
+AL_INLINE(void, draw_gouraud_sprite, (BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4),
+{
+   ASSERT(bmp);
+   ASSERT(sprite);
+   ASSERT(bmp->vtable->color_depth == sprite->vtable->color_depth);
+
+   bmp->vtable->draw_gouraud_sprite(bmp, sprite, x, y, c1, c2, c3, c4);
+})
+
+
 AL_INLINE(void, draw_character_ex, (BITMAP *bmp, BITMAP *sprite, int x, int y, int color, int bg),
 {
    ASSERT(bmp);
Index: src/flood.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/flood.c,v
retrieving revision 1.5
diff -u -r1.5 flood.c
--- src/flood.c	23 Oct 2003 08:11:47 -0000	1.5
+++ src/flood.c	10 Oct 2004 14:47:23 -0000
@@ -206,7 +206,7 @@
 /* floodfill:
  *  Fills an enclosed area (starting at point x, y) with the specified color.
  */
-void floodfill(BITMAP *bmp, int x, int y, int color)
+void _soft_floodfill(BITMAP *bmp, int x, int y, int color)
 {
    int src_color;
    int c, done;
Index: src/gfx.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/gfx.c,v
retrieving revision 1.18
diff -u -r1.18 gfx.c
--- src/gfx.c	14 Feb 2004 15:27:59 -0000	1.18
+++ src/gfx.c	10 Oct 2004 14:47:24 -0000
@@ -497,7 +497,7 @@
 /* rect:
  *  Draws an outline rectangle.
  */
-void rect(BITMAP *bmp, int x1, int y1, int x2, int y2, int color)
+void _soft_rect(BITMAP *bmp, int x1, int y1, int x2, int y2, int color)
 {
    int t;
 
@@ -934,7 +934,7 @@
 /* circle:
  *  Draws a circle.
  */
-void circle(BITMAP *bmp, int x, int y, int radius, int color)
+void _soft_circle(BITMAP *bmp, int x, int y, int radius, int color)
 {
    int clip, sx, sy, dx, dy;
    ASSERT(bmp);
@@ -970,7 +970,7 @@
 /* circlefill:
  *  Draws a filled circle.
  */
-void circlefill(BITMAP *bmp, int x, int y, int radius, int color)
+void _soft_circlefill(BITMAP *bmp, int x, int y, int radius, int color)
 {
    int cx = 0;
    int cy = radius;
@@ -1147,7 +1147,7 @@
 /* ellipse:
  *  Draws an ellipse.
  */
-void ellipse(BITMAP *bmp, int x, int y, int rx, int ry, int color)
+void _soft_ellipse(BITMAP *bmp, int x, int y, int rx, int ry, int color)
 {
    int clip, sx, sy, dx, dy;
    ASSERT(bmp);
@@ -1183,7 +1183,7 @@
 /* ellipsefill:
  *  Draws a filled ellipse.
  */
-void ellipsefill(BITMAP *bmp, int x, int y, int rx, int ry, int color)
+void _soft_ellipsefill(BITMAP *bmp, int x, int y, int rx, int ry, int color)
 {
    int ix, iy;
    int a, b, c, d;
@@ -1510,7 +1510,7 @@
 /* arc:
  *  Draws an arc.
  */
-void arc(BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color)
+void _soft_arc(BITMAP *bmp, int x, int y, fixed ang1, fixed ang2, int r, int color)
 {
    ASSERT(bmp);
    acquire_bitmap(bmp);
Index: src/gsprite.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/gsprite.c,v
retrieving revision 1.6
diff -u -r1.6 gsprite.c
--- src/gsprite.c	12 Sep 2002 16:23:57 -0000	1.6
+++ src/gsprite.c	10 Oct 2004 14:47:24 -0000
@@ -25,7 +25,7 @@
  *  Draws a lit or tinted sprite, interpolating the four corner colors
  *  over the surface of the image.
  */
-void draw_gouraud_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4)
+void _soft_draw_gouraud_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4)
 {
    fixed mc1, mc2, mh;
    fixed lc, rc, hc;
Index: src/poly3d.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/poly3d.c,v
retrieving revision 1.27
diff -u -r1.27 poly3d.c
--- src/poly3d.c	24 Jun 2003 12:38:29 -0000	1.27
+++ src/poly3d.c	10 Oct 2004 14:47:25 -0000
@@ -1145,7 +1145,7 @@
  *  be followed by that many pointers to V3D structures, which describe each
  *  vertex of the polygon.
  */
-void polygon3d(BITMAP *bmp, int type, BITMAP *texture, int vc, V3D *vtx[])
+void _soft_polygon3d(BITMAP *bmp, int type, BITMAP *texture, int vc, V3D *vtx[])
 {
    int c;
    int flags;
@@ -1211,7 +1211,7 @@
 /* polygon3d_f:
  *  Floating point version of polygon3d().
  */
-void polygon3d_f(BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[])
+void _soft_polygon3d_f(BITMAP *bmp, int type, BITMAP *texture, int vc, V3D_f *vtx[])
 {
    int c;
    int flags;
@@ -1531,7 +1531,7 @@
 /* triangle3d:
  *  Draws a 3d triangle.
  */
-void triangle3d(BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3)
+void _soft_triangle3d(BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3)
 {
    int flags;
 
@@ -1621,7 +1621,7 @@
 /* triangle3d_f:
  *  Draws a 3d triangle.
  */
-void triangle3d_f(BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3)
+void _soft_triangle3d_f(BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3)
 {
    int flags;
 
@@ -1711,7 +1711,7 @@
 /* quad3d:
  *  Draws a 3d quad.
  */
-void quad3d(BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4)
+void _soft_quad3d(BITMAP *bmp, int type, BITMAP *texture, V3D *v1, V3D *v2, V3D *v3, V3D *v4)
 {
    #if (defined ALLEGRO_GCC) && (defined ALLEGRO_I386)
       ASSERT(bmp);
@@ -1738,7 +1738,7 @@
 /* quad3d_f:
  *  Draws a 3d quad.
  */
-void quad3d_f(BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4)
+void _soft_quad3d_f(BITMAP *bmp, int type, BITMAP *texture, V3D_f *v1, V3D_f *v2, V3D_f *v3, V3D_f *v4)
 {
    #if (defined ALLEGRO_GCC) && (defined ALLEGRO_I386)
       ASSERT(bmp);
Index: src/polygon.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/polygon.c,v
retrieving revision 1.6
diff -u -r1.6 polygon.c
--- src/polygon.c	9 Sep 2002 16:45:32 -0000	1.6
+++ src/polygon.c	10 Oct 2004 14:47:26 -0000
@@ -113,7 +113,7 @@
  *  number of vertices, then an array containing a series of x, y points 
  *  (a total of vertices*2 values).
  */
-void polygon(BITMAP *bmp, int vertices, AL_CONST int *points, int color)
+void _soft_polygon(BITMAP *bmp, int vertices, AL_CONST int *points, int color)
 {
    int c;
    int top = INT_MAX;
@@ -211,12 +211,9 @@
 /* triangle:
  *  Draws a filled triangle between the three points.
  */
-void triangle(BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color)
+void _soft_triangle(BITMAP *bmp, int x1, int y1, int x2, int y2, int x3, int y3, int color)
 {
    ASSERT(bmp);
-   if (bmp->vtable->triangle)
-      if (bmp->vtable->triangle(bmp, x1, y1, x2, y2, x3, y3, color))
-	 return;
 
    #if (defined ALLEGRO_GCC) && (defined ALLEGRO_I386)
 
Index: src/spline.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/spline.c,v
retrieving revision 1.8
diff -u -r1.8 spline.c
--- src/spline.c	9 Sep 2002 16:45:33 -0000	1.8
+++ src/spline.c	10 Oct 2004 14:47:26 -0000
@@ -115,7 +115,7 @@
 /* spline:
  *  Draws a bezier spline onto the specified bitmap in the specified color.
  */
-void spline(BITMAP *bmp, AL_CONST int points[8], int color)
+void _soft_spline(BITMAP *bmp, AL_CONST int points[8], int color)
 {   
    #define MAX_POINTS   64
 
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	10 Oct 2004 14:47:26 -0000
@@ -46,7 +46,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _linear_draw_sprite16,
    _linear_draw_256_sprite16,
    _linear_draw_sprite_v_flip16,
@@ -72,8 +72,26 @@
    _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))
+   _soft_draw_gouraud_sprite,
    _linear_draw_sprite16_end,
-   _linear_blit16_end
+   _linear_blit16_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
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	10 Oct 2004 14:47:26 -0000
@@ -46,7 +46,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _linear_draw_sprite16,
    _linear_draw_256_sprite16,
    _linear_draw_sprite_v_flip16,
@@ -72,8 +72,26 @@
    _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))
+   _soft_draw_gouraud_sprite,
    _linear_draw_sprite16_end,
-   _linear_blit16_end
+   _linear_blit16_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
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	10 Oct 2004 14:47:26 -0000
@@ -46,7 +46,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _linear_draw_sprite24,
    _linear_draw_256_sprite24,
    _linear_draw_sprite_v_flip24,
@@ -72,8 +72,26 @@
    _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))
+   _soft_draw_gouraud_sprite,
    _linear_draw_sprite24_end,
-   _linear_blit24_end
+   _linear_blit24_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
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	10 Oct 2004 14:47:26 -0000
@@ -46,7 +46,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _linear_draw_sprite32,
    _linear_draw_256_sprite32,
    _linear_draw_sprite_v_flip32,
@@ -72,8 +72,26 @@
    _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))
+   _soft_draw_gouraud_sprite,
    _linear_draw_sprite32_end,
-   _linear_blit32_end
+   _linear_blit32_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
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	10 Oct 2004 14:47:26 -0000
@@ -46,7 +46,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _linear_draw_sprite8,
    _linear_draw_sprite8,
    _linear_draw_sprite_v_flip8,
@@ -72,8 +72,26 @@
    _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))
+   _soft_draw_gouraud_sprite,
    _linear_draw_sprite8_end,
-   _linear_blit8_end
+   _linear_blit8_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
Index: src/c/cstretch.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/c/cstretch.c,v
retrieving revision 1.12
diff -u -r1.12 cstretch.c
--- src/c/cstretch.c	24 Jul 2004 10:32:31 -0000	1.12
+++ src/c/cstretch.c	10 Oct 2004 14:47:27 -0000
@@ -255,6 +255,12 @@
    ASSERT(src);
    ASSERT(dst);
 
+   /* vtable hook */   
+   if (source->vtable->do_stretch_blit) {
+      source->vtable->do_stretch_blit(src, dst, sx, sy, sw, sh, dx, dy, dw, dh, masked);
+      return;
+   }
+
    if ((sw <= 0) || (sh <= 0) || (dw <= 0) || (dh <= 0))
       return;
 
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	10 Oct 2004 14:47:28 -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/i386/istretch.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/i386/istretch.c,v
retrieving revision 1.7
diff -u -r1.7 istretch.c
--- src/i386/istretch.c	24 Aug 2004 09:27:15 -0000	1.7
+++ src/i386/istretch.c	10 Oct 2004 14:47:30 -0000
@@ -287,6 +287,12 @@
    char flags;
    int i;
 
+   /* vtable hook */   
+   if (source->vtable->do_stretch_blit) {
+      source->vtable->do_stretch_blit(source, dest, source_x, source_y, source_width, source_height, dest_x, dest_y, dest_width, dest_height, masked);
+      return;
+   }
+
    /* trivial reject for zero sizes */
    if ((source_width <= 0) || (source_height <= 0) || 
        (dest_width <= 0) || (dest_height <= 0))
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	10 Oct 2004 14:47:30 -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	10 Oct 2004 14:47:30 -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	10 Oct 2004 14:47:30 -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	10 Oct 2004 14:47:30 -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	10 Oct 2004 14:47:31 -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	10 Oct 2004 14:47:32 -0000
@@ -62,7 +62,7 @@
    _normal_line,
    _fast_line,
    _normal_rectfill,
-   NULL,
+   _soft_triangle,
    _x_draw_sprite,
    _x_draw_sprite,
    _x_draw_sprite_v_flip,
@@ -88,8 +88,26 @@
    _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)); */
+   _soft_draw_gouraud_sprite,
    _x_draw_sprite_end,
-   _x_blit_from_memory_end
+   _x_blit_from_memory_end,
+   _soft_polygon,
+   _soft_rect,
+   _soft_circle,
+   _soft_circlefill,
+   _soft_ellipse,
+   _soft_ellipsefill,
+   _soft_arc,
+   _soft_spline,
+   _soft_floodfill,
+
+   _soft_polygon3d,
+   _soft_polygon3d_f,
+   _soft_triangle3d,
+   _soft_triangle3d_f,
+   _soft_quad3d,
+   _soft_quad3d_f
 };
 
 
@@ -123,6 +141,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	10 Oct 2004 14:47:34 -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	10 Oct 2004 14:47:35 -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	10 Oct 2004 14:47:35 -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	10 Oct 2004 14:47:36 -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	10 Oct 2004 14:47:36 -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	10 Oct 2004 14:47:36 -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	10 Oct 2004 14:47:37 -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/xdga2.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/x/xdga2.c,v
retrieving revision 1.28
diff -u -r1.28 xdga2.c
--- src/x/xdga2.c	25 Sep 2004 13:16:39 -0000	1.28
+++ src/x/xdga2.c	10 Oct 2004 14:47:38 -0000
@@ -94,6 +94,7 @@
    NULL, NULL, NULL, NULL,
    NULL,
    NULL, NULL,
+   NULL,
    _xdga2_fetch_mode_list,
    640, 480,
    TRUE,
@@ -125,6 +126,7 @@
    NULL, NULL, NULL, NULL,
    NULL,
    NULL, NULL,
+   NULL,
    _xdga2_fetch_mode_list,
    640, 480,
    TRUE,
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	10 Oct 2004 14:47:38 -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,
@@ -88,6 +89,7 @@
 #endif
    _xwin_drawing_mode,
    NULL, NULL,
+   NULL,
    _xwin_fetch_mode_list,
    320, 200,
    TRUE,


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