[teklib-general] teklib: switch to directfb window mode in progress
Franciska Schulze
fschulze at neoscientists.org
Sun Sep 7 15:31:01 CEST 2008
details: http://hg.teklib.org/teklib/rev/f70a78d33a8e
changeset: 195:f70a78d33a8e
user: Franciska Schulze <fschulze at neoscientists.org>
date: Sun May 18 16:55:53 2008 +0000
description:
switch to directfb window mode in progress
diffs (truncated from 500 to 100 lines):
diff -r 91c68b6dee31 -r f70a78d33a8e src/display_dfb/display_dfb_api.c
--- a/src/display_dfb/display_dfb_api.c Thu May 15 19:08:14 2008 +0200
+++ b/src/display_dfb/display_dfb_api.c Sun May 18 16:55:53 2008 +0000
@@ -11,6 +11,8 @@ static TBOOL
static TBOOL
check_backup(VISUAL *v, TINT tvcmd, TINT x, TINT y, TINT a, TINT b)
{
+
+#if 0
if (v->backup_valid != -1)
{
switch (tvcmd)
@@ -40,11 +42,14 @@ check_backup(VISUAL *v, TINT tvcmd, TINT
}
}
return v->backup_valid;
+#endif
+ return TTRUE;
}
static TVOID
update_backup(TMOD_DFB *mod, VISUAL *v)
{
+#if 0
if (v->backup_valid == TFALSE || v->backup_valid == -1)
{
DFBRectangle rect = { v->mousex, v->mousey, mod->dfb_CursorWidth,
@@ -53,6 +58,9 @@ update_backup(TMOD_DFB *mod, VISUAL *v)
v->backup_valid = TTRUE;
v->cursor_valid = TFALSE;
}
+#endif
+ //v->winsurface->Flip(v->winsurface, NULL, 0);
+
}
/*****************************************************************************/
@@ -63,7 +71,9 @@ dfb_openvisual(TMOD_DFB *mod, struct TVR
TTAGITEM *tags = req->tvr_Op.OpenVisual.Tags;
TAPTR exec = TGetExecBase(mod);
VISUAL *v;
- DFBSurfaceDescription dsc;
+ //DFBSurfaceDescription dsc;
+ DFBWindowDescription wdsc;
+
struct FontNode *fn;
if (!TISLISTEMPTY(&mod->dfb_vlist))
@@ -92,6 +102,45 @@ dfb_openvisual(TMOD_DFB *mod, struct TVR
v->title = (TSTRPTR)
TGetTag(tags, TVisual_Title, (TTAG) "TEKlib visual");
+ wdsc.flags = (DWDESC_POSX | DWDESC_POSY | DWDESC_WIDTH | DWDESC_HEIGHT);
+ wdsc.posx = 0;
+ wdsc.posy = 0;
+ wdsc.width = v->winwidth;
+ wdsc.height = v->winheight;
+
+ if (mod->dfb_Layer->CreateWindow(mod->dfb_Layer, &wdsc, &v->window) == DFB_OK)
+ {
+ v->window->GetSurface(v->window, &v->winsurface);
+ v->window->SetOpacity(v->window, 0xFF);
+ v->window->GetID(v->window, &v->winid);
+ v->window->AttachEventBuffer(v->window, mod->dfb_Events);
+
+ v->winsurface->SetColor(v->winsurface, 0x00, 0x00, 0xff, 0xff);
+ v->winsurface->DrawRectangle(v->winsurface, 0, 0, wdsc.width, wdsc.height);
+ v->winsurface->SetColor(v->winsurface, 0x80, 0x80, 0x80, 0xff);
+ v->winsurface->FillRectangle(v->winsurface, 1, 1, wdsc.width-2, wdsc.height-2);
+ v->winsurface->Flip(v->winsurface, NULL, 0);
+
+ /* init default font */
+ fn = mod->dfb_fm.deffont;
+ v->curfont = fn;
+ mod->dfb_fm.defref++;
+
+ if (v->winsurface->SetFont(v->winsurface, fn->font) == DFB_OK)
+ {
+ if (v->winsurface->SetFont(v->winsurface, fn->font) == DFB_OK)
+ {
+ TDBPRINTF(TDB_ERROR,("Open success\n"));
+ TAddTail(&mod->dfb_vlist, &v->node);
+
+ /* success: */
+ return;
+ }
+ }
+ }
+
+
+#if 0
dsc.flags = DSDESC_CAPS;
dsc.caps = DSCAPS_PRIMARY; /*| DSCAPS_FLIPPING; */
@@ -130,6 +179,7 @@ dfb_openvisual(TMOD_DFB *mod, struct TVR
}
}
}
+#endif
More information about the teklib-general
mailing list