[cairo] problem with BitBlt
Michael Gurnett
gurnett at glocalnet.net
Sun Aug 31 03:11:33 PDT 2008
Why would you want to paint the background red with and 100% opaque (no transparancy). What you explain later on is the problem I have. The background colour would not be unexpected if the correct procedure as used. It is just a question of the correct approach.
----- Original Message -----
From: Mukul Sharma
To: Michael Gurnett
Cc: cairo at cairographics.org
Sent: Sunday, August 31, 2008 11:23 AM
Subject: Re: [cairo] problem with BitBlt
Ohk.
Use cairo_set_source_rgba(1,0,0,1);
and then use cairo_paint();
I think, this would work. On a sidenote, having a transparent background can give you unexpected background color. I had tried doing the same thing, but eventually settled on having a known background color as compared to having a transparent background. For example, when I had a transparent background, I obtained a black background. Thus, I painted it all in white and then performed my drawings.
I cannot support your guess that BitBlt does not support Alpha values. Because, BitBlt is simply a method to transfer a value of colour. The value of color is calculated at Cairo's End and rendered at the Display end. Thus, if Alpha values are not supported somewhere, it would be your display and AFAK it cannot be BitBlt part or Cairo part.
Regards
Mukul
On Sun, Aug 31, 2008 at 2:10 AM, Michael Gurnett <gurnett at glocalnet.net> wrote:
Tried with cairo_paint_with_alpha, but that didn't seem to work.
----- Original Message -----
From: Michael Gurnett
To: cairo at cairographics.org
Sent: Sunday, August 31, 2008 2:27 AM
Subject: [cairo] problem with BitBlt
I have the following bit of code
bckgrnd = new Graphics::TBitmap;
bckgrnd->Width = ClientWidth;
bckgrnd->Height = ClientHeight;
HDC hdc;
hdc=bckgrnd->Canvas->Handle;
cairo_pattern_t *pat;
cairo_surface_t *surface;
surface = cairo_win32_surface_create (hdc);
background = cairo_create (surface);
....
The idea is the to draw on the background surface and BitBlt it on my paint routine. However, with the code above it appears that the initial drawing space is filled white (guessing rgba are all 1). Is there a way to get the initial drawing region to be transparant.
Thanks
Michael
--------------------------------------------------------------------------
_______________________________________________
cairo mailing list
cairo at cairographics.org
http://lists.cairographics.org/mailman/listinfo/cairo
_______________________________________________
cairo mailing list
cairo at cairographics.org
http://lists.cairographics.org/mailman/listinfo/cairo
--
Thanks and Regards,
Mukul Sharma
Centre for High Performance Embedded Systems
Nanyang Technological University, Singapore
"A person who runs from responsibilities, runs from life."
"It is easy to hate and it is difficult to love. This is how the whole scheme of things works. All good things are difficult to achieve; and bad things are very easy to get."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cairographics.org/archives/cairo/attachments/20080831/ceb788b2/attachment.htm
More information about the cairo
mailing list