Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/modules/engines/software_ddraw


Modified Files:
        Evas_Engine_Software_DDraw.h evas_ddraw_main.cpp evas_engine.c 
        evas_engine.h 


Log Message:
dos to unix file format

===================================================================
RCS file: 
/cvs/e/e17/libs/evas/src/modules/engines/software_ddraw/Evas_Engine_Software_DDraw.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- Evas_Engine_Software_DDraw.h        25 Jun 2008 06:40:10 -0000      1.4
+++ Evas_Engine_Software_DDraw.h        28 Jun 2008 07:06:34 -0000      1.5
@@ -1,26 +1,26 @@
-#ifndef __EVAS_ENGINE_SOFTWARE_DDRAW_H__

-#define __EVAS_ENGINE_SOFTWARE_DDRAW_H__

-

-

-#define WIN32_LEAN_AND_MEAN

-#include <windows.h>

-#undef WIN32_LEAN_AND_MEAN

-

-

-typedef struct _Evas_Engine_Info_Software_DDraw 
Evas_Engine_Info_Software_DDraw;

-

-struct _Evas_Engine_Info_Software_DDraw

-{

-   /* PRIVATE - don't mess with this baby or evas will poke its tongue out */

-   /* at you and make nasty noises */

-   Evas_Engine_Info magic;

-

-   struct {

-      HWND                window;

-      int                 depth;

-      int                 rotation;

-   } info;

-};

-

-

-#endif /* __EVAS_ENGINE_SOFTWARE_DDRAW_H__ */

+#ifndef __EVAS_ENGINE_SOFTWARE_DDRAW_H__
+#define __EVAS_ENGINE_SOFTWARE_DDRAW_H__
+
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+
+
+typedef struct _Evas_Engine_Info_Software_DDraw 
Evas_Engine_Info_Software_DDraw;
+
+struct _Evas_Engine_Info_Software_DDraw
+{
+   /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
+   /* at you and make nasty noises */
+   Evas_Engine_Info magic;
+
+   struct {
+      HWND                window;
+      int                 depth;
+      int                 rotation;
+   } info;
+};
+
+
+#endif /* __EVAS_ENGINE_SOFTWARE_DDRAW_H__ */
===================================================================
RCS file: 
/cvs/e/e17/libs/evas/src/modules/engines/software_ddraw/evas_ddraw_main.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_ddraw_main.cpp 25 Jun 2008 06:40:10 -0000      1.2
+++ evas_ddraw_main.cpp 28 Jun 2008 07:06:34 -0000      1.3
@@ -1,195 +1,195 @@
-#include "evas_common.h"

-#include "evas_engine.h"

-

-int

-evas_software_ddraw_init (HWND    window,

-                          int     depth,

-                          Outbuf *buf)

-{

-   DDSURFACEDESC  surface_desc;

-   DDPIXELFORMAT  pixel_format;

-   RECT           rect;

-   LPDIRECTDRAW   o;

-   HRESULT        res;

-   int            width;

-   int            height;

-

-   if (!buf)

-     return 0;

-

-   if (!GetClientRect(window, &rect))

-     return 0;

-

-   width = rect.right - rect.left;

-   height = rect.bottom - rect.top;

-

-   buf->priv.dd.window = window;

-

-   res = DirectDrawCreate(NULL, &buf->priv.dd.object, NULL);

-   if (FAILED(res))

-     return 0;

-

-   res = buf->priv.dd.object->SetCooperativeLevel(window, DDSCL_NORMAL);

-   if (FAILED(res))

-     goto release_object;

-

-   res = buf->priv.dd.object->CreateClipper (0, &buf->priv.dd.clipper, NULL);

-   if (FAILED(res))

-     goto release_object;

-

-   res = buf->priv.dd.clipper->SetHWnd (0, window);

-   if (FAILED(res))

-     goto release_clipper;

-

-   memset(&surface_desc, 0, sizeof(surface_desc));

-   surface_desc.dwSize = sizeof(surface_desc);

-   surface_desc.dwFlags = DDSD_CAPS;

-   surface_desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;

-

-   res = buf->priv.dd.object->CreateSurface (&surface_desc, 
&buf->priv.dd.surface_primary, NULL);

-   if (FAILED(res))

-     goto release_clipper;

-

-   res = buf->priv.dd.surface_primary->SetClipper (buf->priv.dd.clipper);

-   if (FAILED(res))

-     goto release_surface_primary;

-

-   memset (&surface_desc, 0, sizeof(surface_desc));

-   surface_desc.dwSize = sizeof(surface_desc);

-   surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;

-   surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;

-   surface_desc.dwWidth = width;

-   surface_desc.dwHeight = height;

-

-   res = buf->priv.dd.object->CreateSurface (&surface_desc, 
&buf->priv.dd.surface_back, NULL);

-   if (FAILED(res))

-     goto release_surface_primary;

-

-   ZeroMemory(&pixel_format, sizeof(pixel_format));

-   pixel_format.dwSize = sizeof(pixel_format);

-   buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format);

-

-   if (pixel_format.dwRGBBitCount != depth)

-     goto release_surface_back;

-

-   buf->priv.dd.depth = depth;

-

-   return 1;

-

- release_surface_back:

-   buf->priv.dd.surface_back->Release();

- release_surface_primary:

-   buf->priv.dd.surface_primary->Release();

- release_clipper:

-   buf->priv.dd.clipper->Release();

- release_object:

-   buf->priv.dd.object->Release();

-

-   return 0;

-}

-

-void

-evas_software_ddraw_shutdown(Outbuf *buf)

-{

-   if (!buf)

-     return;

-

-   buf->priv.dd.surface_back->Release();

-   buf->priv.dd.surface_primary->Release();

-   buf->priv.dd.clipper->Release();

-   buf->priv.dd.object->Release();

-}

-

-int

-evas_software_ddraw_masks_get(Outbuf *buf)

-{

-   DDPIXELFORMAT pixel_format;

-

-   ZeroMemory(&pixel_format, sizeof(pixel_format));

-   pixel_format.dwSize = sizeof(pixel_format);

-

-   if (FAILED(buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format)))

-     return 0;

-

-   buf->priv.mask.r = pixel_format.dwRBitMask;

-   buf->priv.mask.g = pixel_format.dwGBitMask;

-   buf->priv.mask.b = pixel_format.dwBBitMask;

-

-   return 1;

-}

-

-void *

-evas_software_ddraw_lock(Outbuf *buf,

-                         int    *ddraw_width,

-                         int    *ddraw_height,

-                         int    *ddraw_pitch,

-                         int    *ddraw_depth)

-{

-   DDSURFACEDESC surface_desc;

-

-   ZeroMemory(&surface_desc, sizeof(surface_desc));

-   surface_desc.dwSize = sizeof(surface_desc);

-

-   if (FAILED(buf->priv.dd.surface_back->Lock(NULL,

-                                              &surface_desc,

-                                              DDLOCK_WAIT | 
DDLOCK_SURFACEMEMORYPTR,

-                                              NULL)))

-     return NULL;

-

-   *ddraw_width = surface_desc.dwWidth;

-   *ddraw_height = surface_desc.dwHeight;

-   *ddraw_pitch = surface_desc.lPitch;

-   *ddraw_depth = surface_desc.ddpfPixelFormat.dwRGBBitCount >> 3;

-

-   return surface_desc.lpSurface;

-}

-

-void

-evas_software_ddraw_unlock_and_flip(Outbuf *buf)

-{

-   RECT    dst_rect;

-   RECT    src_rect;

-   POINT   p;

-

-   if (FAILED(buf->priv.dd.surface_back->Unlock(NULL)))

-     return;

-

-   /* we figure out where on the primary surface our window lives */

-   p.x = 0;

-   p.y = 0;

-   ClientToScreen(buf->priv.dd.window, &p);

-   GetClientRect(buf->priv.dd.window, &dst_rect);

-   OffsetRect(&dst_rect, p.x, p.y);

-   SetRect(&src_rect, 0, 0, buf->width, buf->height);

-

-   /* nothing to do if the function fails, so we don't check the result */

-   buf->priv.dd.surface_primary->Blt(&dst_rect,

-                                     buf->priv.dd.surface_back,

-                                     &src_rect,

-                                     DDBLT_WAIT, NULL);

-}

-

-void

-evas_software_ddraw_surface_resize(Outbuf *buf)

-{

-   DDSURFACEDESC surface_desc;

-

-   buf->priv.dd.surface_back->Release();

-   memset (&surface_desc, 0, sizeof (surface_desc));

-   surface_desc.dwSize = sizeof (surface_desc);

-   /* FIXME: that code does not compile. Must know why */

-#if 0

-   surface_desc.dwFlags = DDSD_HEIGHT | DDSD_WIDTH;

-   surface_desc.dwWidth = width;

-   surface_desc.dwHeight = height;

-   buf->priv.dd.surface_back->SetSurfaceDesc(&surface_desc, NULL);

-#else

-   surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;

-   surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;

-   surface_desc.dwWidth = buf->width;

-   surface_desc.dwHeight = buf->height;

-   buf->priv.dd.object->CreateSurface(&surface_desc,

-                                      &buf->priv.dd.surface_back,

-                                      NULL);

-#endif

-}

