[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Blit operation failed on MSWindows
From: |
Marc Brünink |
Subject: |
Re: Blit operation failed on MSWindows |
Date: |
Tue, 28 Jun 2005 21:33:01 +0200 |
From: Marc Brünink <mbruen@smartsoft.de>
Date: Do Jun 23, 2005 10:36:28 Europe/Berlin
To: Richard Frith-Macdonald <richard@brainstorm.co.uk>
Subject: Re: Blit operation failed on MSWindows
On Donnerstag, Jun 23, 2005, at 06:50 Europe/Berlin, Richard
Frith-Macdonald wrote:
On 2005-06-23 01:59:10 +0100 Fred Kiefer <fredkiefer@gmx.de> wrote:
Marc Brünink wrote:
On Dienstag, Jun 21, 2005, at 21:29 Europe/Berlin, Marc Brünink
wrote:
on my Windows 2000 machine I'm getting
"Blit operation failed 87"
while an application is started up.
87 = ERROR_INVALID_PARAMETER
so I logged some of the parameters:
x:8, y:8 rectFrom.right:48 rectFrom.left:0 rectFrom.top:0 h:48
I guess these parameters are okay. But the AlphaBlend(..) Funktion
return FALSE. So what's going wrong?
Actually this occurs while loading the tab images.
It all comes down to
#define USE_ALPHABLEND
Simply comment this line out (in WIN32GState.m) and the tab images
are
shown.
Actually this line was commented out in version 1.18 of
WIN32GState.m,
but changed in version 1.19
Was it intent?
This change surely was intentional, as Richard only did switch alpha
blending on, when he got it working.
Yes ... but not necessarily correct everywhere ... just in the code
I tested ... mostly I was running Gorm as a test application.
Also, I was testing on Windows-XP ...
When I was trawling the net for info on windows transparency, I came
across stuff saying that older (but quite recent) versions of
windows didn't support it, so I suppose that it's possible that
Windows 2000 doesn't ... in which case I guess we need to work out
autoconf stuff to determine the windows version and enable/disable
it accordingly.
If I trust
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/
bitmaps_6ig4.asp
AlphaBlend should work since Windows 98. Further I've a Windows 2000
SP4 machine on which AlphaBlend seems to work. At least the tab
images are shown. But I also have a Windows 2000 SP4 machine on which
the AlphaBlend function returns the error described above. Perhaps
it's a hardware issue???
Marc
Until this issue is clarified I suggest a fallback to BitBlt:
success = AlphaBlend(hDC,
x, y, (rectFrom.right - rectFrom.left), h,
sourceDC,
rectFrom.left, rectFrom.top,
(rectFrom.right - rectFrom.left), h,
blendFunc);
if(success)
break;
regards
Marc