git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
9797469
)
- fixes to use moving infobar non non-accel hardware.
author
Felix Domke
<tmbinc@elitedvb.net>
Wed, 31 Aug 2005 03:40:23 +0000
(
03:40
+0000)
committer
Felix Domke
<tmbinc@elitedvb.net>
Wed, 31 Aug 2005 03:40:23 +0000
(
03:40
+0000)
lib/gdi/gfbdc.cpp
patch
|
blob
|
history
lib/gdi/gpixmap.cpp
patch
|
blob
|
history
lib/gui/ewidgetanimation.cpp
patch
|
blob
|
history
lib/gui/ewidgetdesktop.cpp
patch
|
blob
|
history
lib/python/Screens/InfoBar.py
patch
|
blob
|
history
main/enigma.cpp
patch
|
blob
|
history
diff --git
a/lib/gdi/gfbdc.cpp
b/lib/gdi/gfbdc.cpp
index 08b4586a6077952059e419a793e556831c6e9037..a1f4c981adff3309b401a62ed868f6b95ff4881d 100644
(file)
--- a/
lib/gdi/gfbdc.cpp
+++ b/
lib/gdi/gfbdc.cpp
@@
-149,13
+149,20
@@
void gFBDC::exec(gOpcode *o)
case gOpcode::waitVSync:
{
static timeval l;
case gOpcode::waitVSync:
{
static timeval l;
+ static int t;
timeval now;
timeval now;
- gettimeofday(&now, 0);
- int diff = (now.tv_sec - l.tv_sec) * 1000 + (now.tv_usec - l.tv_usec) / 1000;
- eDebug("%d ms latency (%d fps)", diff, 1000 / diff ?: 1);
+ if (t == 1000)
+ {
+ gettimeofday(&now, 0);
- l = now;
+ int diff = (now.tv_sec - l.tv_sec) * 1000 + (now.tv_usec - l.tv_usec) / 1000;
+ eDebug("%d ms latency (%d fps)", diff, t * 1000 / (diff ? diff : 1));
+ l = now;
+ t = 0;
+ }
+
+ ++t;
fb->waitVSync();
break;
fb->waitVSync();
break;
diff --git
a/lib/gdi/gpixmap.cpp
b/lib/gdi/gpixmap.cpp
index a551984f592d85814c83448a860a048e8d100ce0..dbf53838087fa3dc81b836dd6ceeecc33fb0c773 100644
(file)
--- a/
lib/gdi/gpixmap.cpp
+++ b/
lib/gdi/gpixmap.cpp
@@
-191,6
+191,7
@@
void gPixmap::blit(const gPixmap &src, ePoint pos, const gRegion &clip, int flag
if ((surface->data_phys && src.surface->data_phys) && (gAccel::getInstance()))
if (!gAccel::getInstance()->blit(surface, src.surface, area.topLeft(), srcarea, flag))
continue;
if ((surface->data_phys && src.surface->data_phys) && (gAccel::getInstance()))
if (!gAccel::getInstance()->blit(surface, src.surface, area.topLeft(), srcarea, flag))
continue;
+ flag &= ~ blitAlphaBlend;
if ((surface->bpp == 8) && (src.surface->bpp==8))
{
if ((surface->bpp == 8) && (src.surface->bpp==8))
{
diff --git
a/lib/gui/ewidgetanimation.cpp
b/lib/gui/ewidgetanimation.cpp
index 3912d592c0791e4679ee6ea27795fb690cec3517..a31f2ed450bef29f8508d532a25757312e5062e6 100644
(file)
--- a/
lib/gui/ewidgetanimation.cpp
+++ b/
lib/gui/ewidgetanimation.cpp
@@
-19,16
+19,24
@@
void eWidgetAnimation::tick(int inc)
m_active = 0;
m_move_current_tick = m_move_length;
}
m_active = 0;
m_move_current_tick = m_move_length;
}
- int xdiff = m_move_end.x() - m_move_start.x();
- int ydiff = m_move_end.y() - m_move_start.y();
+ m_move_start = m_widget->position();
+
+ int xdiff = m_move_start.x() - m_move_end.x();
+ int ydiff = m_move_start.y() - m_move_end.y();
+
+ xdiff *= 31; xdiff /= 32;
+ ydiff *= 31; ydiff /= 32;
+
+ #if 0
xdiff *= m_move_current_tick;
xdiff /= m_move_length;
ydiff *= m_move_current_tick;
ydiff /= m_move_length;
xdiff *= m_move_current_tick;
xdiff /= m_move_length;
ydiff *= m_move_current_tick;
ydiff /= m_move_length;
+ #endif
- ePoint res(m_move_
start.x() + xdiff, m_move_start
.y() + ydiff);
+ ePoint res(m_move_
end.x() + xdiff, m_move_end
.y() + ydiff);
m_move_current_tick += inc;
m_move_current_tick += inc;
diff --git
a/lib/gui/ewidgetdesktop.cpp
b/lib/gui/ewidgetdesktop.cpp
index 1c65d5d2aa9c604aa829f4e9e772ee49854aab82..dcc2ef603b1d96dbd6555f309f56793250eddc2a 100644
(file)
--- a/
lib/gui/ewidgetdesktop.cpp
+++ b/
lib/gui/ewidgetdesktop.cpp
@@
-36,7
+36,7
@@
int eWidgetDesktop::movedWidget(eWidget *root)
if ((m_comp_mode == cmBuffered) && (root->m_comp_buffer))
{
root->m_comp_buffer->m_position = root->position();
if ((m_comp_mode == cmBuffered) && (root->m_comp_buffer))
{
root->m_comp_buffer->m_position = root->position();
-
redrawComposition(0);
+
//
redrawComposition(0);
return 0;
}
return 0;
}
@@
-96,6
+96,11
@@
void eWidgetDesktop::recalcClipRegions(eWidget *root)
invalidate(redraw);
} else
{
invalidate(redraw);
} else
{
+ if (!root->m_vis & eWidget::wVisShow)
+ {
+ removeBufferForWidget(root);
+ return;
+ }
if ((!root->m_comp_buffer) || (root->size() != root->m_comp_buffer->m_screen_size))
createBufferForWidget(root);
if ((!root->m_comp_buffer) || (root->size() != root->m_comp_buffer->m_screen_size))
createBufferForWidget(root);
@@
-203,7
+208,6
@@
void eWidgetDesktop::paintBackground(eWidgetDesktopCompBuffer *comp)
void eWidgetDesktop::paint()
{
void eWidgetDesktop::paint()
{
- eDebug("paint");
m_require_redraw = 0;
/* walk all root windows. */
m_require_redraw = 0;
/* walk all root windows. */
@@
-230,8
+234,7
@@
void eWidgetDesktop::paint()
if (m_comp_mode == cmBuffered)
{
if (m_comp_mode == cmBuffered)
{
- eDebug("redraw composition");
- redrawComposition(0);
+// redrawComposition(0);
}
}
}
}
diff --git
a/lib/python/Screens/InfoBar.py
b/lib/python/Screens/InfoBar.py
index da2509e20d885943976789618432dc6b6195ac11..ed193f389bb511ff4680dc10057e2efb78a31c35 100644
(file)
--- a/
lib/python/Screens/InfoBar.py
+++ b/
lib/python/Screens/InfoBar.py
@@
-30,6
+30,8
@@
class InfoBar(Screen):
#instantiate forever
self.servicelist = self.session.instantiateDialog(ChannelSelection)
self.volumeBar = VolumeBar()
#instantiate forever
self.servicelist = self.session.instantiateDialog(ChannelSelection)
self.volumeBar = VolumeBar()
+
+ self.state = self.STATE_HIDDEN
self["actions"] = ActionMap( [ "InfobarActions" ],
{
self["actions"] = ActionMap( [ "InfobarActions" ],
{
@@
-84,7
+86,7
@@
class InfoBar(Screen):
self.instance.hide()
def toggleShow(self):
self.instance.hide()
def toggleShow(self):
- if self.
instance.isVisible()
:
+ if self.
state == self.STATE_SHOWN
:
# self.instance.hide()
self.startHide()
else:
# self.instance.hide()
self.startHide()
else:
@@
-108,10
+110,12
@@
class InfoBar(Screen):
self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
def startShow(self):
self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
def startShow(self):
- self.instance.m_animation.startMoveAnimation(ePoint(0, 500), ePoint(0, 380), 100)
+ self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
+ self.state = self.STATE_SHOWN
def startHide(self):
def startHide(self):
- self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 500), 100)
+ self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
+ self.state = self.STATE_HIDDEN
def volMute(self):
eDVBVolumecontrol.getInstance().volumeToggleMute()
def volMute(self):
eDVBVolumecontrol.getInstance().volumeToggleMute()
diff --git
a/main/enigma.cpp
b/main/enigma.cpp
index a798b7279decd32e27e6cb3653fb6dd54c547c94..16bbcbce681aaf02959e093cc390f95512aa13ac 100644
(file)
--- a/
main/enigma.cpp
+++ b/
main/enigma.cpp
@@
-162,7
+162,7
@@
int main(int argc, char **argv)
eWidgetDesktop dsk(eSize(720, 576));
eWidgetDesktop dsk(eSize(720, 576));
-
//
dsk.setCompositionMode(eWidgetDesktop::cmBuffered);
+
dsk.setCompositionMode(eWidgetDesktop::cmBuffered);
wdsk = &dsk;
wdsk = &dsk;