+#include "evas_common.h"
+#include "evas_engine.h"
+
+int
+evas_software_ddraw_init (HWND    window,
+                          int     depth,
+                          Outbuf *buf)
+{
+   DDSURFACEDESC  surface_desc;
+   DDPIXELFORMAT  pixel_format;
+   RECT           rect;
+   LPDIRECTDRAW   o;
+   HRESULT        res;
+   int            width;
+   int            height;
+
+   if (!buf)
+     return 0;
+
+   if (!GetClientRect(window, &rect))
+     return 0;
+
+   width = rect.right - rect.left;
+   height = rect.bottom - rect.top;
+
+   buf->priv.dd.window = window;
+
+   res = DirectDrawCreate(NULL, &buf->priv.dd.object, NULL);
+   if (FAILED(res))
+     return 0;
+
+   res = buf->priv.dd.object->SetCooperativeLevel(window, DDSCL_NORMAL);
+   if (FAILED(res))
+     goto release_object;
+
+   res = buf->priv.dd.object->CreateClipper (0, &buf->priv.dd.clipper, NULL);
+   if (FAILED(res))
+     goto release_object;
+
+   res = buf->priv.dd.clipper->SetHWnd (0, window);
+   if (FAILED(res))
+     goto release_clipper;
+
+   memset(&surface_desc, 0, sizeof(surface_desc));
+   surface_desc.dwSize = sizeof(surface_desc);
+   surface_desc.dwFlags = DDSD_CAPS;
+   surface_desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
+
+   res = buf->priv.dd.object->CreateSurface (&surface_desc, 
&buf->priv.dd.surface_primary, NULL);
+   if (FAILED(res))
+     goto release_clipper;
+
+   res = buf->priv.dd.surface_primary->SetClipper (buf->priv.dd.clipper);
+   if (FAILED(res))
+     goto release_surface_primary;
+
+   memset (&surface_desc, 0, sizeof(surface_desc));
+   surface_desc.dwSize = sizeof(surface_desc);
+   surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
+   surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
+   surface_desc.dwWidth = width;
+   surface_desc.dwHeight = height;
+
+   res = buf->priv.dd.object->CreateSurface (&surface_desc, 
&buf->priv.dd.surface_back, NULL);
+   if (FAILED(res))
+     goto release_surface_primary;
+
+   ZeroMemory(&pixel_format, sizeof(pixel_format));
+   pixel_format.dwSize = sizeof(pixel_format);
+   buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format);
+
+   if (pixel_format.dwRGBBitCount != depth)
+     goto release_surface_back;
+
+   buf->priv.dd.depth = depth;
+
+   return 1;
+
+ release_surface_back:
+   buf->priv.dd.surface_back->Release();
+ release_surface_primary:
+   buf->priv.dd.surface_primary->Release();
+ release_clipper:
+   buf->priv.dd.clipper->Release();
+ release_object:
+   buf->priv.dd.object->Release();
+
+   return 0;
+}
+
+void
+evas_software_ddraw_shutdown(Outbuf *buf)
+{
+   if (!buf)
+     return;
+
+   buf->priv.dd.surface_back->Release();
+   buf->priv.dd.surface_primary->Release();
+   buf->priv.dd.clipper->Release();
+   buf->priv.dd.object->Release();
+}
+
+int
+evas_software_ddraw_masks_get(Outbuf *buf)
+{
+   DDPIXELFORMAT pixel_format;
+
+   ZeroMemory(&pixel_format, sizeof(pixel_format));
+   pixel_format.dwSize = sizeof(pixel_format);
+
+   if (FAILED(buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format)))
+     return 0;
+
+   buf->priv.mask.r = pixel_format.dwRBitMask;
+   buf->priv.mask.g = pixel_format.dwGBitMask;
+   buf->priv.mask.b = pixel_format.dwBBitMask;
+
+   return 1;
+}
+
+void *
+evas_software_ddraw_lock(Outbuf *buf,
+                         int    *ddraw_width,
+                         int    *ddraw_height,
+                         int    *ddraw_pitch,
+                         int    *ddraw_depth)
+{
+   DDSURFACEDESC surface_desc;
+
+   ZeroMemory(&surface_desc, sizeof(surface_desc));
+   surface_desc.dwSize = sizeof(surface_desc);
+
+   if (FAILED(buf->priv.dd.surface_back->Lock(NULL,
+                                              &surface_desc,
+                                              DDLOCK_WAIT | 
DDLOCK_SURFACEMEMORYPTR,
+                                              NULL)))
+     return NULL;
+
+   *ddraw_width = surface_desc.dwWidth;
+   *ddraw_height = surface_desc.dwHeight;
+   *ddraw_pitch = surface_desc.lPitch;
+   *ddraw_depth = surface_desc.ddpfPixelFormat.dwRGBBitCount >> 3;
+
+   return surface_desc.lpSurface;
+}
+
+void
+evas_software_ddraw_unlock_and_flip(Outbuf *buf)
+{
+   RECT    dst_rect;
+   RECT    src_rect;
+   POINT   p;
+
+   if (FAILED(buf->priv.dd.surface_back->Unlock(NULL)))
+     return;
+
+   /* we figure out where on the primary surface our window lives */
+   p.x = 0;
+   p.y = 0;
+   ClientToScreen(buf->priv.dd.window, &p);
+   GetClientRect(buf->priv.dd.window, &dst_rect);
+   OffsetRect(&dst_rect, p.x, p.y);
+   SetRect(&src_rect, 0, 0, buf->width, buf->height);
+
+   /* nothing to do if the function fails, so we don't check the result */
+   buf->priv.dd.surface_primary->Blt(&dst_rect,
+                                     buf->priv.dd.surface_back,
+                                     &src_rect,
+                                     DDBLT_WAIT, NULL);
+}
+
+void
+evas_software_ddraw_surface_resize(Outbuf *buf)
+{
+   DDSURFACEDESC surface_desc;
+
+   buf->priv.dd.surface_back->Release();
+   memset (&surface_desc, 0, sizeof (surface_desc));
+   surface_desc.dwSize = sizeof (surface_desc);
+   /* FIXME: that code does not compile. Must know why */
+#if 0
+   surface_desc.dwFlags = DDSD_HEIGHT | DDSD_WIDTH;
+   surface_desc.dwWidth = width;
+   surface_desc.dwHeight = height;
+   buf->priv.dd.surface_back->SetSurfaceDesc(&surface_desc, NULL);
+#else
+   surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
+   surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
+   surface_desc.dwWidth = buf->width;
+   surface_desc.dwHeight = buf->height;
+   buf->priv.dd.object->CreateSurface(&surface_desc,
+                                      &buf->priv.dd.surface_back,
+                                      NULL);
+#endif
+}
===================================================================
RCS file: 
/cvs/e/e17/libs/evas/src/modules/engines/software_ddraw/evas_engine.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- evas_engine.c       25 Jun 2008 06:40:10 -0000      1.4
+++ evas_engine.c       28 Jun 2008 07:06:34 -0000      1.5
@@ -1,346 +1,346 @@
-#include "evas_common.h"

-#include "evas_private.h"

-#include "evas_engine.h"

-#include "Evas_Engine_Software_DDraw.h"

-

-/* function tables - filled in later (func and parent func) */

-static Evas_Func func, pfunc;

-

-/* engine struct data */

-typedef struct _Render_Engine Render_Engine;

-

-struct _Render_Engine

-{

-   Tilebuf          *tb;

-   Outbuf           *ob;

-   Tilebuf_Rect     *rects;

-   Evas_Object_List *cur_rect;

-   int               end : 1;

-};

-

-

-static void *

-_output_setup(int  width,

-              int  height,

-              int  rot,

-              HWND window,

-              int  depth)

