[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/kwintv3/qtvision/plugins/misc/telex
From: Malte Starostik <malte () kde ! org>
Date: 2003-08-22 7:53:45
[Download RAW message or body]
CVS commit by malte:
Transparency fixes. Still not fully correct
M +32 -13 telex.cpp 1.12
--- kdenonbeta/kwintv3/qtvision/plugins/misc/telex/telex.cpp #1.11:1.12
@@ -357,4 +357,5 @@ namespace Telex
setMouseTracking( true );
resize( parent->size() );
+ setAutoMask( true );
}
@@ -376,5 +377,5 @@ namespace Telex
{
m_page = page;
- if ( m_transparent ) updateMask();
+ updateMask();
update();
}
@@ -418,6 +419,4 @@ namespace Telex
if ( !headerOnly )
{
- if ( m_transparent )
- {
image.setAlphaBuffer( true );
Q_UINT32* p =
@@ -425,6 +424,28 @@ namespace Telex
Q_UINT32* end = reinterpret_cast< Q_UINT32* >(
image.scanLine( image.height() - 1 ) );
+ int x = 0, y = 10;
+ vbi_opacity opacity;
for ( ; p < end; ++p )
+ {
+ opacity = vbi_opacity(
+ data.text[ y / 10 * data.columns + x / 12 ].opacity );
+ switch ( opacity )
+ {
+ case VBI_TRANSPARENT_SPACE:
+ *p = 0;
+ break;
+ case VBI_OPAQUE:
+ if ( !m_transparent ) break;
+ case VBI_TRANSPARENT_FULL:
+ case VBI_SEMI_TRANSPARENT:
if ( *p == qRgba( 0, 0, 0, 0xff ) ) *p = 0;
+ break;
+ default: break;
+ }
+ if ( ++x >= image.width() )
+ {
+ x = 0;
+ ++y;
+ }
}
@@ -520,7 +541,5 @@ namespace Telex
{
m_transparent = transparent;
- setAutoMask( m_transparent );
- if ( m_transparent ) updateMask();
- else clearMask();
+ updateMask();
setPage( m_page );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic