[Pkg-e-commits] [SCM] Enlightenment DR17 advanced canvas library branch, upstream-vcs, updated. 069f3cc6c93f253bffbc90289fe21d868f745bb6
doursse
doursse at alioth.debian.org
Sat Jun 7 18:24:17 UTC 2008
The following commit has been merged in the upstream-vcs branch:
commit b32bb3107f0de7d88c1cececdddcb8fd48d7fe76
Author: doursse <doursse>
Date: Fri May 23 18:26:41 2008 +0000
* put key management outside the engine. It's not its place in it
* make Ipaq H38xx and H39xx work with the framebuffer
diff --git a/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h b/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h
index 238d68b..4e1f311 100644
--- a/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h
+++ b/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h
@@ -22,7 +22,6 @@ struct _Evas_Engine_Info_Software_16_WinCE
struct {
int (*suspend) (int backend);
int (*resume) (int backend);
- void *(*default_keys) (int backend);
} func;
};
diff --git a/src/modules/engines/software_16_wince/evas_engine.c b/src/modules/engines/software_16_wince/evas_engine.c
index 37b93cd..53dd95f 100644
--- a/src/modules/engines/software_16_wince/evas_engine.c
+++ b/src/modules/engines/software_16_wince/evas_engine.c
@@ -83,18 +83,6 @@ _resume(int backend)
}
}
-static void *
-_default_keys(int backend)
-{
- switch (backend)
- {
- case 2: /* gapi */
- return evas_software_wince_gapi_default_keys();
- default: /* other engines do not need it */
- return NULL;
- }
-}
-
/* engine api this module provides */
static void *
eng_info(Evas *e)
@@ -106,7 +94,6 @@ eng_info(Evas *e)
info->magic.magic = rand();
info->func.suspend = _suspend;
info->func.resume = _resume;
- info->func.default_keys = _default_keys;
return info;
e = NULL;
}
diff --git a/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c b/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c
index b569180..eab4c50 100644
--- a/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c
+++ b/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c
@@ -2,6 +2,21 @@
#include "evas_engine.h"
+#define GETGXINFO 0x00020000
+
+typedef struct GXDeviceInfo
+{
+ long Version; //00 (should filled with 100 before calling ExtEscape)
+ void *pvFrameBuffer; //04
+ unsigned long cbStride; //08
+ unsigned long cxWidth; //0c
+ unsigned long cyHeight; //10
+ unsigned long cBPP; //14
+ unsigned long ffFormat; //18
+ char Unused[0x84 - 7 * 4];
+} GXDeviceInfo;
+
+
#define GETRAWFRAMEBUFFER 0x00020001
typedef struct _RawFrameBufferInfo
@@ -25,10 +40,10 @@ struct Evas_Engine_WinCE_FB_Priv
void *buffer;
};
-
void *
evas_software_wince_fb_init (HWND window)
{
+ WCHAR oemstr[100];
RawFrameBufferInfo rfbi;
HDC dc;
Evas_Engine_WinCE_FB_Priv *priv;
@@ -44,6 +59,36 @@ evas_software_wince_fb_init (HWND window)
return NULL;
}
+ 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')))
+ {
+ GXDeviceInfo gxInfo = { 0 };
+ int result;
+
+ gxInfo.Version = 100;
+ result = ExtEscape(dc, GETGXINFO, 0, NULL, sizeof(gxInfo),
+ (char *) &gxInfo);
+ if (result <= 0)
+ {
+ ReleaseDC(window, dc);
+ free(priv);
+ return NULL;
+ }
+
+ priv->width = gxInfo.cyHeight;
+ priv->height = gxInfo.cxWidth;
+ priv->buffer = gxInfo.pvFrameBuffer;
+
+ ReleaseDC(window, dc);
+
+ return priv;
+ }
+
if (!ExtEscape(dc, GETRAWFRAMEBUFFER, 0, 0, sizeof(rfbi), (char *) &rfbi)||
(rfbi.wBPP != 16) ||
(rfbi.wFormat != 1))
diff --git a/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c b/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c
index 2d7081e..f9e5b05 100644
--- a/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c
+++ b/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c
@@ -3,7 +3,6 @@
typedef int (*evas_engine_wince_close_display)();
-typedef int (*evas_engine_wince_close_input)();
typedef struct Evas_Engine_WinCE_GAPI_Priv Evas_Engine_WinCE_GAPI_Priv;
@@ -43,41 +42,16 @@ typedef struct
DWORD ffFormat;
} _GAPI_Display_Properties;
-typedef struct
-{
- short vkUp; // key for up
- POINT ptUp; // x,y position of key/button. Not on screen but in screen coordinates.
- short vkDown;
- POINT ptDown;
- short vkLeft;
- POINT ptLeft;
- short vkRight;
- POINT ptRight;
- short vkA;
- POINT ptA;
- short vkB;
- POINT ptB;
- short vkC;
- POINT ptC;
- short vkStart;
- POINT ptStart;
-} _GAPI_Key_List;
-
typedef int (*gapi_display_open)(HWND hWnd, DWORD dwFlags);
typedef int (*gapi_display_close)();
typedef _GAPI_Display_Properties (*gapi_display_properties_get)(void);
typedef void* (*gapi_draw_begin)(void);
typedef int (*gapi_draw_end)(void);
-typedef int (*gapi_input_open)(void);
-typedef int (*gapi_input_close)(void);
-typedef _GAPI_Key_List (*gapi_default_keys_get)(int iOptions);
typedef int (*gapi_suspend)(void);
typedef int (*gapi_resume)(void);
-gapi_default_keys_get default_keys_get = NULL;
gapi_suspend suspend = NULL;
gapi_resume resume = NULL;
-_GAPI_Key_List *default_keys = NULL;
int
evas_software_wince_gapi_suspend(void)
@@ -97,18 +71,11 @@ evas_software_wince_gapi_resume(void)
return 0;
}
-void *
-evas_software_wince_gapi_default_keys(void)
-{
- return default_keys;
-}
-
struct Evas_Engine_WinCE_GAPI_Priv
{
HMODULE lib;
gapi_display_close close_display;
- gapi_input_close close_input;
gapi_draw_begin draw_begin;
gapi_draw_end draw_end;
void *buffer;
@@ -122,7 +89,6 @@ evas_software_wince_gapi_init (HWND window)
{
WCHAR oemstr[100];
_GAPI_Display_Properties prop;
- _GAPI_Key_List key_list;
HMODULE gapi_lib;
Evas_Engine_WinCE_GAPI_Priv *priv;
@@ -131,8 +97,6 @@ evas_software_wince_gapi_init (HWND window)
gapi_display_properties_get display_properties_get = NULL;
gapi_draw_begin draw_begin = NULL;
gapi_draw_end draw_end = NULL;
- gapi_input_open input_open = NULL;
- gapi_input_close input_close = NULL;
priv = (Evas_Engine_WinCE_GAPI_Priv *)malloc(sizeof(Evas_Engine_WinCE_GAPI_Priv));
if (!priv)
@@ -153,9 +117,6 @@ evas_software_wince_gapi_init (HWND window)
LINK(display_properties_get, display_properties_get, L"?GXGetDisplayProperties@@YA?AUGXDisplayProperties@@XZ");
LINK(draw_begin, draw_begin, L"?GXBeginDraw@@YAPAXXZ");
LINK(draw_end, draw_end, L"?GXEndDraw@@YAHXZ");
- LINK(input_open, input_open, L"?GXOpenInput@@YAHXZ" );
- LINK(input_close, input_close, L"?GXCloseInput@@YAHXZ" );
- LINK(default_keys_get, default_keys_get, L"?GXGetDefaultKeys@@YA?AUGXKeyList@@H at Z");
LINK(suspend, suspend, L"?GXSuspend@@YAHXZ" );
LINK(resume, resume, L"?GXResume@@YAHXZ" );
@@ -164,9 +125,6 @@ evas_software_wince_gapi_init (HWND window)
!display_properties_get ||
!draw_begin ||
!draw_end ||
- !input_open ||
- !input_close ||
- !default_keys_get ||
!suspend ||
!resume)
{
@@ -197,27 +155,11 @@ evas_software_wince_gapi_init (HWND window)
goto close_display;
}
- if (!input_open())
- {
- printf ("error : GXOpenInput\n");
- goto close_display;
- }
-
priv->lib = gapi_lib;
priv->close_display = display_close;
- priv->close_input = input_close;
priv->draw_begin = draw_begin;
priv->draw_end = draw_end;
- key_list = default_keys_get(GX_NORMALKEYS);
- default_keys = (_GAPI_Key_List *)malloc(sizeof(_GAPI_Key_List));
- if (!default_keys)
- {
- printf ("error : GXOpenInput\n");
- goto close_input;
- }
- memcpy(default_keys, &key_list, sizeof(_GAPI_Key_List));
-
/* GAPI on Ipaq H38** and H39** is completely buggy */
/* They are detected as portrait device (width = 240 and height = 320) */
/* but the framebuffer is managed like a landscape device : */
@@ -272,14 +214,10 @@ v | |
priv->width = prop.cyHeight;
priv->height = prop.cxWidth;
priv->stride = prop.cbxPitch;
- default_keys->vkA = 193;
- default_keys->vkB = 194;
- default_keys->vkC = 195;
- default_keys->vkStart = 196;
dc = GetDC (window);
if (!dc)
- goto free_keys;
+ goto close_display;
gxInfo.Version = 100;
result = ExtEscape(dc, GETGXINFO, 0, NULL, sizeof(gxInfo),
@@ -287,7 +225,7 @@ v | |
if (result <= 0)
{
ReleaseDC(window, dc);
- goto free_keys;
+ goto close_display;
}
priv->buffer = gxInfo.pvFrameBuffer;
@@ -303,10 +241,6 @@ v | |
return priv;
- free_keys:
- free(default_keys);
- close_input:
- input_close();
close_display:
display_close();
free_lib:
@@ -322,7 +256,6 @@ evas_software_wince_gapi_shutdown(void *priv)
Evas_Engine_WinCE_GAPI_Priv *p;
p = (Evas_Engine_WinCE_GAPI_Priv *)priv;
- p->close_input();
p->close_display();
suspend = NULL;
resume = NULL;
--
Enlightenment DR17 advanced canvas library
More information about the Pkg-e-commits
mailing list