-{

-   Render_Engine *re;

-

-   re = calloc(1, sizeof(Render_Engine));

-   if (!re)

-     return NULL;

-

-   /* if we haven't initialized - init (automatic abort if already done) */

-   evas_common_cpu_init();

-

-   evas_common_blend_init();

-   evas_common_image_init();

-   evas_common_convert_init();

-   evas_common_scale_init();

-   evas_common_rectangle_init();

-   evas_common_gradient_init();

-   evas_common_polygon_init();

-   evas_common_line_init();

-   evas_common_font_init();

-   evas_common_draw_init();

-   evas_common_tilebuf_init();

-

-   evas_software_ddraw_outbuf_init();

-

-   re->ob = evas_software_ddraw_outbuf_setup(width, height, rot,

-                                             OUTBUF_DEPTH_INHERIT,

-                                             window, depth);

-   if (!re->ob)

-     {

-       free(re);

-       return NULL;

-     }

-

-   /* for updates return 1 big buffer, but only use portions of it, also cache

-    it and keepit around until an idle_flush */

-   /* disable for now - i am hunting down why some expedite tests are slower,

-    * as well as shaped stuff is broken and probable non-32bpp is broken as

-    * convert funcs dont do the right thing

-    *

-   re->ob->onebuf = 1;

-    */

-

-   re->tb = evas_common_tilebuf_new(width, height);

-   if (!re->tb)

-     {

-       evas_software_ddraw_outbuf_free(re->ob);

-       free(re);

-       return NULL;

-     }

-   /* in preliminary tests 16x16 gave highest framerates */

-   evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);

-

-   return re;

-}

-

-

-/* engine api this module provides */

-

-static void *

-eng_info(Evas *e)

-{

-   Evas_Engine_Info_Software_DDraw *info;

-

-   info = calloc(1, sizeof(Evas_Engine_Info_Software_DDraw));

-   if (!info) return NULL;

-   info->magic.magic = rand();

-   return info;

-   e = NULL;

-}

-

-static void

-eng_info_free(Evas *e, void *info)

-{

-   Evas_Engine_Info_Software_DDraw *in;

-

-   in = (Evas_Engine_Info_Software_DDraw *)info;

-   free(in);

-}

-

-static void

-eng_setup(Evas *e, void *in)

-{

-   Render_Engine                   *re;

-   Evas_Engine_Info_Software_DDraw *info;

-

-   info = (Evas_Engine_Info_Software_DDraw *)in;

-   if (!e->engine.data.output)

-     e->engine.data.output = _output_setup(e->output.w,

-                                           e->output.h,

-                                           info->info.rotation,

-                                           info->info.window,

-                                           info->info.depth);

-   else

-     {

-       int ponebuf = 0;

-

-       re = e->engine.data.output;

-       ponebuf = re->ob->onebuf;

-       evas_software_ddraw_outbuf_free(re->ob);

-       re->ob = evas_software_ddraw_outbuf_setup(e->output.w,

-                                                  e->output.h,

-                                                  info->info.rotation,

-                                                  OUTBUF_DEPTH_INHERIT,

-                                                  info->info.window,

-                                                  info->info.depth);

-       re->ob->onebuf = ponebuf;

-     }

-   if (!e->engine.data.output) return;

-   if (!e->engine.data.context)

-     e->engine.data.context = 
e->engine.func->context_new(e->engine.data.output);

-

-   re = e->engine.data.output;

-}

-

-static void

-eng_output_free(void *data)

-{

-   Render_Engine *re;

-

-   if (!data) return;

-

-   re = (Render_Engine *)data;

-   evas_software_ddraw_outbuf_free(re->ob);

-   evas_common_tilebuf_free(re->tb);

-   if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);

-   free(re);

-

-   evas_common_font_shutdown();

-   evas_common_image_shutdown();

-}

-

-static void

-eng_output_resize(void *data, int width, int height)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_software_ddraw_outbuf_reconfigure(re->ob,

-                                         width,

-                                         height,

-                                          
evas_software_ddraw_outbuf_rot_get(re->ob),

-                                          OUTBUF_DEPTH_INHERIT);

-   evas_common_tilebuf_free(re->tb);

-   re->tb = evas_common_tilebuf_new(width, height);

-   if (re->tb)

-     evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);

-}

-

-static void

-eng_output_tile_size_set(void *data, int w, int h)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_common_tilebuf_set_tile_size(re->tb, w, h);

-}

-

-static void

-eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);

-}

-

-static void

-eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);

-}

-

-static void

-eng_output_redraws_clear(void *data)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_common_tilebuf_clear(re->tb);

-}

-

-static void *

-eng_output_redraws_next_update_get(void *data,

-                                   int  *x,

-                                   int  *y,

-                                   int  *w,

-                                   int  *h,

-                                   int  *cx,

-                                   int  *cy,

-                                   int  *cw,

-                                   int  *ch)

-{

-   Render_Engine *re;

-   RGBA_Image    *surface;

-   Tilebuf_Rect  *rect;

-   int            ux;

-   int            uy;

-   int            uw;

-   int            uh;

-

-   re = (Render_Engine *)data;

-   if (re->end)

-     {

-       re->end = 0;

-       return NULL;

-     }

-   if (!re->rects)

-     {

-       re->rects = evas_common_tilebuf_get_render_rects(re->tb);

-       re->cur_rect = (Evas_Object_List *)re->rects;

-     }

-   if (!re->cur_rect) return NULL;

-   rect = (Tilebuf_Rect *)re->cur_rect;

-   ux = rect->x;

-   uy = rect->y;

-   uw = rect->w;

-   uh = rect->h;

-   re->cur_rect = re->cur_rect->next;

-   if (!re->cur_rect)

-     {

-       evas_common_tilebuf_free_render_rects(re->rects);

-       re->rects = NULL;

-       re->end = 1;

-     }

-

-   surface = evas_software_ddraw_outbuf_new_region_for_update(re->ob,

-                                                              ux,

-                                                              uy,

-                                                              uw,

-                                                              uh,

-                                                              cx,

-                                                              cy,

-                                                              cw,

-                                                              ch);

-

-   *x = ux;

-   *y = uy;

-   *w = uw;

-   *h = uh;

-

-   return surface;

-}

