Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/evas

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


Modified Files:
        evas_wince_gapi_buffer.c 


Log Message:
Ipaq H38** and H39** are considered as landscape device because of their 
uglyness

===================================================================
RCS file: 
/cvs/e/e17/libs/evas/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_wince_gapi_buffer.c    8 May 2008 06:46:26 -0000       1.3
+++ evas_wince_gapi_buffer.c    9 May 2008 23:12:00 -0000       1.4
@@ -107,11 +107,13 @@
    gapi_draw_end      draw_end;
    int                width;
    int                height;
+   int                stride;
 };
 
 void *
 evas_software_wince_gapi_init (HWND window)
 {
+    WCHAR                       oemstr[100];
    _GAPI_Display_Properties     prop;
    _GAPI_Key_List               key_list;
    HMODULE                      gapi_lib;
@@ -199,8 +201,64 @@
    priv->close_input = input_close;
    priv->draw_begin = draw_begin;
    priv->draw_end = draw_end;
-   priv->width = prop.cxWidth;
-   priv->height = prop.cyHeight;
+
+   /* Ipaq H38** and H39** are completely buggy */
+   /* They are detected as portrait device (width = 240 and height = 320) */
+   /* but the framebuffer is managed like a landscape device : */
+   /*
+     240
+ +---------+
+ |         |
+ |         |
+ |         |
+ |         |
+ |         | 320
+ | ^^^     |
+ | |||     |
+ | |||     |
+ | |||     |
+ +---------+
+  ---->
+
+   */
+   /* So these devices are considered as landscape devices */
+   /* and width and height are switched. */
+   /* Other devices are managed normally : */
+   /*
+     240
+  +---------+
+| |--->     |
+| |--->     |
+| |--->     |
+v |         |
+  |         | 320
+  |         |
+  |         |
+  |         |
+  |         |
+  +---------+
+
+    */
+
+   SystemParametersInfo (SPI_GETOEMINFO, sizeof (oemstr), oemstr, 0);
+
+   if (((oemstr[12] == 'H') &&
+        (oemstr[13] == '3') &&
+        (oemstr[14] == '8')) ||
+       ((oemstr[12] == 'H') &&
+        (oemstr[13] == '3') &&
+        (oemstr[14] == '9')))
+     {
+        priv->width = prop.cyHeight;
+        priv->height = prop.cxWidth;
+        priv->stride = prop.cbxPitch;
+     }
+   else
+     {
+        priv->width = prop.cxWidth;
+        priv->height = prop.cyHeight;
+        priv->stride = prop.cbyPitch;
+     }
 
    return priv;
 
@@ -250,7 +308,7 @@
 
    fbob->im = (Soft16_Image *) 
evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, 
(DATA32 *)buffer, 0, EVAS_COLORSPACE_RGB565_A5P);
    if (fbob->im)
-     fbob->im->stride = width;
+     fbob->im->stride = ((Evas_Engine_WinCE_GAPI_Priv *)priv)->stride >> 1;
 
    return fbob;
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to