? fbdev.c.alex
? alex.diff
Index: fbdev.c
===================================================================
RCS file: /cvs/directfb/DirectFB/src/core/fbdev.c,v
retrieving revision 1.67
diff -u -p -u -p -w -r1.67 fbdev.c
--- fbdev.c	2 Jul 2002 15:22:53 -0000	1.67
+++ fbdev.c	15 Jul 2002 11:19:56 -0000
@@ -121,7 +121,9 @@ static DFBResult
 primarySetSrcColorKey    ( DisplayLayer               *layer,
                            void                       *driver_data,
                            void                       *layer_data,
-                           __u32                       key );
+                           __u8                        r,
+                           __u8                        g,
+                           __u8                        b );
      
 static DFBResult
 primarySetDstColorKey    ( DisplayLayer               *layer,
@@ -704,7 +706,9 @@ static DFBResult
 primarySetSrcColorKey    ( DisplayLayer               *layer,
                            void                       *driver_data,
                            void                       *layer_data,
-                           __u32                       key )
+                           __u8                        r,
+                           __u8                        g,
+                           __u8                        b )
 {
      return DFB_UNSUPPORTED;
 }
Index: layers.c
===================================================================
RCS file: /cvs/directfb/DirectFB/src/core/layers.c,v
retrieving revision 1.43
diff -u -p -u -p -w -r1.43 layers.c
--- layers.c	10 Jul 2002 15:10:53 -0000	1.43
+++ layers.c	15 Jul 2002 11:19:59 -0000
@@ -320,7 +320,8 @@ dfb_layers_hook_primary( GraphicsDevice 
                oldfuncs[i] = newfuncs[i];
      }
 
-     /* replace driver data pointer */
+     /* replace device and driver data pointer */
+     primary->device      = device;
      primary->driver_data = driver_data;
 }
 
@@ -334,7 +335,8 @@ dfb_layers_replace_primary( GraphicsDevi
      DFB_ASSERT( primary != NULL );
      DFB_ASSERT( funcs != NULL );
 
-     /* replace the function table and driver data pointer */
+     /* replace device, function table and driver data pointer */
+     primary->device      = device;
      primary->funcs       = funcs;
      primary->driver_data = driver_data;
 }
@@ -911,19 +913,11 @@ DFBResult
 dfb_layer_set_src_colorkey( DisplayLayer *layer,
                             __u8 r, __u8 g, __u8 b )
 {
-     __u32               key;
-     DisplayLayerShared *shared = layer->shared;
-
      if (!layer->funcs->SetSrcColorKey)
           return DFB_UNSUPPORTED;
 
-     if (shared->surface)
-          key = color_to_pixel( shared->surface->format, r, g, b );
-     else
-          key = PIXEL_RGB32( r, g, b );
-
      return layer->funcs->SetSrcColorKey( layer, layer->driver_data,
-                                          layer->layer_data, key );
+                                          layer->layer_data, r, g, b );
 }
 
 DFBResult
Index: layers.h
===================================================================
RCS file: /cvs/directfb/DirectFB/src/core/layers.h,v
retrieving revision 1.28
diff -u -p -u -p -w -r1.28 layers.h
--- layers.h	10 Jul 2002 15:10:53 -0000	1.28
+++ layers.h	15 Jul 2002 11:20:00 -0000
@@ -96,7 +96,9 @@ typedef struct {
      DFBResult (*SetSrcColorKey)    ( DisplayLayer               *layer,
                                       void                       *driver_data,
                                       void                       *layer_data,
-                                      __u32                       key );
+                                      __u8                        r,
+                                      __u8                        g,
+                                      __u8                        b );
      
      DFBResult (*SetDstColorKey)    ( DisplayLayer               *layer,
                                       void                       *driver_data,