-

-static void

-eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, 
int w, int h)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_common_pipe_begin(surface);

-   evas_common_pipe_flush(surface);

-   evas_software_ddraw_outbuf_push_updated_region(re->ob, surface, x, y, w, h);

-   evas_software_ddraw_outbuf_free_region_for_update(re->ob, surface);

-   evas_common_cpu_end_opt();

-}

-

-static void

-eng_output_flush(void *data)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_software_ddraw_outbuf_flush(re->ob);

-}

-

-static void

-eng_output_idle_flush(void *data)

-{

-   Render_Engine *re;

-

-   re = (Render_Engine *)data;

-   evas_software_ddraw_outbuf_idle_flush(re->ob);

-}

-

-

-/* module advertising code */

-EAPI int

-module_open(Evas_Module *em)

-{

-   if (!em) return 0;

-   /* get whatever engine module we inherit from */

-   if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;

-   /* store it for later use */

-   func = pfunc;

-   /* now to override methods */

-#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)

-   ORD(info);

-   ORD(info_free);

-   ORD(setup);

-   ORD(output_free);

-   ORD(output_resize);

-   ORD(output_tile_size_set);

-   ORD(output_redraws_rect_add);

-   ORD(output_redraws_rect_del);

-   ORD(output_redraws_clear);

-   ORD(output_redraws_next_update_get);

-   ORD(output_redraws_next_update_push);

-   ORD(output_flush);

-   ORD(output_idle_flush);

-   /* now advertise out own api */

-   em->functions = (void *)(&func);

-   return 1;

-}

-

-EAPI void

-module_close(void)

-{

-}

-

-EAPI Evas_Module_Api evas_modapi =

-{

-   EVAS_MODULE_API_VERSION,

-   EVAS_MODULE_TYPE_ENGINE,

-   "software_ddraw",

-   "none"

-};

+#include "evas_common.h"
+#include "evas_private.h"
+#include "evas_engine.h"
+#include "Evas_Engine_Software_DDraw.h"
+
+/* function tables - filled in later (func and parent func) */
+static Evas_Func func, pfunc;
+
+/* engine struct data */
+typedef struct _Render_Engine Render_Engine;
+
+struct _Render_Engine
+{
+   Tilebuf          *tb;
+   Outbuf           *ob;
+   Tilebuf_Rect     *rects;
+   Evas_Object_List *cur_rect;
+   int               end : 1;
+};
+
+
+static void *
+_output_setup(int  width,
+              int  height,
+              int  rot,
+              HWND window,
+              int  depth)
+{
+   Render_Engine *re;
+
+   re = calloc(1, sizeof(Render_Engine));
+   if (!re)
+     return NULL;
+
+   /* if we haven't initialized - init (automatic abort if already done) */
+   evas_common_cpu_init();
+
+   evas_common_blend_init();
+   evas_common_image_init();
+   evas_common_convert_init();
+   evas_common_scale_init();
+   evas_common_rectangle_init();
+   evas_common_gradient_init();
+   evas_common_polygon_init();
+   evas_common_line_init();
+   evas_common_font_init();
+   evas_common_draw_init();
+   evas_common_tilebuf_init();
+
+   evas_software_ddraw_outbuf_init();
+
+   re->ob = evas_software_ddraw_outbuf_setup(width, height, rot,
+                                             OUTBUF_DEPTH_INHERIT,
+                                             window, depth);
+   if (!re->ob)
+     {
+       free(re);
+       return NULL;
+     }
+
+   /* for updates return 1 big buffer, but only use portions of it, also cache
+    it and keepit around until an idle_flush */
+   /* disable for now - i am hunting down why some expedite tests are slower,
+    * as well as shaped stuff is broken and probable non-32bpp is broken as
+    * convert funcs dont do the right thing
+    *
+   re->ob->onebuf = 1;
+    */
+
+   re->tb = evas_common_tilebuf_new(width, height);
+   if (!re->tb)
+     {
+       evas_software_ddraw_outbuf_free(re->ob);
+       free(re);
+       return NULL;
+     }
+   /* in preliminary tests 16x16 gave highest framerates */
+   evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
+
+   return re;
+}
+
+
+/* engine api this module provides */
+
+static void *
+eng_info(Evas *e)
+{
+   Evas_Engine_Info_Software_DDraw *info;
+
+   info = calloc(1, sizeof(Evas_Engine_Info_Software_DDraw));
+   if (!info) return NULL;
+   info->magic.magic = rand();
+   return info;
+   e = NULL;
+}
+
+static void
+eng_info_free(Evas *e, void *info)
+{
+   Evas_Engine_Info_Software_DDraw *in;
+
+   in = (Evas_Engine_Info_Software_DDraw *)info;
+   free(in);
+}
+
+static void
+eng_setup(Evas *e, void *in)
+{
+   Render_Engine                   *re;
+   Evas_Engine_Info_Software_DDraw *info;
+
+   info = (Evas_Engine_Info_Software_DDraw *)in;
+   if (!e->engine.data.output)
+     e->engine.data.output = _output_setup(e->output.w,
+                                           e->output.h,
+                                           info->info.rotation,
+                                           info->info.window,
+                                           info->info.depth);
+   else
+     {
+       int ponebuf = 0;
+
+       re = e->engine.data.output;
+       ponebuf = re->ob->onebuf;
+       evas_software_ddraw_outbuf_free(re->ob);
+       re->ob = evas_software_ddraw_outbuf_setup(e->output.w,
+                                                  e->output.h,
+                                                  info->info.rotation,
+                                                  OUTBUF_DEPTH_INHERIT,
+                                                  info->info.window,
+                                                  info->info.depth);
+       re->ob->onebuf = ponebuf;
+     }
+   if (!e->engine.data.output) return;
+   if (!e->engine.data.context)
+     e->engine.data.context = 
e->engine.func->context_new(e->engine.data.output);
+
+   re = e->engine.data.output;
+}
+
+static void
+eng_output_free(void *data)
+{
+   Render_Engine *re;
+
+   if (!data) return;
+
+   re = (Render_Engine *)data;
+   evas_software_ddraw_outbuf_free(re->ob);
+   evas_common_tilebuf_free(re->tb);
+   if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
+   free(re);
+
+   evas_common_font_shutdown();
+   evas_common_image_shutdown();
+}
+
+static void
+eng_output_resize(void *data, int width, int height)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_software_ddraw_outbuf_reconfigure(re->ob,
+                                         width,
+                                         height,
+                                          
evas_software_ddraw_outbuf_rot_get(re->ob),
+                                          OUTBUF_DEPTH_INHERIT);
+   evas_common_tilebuf_free(re->tb);
+   re->tb = evas_common_tilebuf_new(width, height);
+   if (re->tb)
+     evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
+}
+
+static void
+eng_output_tile_size_set(void *data, int w, int h)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_tilebuf_set_tile_size(re->tb, w, h);
+}
+
+static void
+eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
+}
+
+static void
+eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
+}
+
+static void
+eng_output_redraws_clear(void *data)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_tilebuf_clear(re->tb);
+}
+
+static void *
+eng_output_redraws_next_update_get(void *data,
+                                   int  *x,
+                                   int  *y,
+                                   int  *w,
+                                   int  *h,
+                                   int  *cx,
+                                   int  *cy,
+                                   int  *cw,
+                                   int  *ch)
+{
+   Render_Engine *re;
+   RGBA_Image    *surface;
+   Tilebuf_Rect  *rect;
+   int            ux;
+   int            uy;
+   int            uw;
+   int            uh;
+
+   re = (Render_Engine *)data;
+   if (re->end)
+     {
+       re->end = 0;
+       return NULL;
+     }
+   if (!re->rects)
+     {
+       re->rects = evas_common_tilebuf_get_render_rects(re->tb);
+       re->cur_rect = (Evas_Object_List *)re->rects;
+     }
+   if (!re->cur_rect) return NULL;
+   rect = (Tilebuf_Rect *)re->cur_rect;
+   ux = rect->x;
+   uy = rect->y;
+   uw = rect->w;
+   uh = rect->h;
+   re->cur_rect = re->cur_rect->next;
+   if (!re->cur_rect)
+     {
+       evas_common_tilebuf_free_render_rects(re->rects);
+       re->rects = NULL;
+       re->end = 1;
+     }
+
+   surface = evas_software_ddraw_outbuf_new_region_for_update(re->ob,
+                                                              ux,
+                                                              uy,
+                                                              uw,
+                                                              uh,
+                                                              cx,
+                                                              cy,
+                                                              cw,
+                                                              ch);
+
+   *x = ux;
+   *y = uy;
+   *w = uw;
+   *h = uh;
+
+   return surface;
+}
+
+static void
+eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, 
int w, int h)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_pipe_begin(surface);
+   evas_common_pipe_flush(surface);
+   evas_software_ddraw_outbuf_push_updated_region(re->ob, surface, x, y, w, h);
+   evas_software_ddraw_outbuf_free_region_for_update(re->ob, surface);
+   evas_common_cpu_end_opt();
+}
+
+static void
+eng_output_flush(void *data)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_software_ddraw_outbuf_flush(re->ob);
+}
+
+static void
+eng_output_idle_flush(void *data)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_software_ddraw_outbuf_idle_flush(re->ob);
+}
+
+
+/* module advertising code */
+EAPI int
+module_open(Evas_Module *em)
+{
+   if (!em) return 0;
+   /* get whatever engine module we inherit from */
+   if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
+   /* store it for later use */
+   func = pfunc;
+   /* now to override methods */
+#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
+   ORD(info);
+   ORD(info_free);
+   ORD(setup);
+   ORD(output_free);
+   ORD(output_resize);
+   ORD(output_tile_size_set);
+   ORD(output_redraws_rect_add);
+   ORD(output_redraws_rect_del);
+   ORD(output_redraws_clear);
+   ORD(output_redraws_next_update_get);
+   ORD(output_redraws_next_update_push);
+   ORD(output_flush);
+   ORD(output_idle_flush);
+   /* now advertise out own api */
+   em->functions = (void *)(&func);
+   return 1;
+}
+
+EAPI void
+module_close(void)
+{
+}
+
+EAPI Evas_Module_Api evas_modapi =
+{
+   EVAS_MODULE_API_VERSION,
+   EVAS_MODULE_TYPE_ENGINE,
+   "software_ddraw",
+   "none"
+};
===================================================================
RCS file: 
/cvs/e/e17/libs/evas/src/modules/engines/software_ddraw/evas_engine.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_engine.h       25 Jun 2008 06:40:10 -0000      1.6
+++ evas_engine.h       28 Jun 2008 07:06:34 -0000      1.7
@@ -1,192 +1,192 @@
-#ifndef __EVAS_ENGINE_H__

-#define __EVAS_ENGINE_H__

-

-

-#define WIN32_LEAN_AND_MEAN

-#include <windows.h>

-#undef WIN32_LEAN_AND_MEAN

-#include <ddraw.h>

-

-typedef struct _Outbuf                Outbuf;

-typedef struct _Outbuf_Region         Outbuf_Region;

-typedef struct _DD_Output_Buffer      DD_Output_Buffer;

-

-enum _Outbuf_Depth

-{

-   OUTBUF_DEPTH_NONE,

-   OUTBUF_DEPTH_INHERIT,

-   OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,

-   OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,

-   OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,

-   OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,

-   OUTBUF_DEPTH_RGB_32BPP_888_8888,

-   OUTBUF_DEPTH_LAST

-};

-

-typedef enum   _Outbuf_Depth          Outbuf_Depth;

-

-struct _Outbuf

-{

-   Outbuf_Depth              depth;

-   int                       width;

-   int                       height;

-   int                       rot;

-   int                       onebuf;

-

-   struct {

-      Convert_Pal           *pal;

-      struct {

-         HWND                window;

-         LPDIRECTDRAW        object;

-         LPDIRECTDRAWSURFACE surface_primary;

-         LPDIRECTDRAWSURFACE surface_back;

-         LPDIRECTDRAWCLIPPER clipper;

-         int                 depth;

-         unsigned char       swap : 1;

-         unsigned char       bit_swap : 1;

-      } dd;

-      struct {

-         DATA32              r, g, b;

-      } mask;

-

-      /* 1 big buffer for updates - flush on idle_flush */

-      RGBA_Image            *onebuf;

-      Evas_List             *onebuf_regions;

-

-      /* a list of pending regions to write to the target */

-      Evas_List             *pending_writes;

-      /* a list of previous frame pending regions to write to the target */

-      Evas_List             *prev_pending_writes;

-

-      unsigned char          mask_dither : 1;

-      unsigned char          destination_alpha : 1;

-      unsigned char          debug : 1;

-      unsigned char          synced : 1;

-   } priv;

-};

-

-struct _Outbuf_Region

-{

-   DD_Output_Buffer *ddob;

-   int               x;

-   int               y;

-   int               width;

-   int               height;

-};

-

-struct _DD_Output_Buffer

-{

-   void *data;

-   int   width;

-   int   height;

-   int   depth;

-   int   pitch;

-/*    int              w, h, bpl; */

-   int              psize;

-};

-

-

-/* evas_outbuf.c */

-

-void evas_software_ddraw_outbuf_init(void);

-

-void evas_software_ddraw_outbuf_free(Outbuf *buf);

-

-Outbuf *evas_software_ddraw_outbuf_setup(int          width,

-                                         int          height,

-                                         int          rotation,

-                                         Outbuf_Depth depth,

-                                         HWND         window,

-                                         int          w_depth);

-

-void evas_software_ddraw_outbuf_reconfigure(Outbuf      *buf,

-                                            int          width,

-                                            int          height,

-                                            int          rotation,

-                                            Outbuf_Depth depth);

-

-RGBA_Image *evas_software_ddraw_outbuf_new_region_for_update(Outbuf *buf,

-                                                             int     x,

-                                                             int     y,

-                                                             int     w,

-                                                             int     h,

-                                                             int    *cx,

-                                                             int    *cy,

-                                                             int    *cw,

-                                                             int    *ch);

-

-void evas_software_ddraw_outbuf_push_updated_region(Outbuf     *buf,

-                                                    RGBA_Image *update,

-                                                    int        x,

-                                                    int        y,

-                                                    int        w,

-                                                    int        h);

-

-void evas_software_ddraw_outbuf_free_region_for_update(Outbuf     *buf,

-                                                       RGBA_Image *update);

-

-void evas_software_ddraw_outbuf_flush(Outbuf *buf);

-

-void evas_software_ddraw_outbuf_idle_flush(Outbuf *buf);

-

-int evas_software_ddraw_outbuf_width_get(Outbuf *buf);

-

-int evas_software_ddraw_outbuf_height_get(Outbuf *buf);

-

-Outbuf_Depth evas_software_ddraw_outbuf_depth_get(Outbuf *buf);

-

-int evas_software_ddraw_outbuf_rot_get(Outbuf *buf);

-

-/* evas_ddraw_buffer.c */

-

-DD_Output_Buffer *evas_software_ddraw_output_buffer_new(int   depth,

-                                                        int   width,

-                                                        int   height,

-                                                        void *data);

-

-void evas_software_ddraw_output_buffer_free(DD_Output_Buffer *ddob);

-

-void evas_software_ddraw_output_buffer_paste(DD_Output_Buffer *ddob,

-                                             void             *ddraw_data,

-                                             int               ddraw_width,

-                                             int               ddraw_height,

-                                             int               ddraw_pitch,

-                                             int               ddraw_depth,

-                                             int               x,

-                                             int               y);

-

-DATA8 *evas_software_ddraw_output_buffer_data(DD_Output_Buffer *ddob,

-                                              int              
*bytes_per_line_ret);

-

-int evas_software_ddraw_output_buffer_depth(DD_Output_Buffer *ddob);

-

-/* evas_ddraw_main.cpp */

-

-#ifdef __cplusplus

-extern "C" {

-#endif

-

-int evas_software_ddraw_init (HWND    window,

-                              int     depth,

-                              Outbuf *buf);

-

-void evas_software_ddraw_shutdown(Outbuf *buf);

-

-int evas_software_ddraw_masks_get(Outbuf *buf);

-

-void *evas_software_ddraw_lock(Outbuf *buf,

-                               int    *ddraw_width,

-                               int    *ddraw_height,

-                               int    *ddraw_pitch,

-                               int    *ddraw_depth);

-

-void evas_software_ddraw_unlock_and_flip(Outbuf *buf);

-

-void evas_software_ddraw_surface_resize(Outbuf *buf);

-

-#ifdef __cplusplus

-}

-#endif

-

-

-#endif /* __EVAS_ENGINE_H__ */

+#ifndef __EVAS_ENGINE_H__
+#define __EVAS_ENGINE_H__
+
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#include <ddraw.h>
+
+typedef struct _Outbuf                Outbuf;
+typedef struct _Outbuf_Region         Outbuf_Region;
+typedef struct _DD_Output_Buffer      DD_Output_Buffer;
+
+enum _Outbuf_Depth
+{
+   OUTBUF_DEPTH_NONE,
+   OUTBUF_DEPTH_INHERIT,
+   OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
+   OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
+   OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
+   OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
+   OUTBUF_DEPTH_RGB_32BPP_888_8888,
+   OUTBUF_DEPTH_LAST
+};
+
+typedef enum   _Outbuf_Depth          Outbuf_Depth;
+
+struct _Outbuf
+{
+   Outbuf_Depth              depth;
+   int                       width;
+   int                       height;
+   int                       rot;
+   int                       onebuf;
+
+   struct {
+      Convert_Pal           *pal;
+      struct {
+         HWND                window;
+         LPDIRECTDRAW        object;
+         LPDIRECTDRAWSURFACE surface_primary;
+         LPDIRECTDRAWSURFACE surface_back;
+         LPDIRECTDRAWCLIPPER clipper;
+         int                 depth;
+         unsigned char       swap : 1;
+         unsigned char       bit_swap : 1;
+      } dd;
+      struct {
+         DATA32              r, g, b;
+      } mask;
+
+      /* 1 big buffer for updates - flush on idle_flush */
+      RGBA_Image            *onebuf;
+      Evas_List             *onebuf_regions;
+
+      /* a list of pending regions to write to the target */
+      Evas_List             *pending_writes;
+      /* a list of previous frame pending regions to write to the target */
+      Evas_List             *prev_pending_writes;
+
+      unsigned char          mask_dither : 1;
+      unsigned char          destination_alpha : 1;
+      unsigned char          debug : 1;
+      unsigned char          synced : 1;
+   } priv;
+};
+
+struct _Outbuf_Region
+{
+   DD_Output_Buffer *ddob;
+   int               x;
+   int               y;
+   int               width;
+   int               height;
+};
+
+struct _DD_Output_Buffer
+{
+   void *data;
+   int   width;
+   int   height;
+   int   depth;
+   int   pitch;
+/*    int              w, h, bpl; */
+   int              psize;
+};
+
+
+/* evas_outbuf.c */
+
+void evas_software_ddraw_outbuf_init(void);
+
+void evas_software_ddraw_outbuf_free(Outbuf *buf);
+
+Outbuf *evas_software_ddraw_outbuf_setup(int          width,
+                                         int          height,
+                                         int          rotation,
+                                         Outbuf_Depth depth,
+                                         HWND         window,
+                                         int          w_depth);
+
+void evas_software_ddraw_outbuf_reconfigure(Outbuf      *buf,
+                                            int          width,
+                                            int          height,
+                                            int          rotation,
+                                            Outbuf_Depth depth);
+
+RGBA_Image *evas_software_ddraw_outbuf_new_region_for_update(Outbuf *buf,
+                                                             int     x,
+                                                             int     y,
+                                                             int     w,
+                                                             int     h,
+                                                             int    *cx,
+                                                             int    *cy,
+                                                             int    *cw,
+                                                             int    *ch);
+
+void evas_software_ddraw_outbuf_push_updated_region(Outbuf     *buf,
+                                                    RGBA_Image *update,
+                                                    int        x,
+                                                    int        y,
+                                                    int        w,
+                                                    int        h);
+
+void evas_software_ddraw_outbuf_free_region_for_update(Outbuf     *buf,
+                                                       RGBA_Image *update);
+
+void evas_software_ddraw_outbuf_flush(Outbuf *buf);
+
+void evas_software_ddraw_outbuf_idle_flush(Outbuf *buf);
+
+int evas_software_ddraw_outbuf_width_get(Outbuf *buf);
+
+int evas_software_ddraw_outbuf_height_get(Outbuf *buf);
+
+Outbuf_Depth evas_software_ddraw_outbuf_depth_get(Outbuf *buf);
+
+int evas_software_ddraw_outbuf_rot_get(Outbuf *buf);
+
+/* evas_ddraw_buffer.c */
+
+DD_Output_Buffer *evas_software_ddraw_output_buffer_new(int   depth,
+                                                        int   width,
+                                                        int   height,
+                                                        void *data);
+
+void evas_software_ddraw_output_buffer_free(DD_Output_Buffer *ddob);
+
+void evas_software_ddraw_output_buffer_paste(DD_Output_Buffer *ddob,
+                                             void             *ddraw_data,
+                                             int               ddraw_width,
+                                             int               ddraw_height,
+                                             int               ddraw_pitch,
+                                             int               ddraw_depth,
+                                             int               x,
+                                             int               y);
+
+DATA8 *evas_software_ddraw_output_buffer_data(DD_Output_Buffer *ddob,
+                                              int              
*bytes_per_line_ret);
+
+int evas_software_ddraw_output_buffer_depth(DD_Output_Buffer *ddob);
+
+/* evas_ddraw_main.cpp */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int evas_software_ddraw_init (HWND    window,
+                              int     depth,
+                              Outbuf *buf);
+
+void evas_software_ddraw_shutdown(Outbuf *buf);
+
+int evas_software_ddraw_masks_get(Outbuf *buf);
+
+void *evas_software_ddraw_lock(Outbuf *buf,
+                               int    *ddraw_width,
+                               int    *ddraw_height,
+                               int    *ddraw_pitch,
+                               int    *ddraw_depth);
+
+void evas_software_ddraw_unlock_and_flip(Outbuf *buf);
+
+void evas_software_ddraw_surface_resize(Outbuf *buf);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __EVAS_ENGINE_H__ */



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to