{
int tox = 800, toy = 800;
int count;
BITMAP bitmap;
unsigned int start_tick, end_tick;
/* Load the bitmap from the file. */
if (LoadBitmap (hdc, &bitmap, "res/icon.bmp"))
return;
bitmap.bmType = BMP_TYPE_ALPHACHANNEL;
/* Fill a box with the bitmap with alpha channel. */
start_tick = GetTickCount ();
count = 1000;
while (count--) {
tox = rand() % 800;
toy = rand() % 800;
/* Set a random alpha channel. */
bitmap.bmAlpha = rand() % 256;
/* Fill the box. */
FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
}
end_tick = GetTickCount ();
TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Bitmap", 1000);
bitmap.bmType = BMP_TYPE_ALPHACHANNEL | BMP_TYPE_COLORKEY;
/* Set the color key (the transparent pixel) of the bitmap. */
bitmap.bmColorKey = GetPixelInBitmap (&bitmap, 0, 0);
/* Fill a box with the bitmap with alpha channel and color key. */
start_tick = GetTickCount ();
count = 1000;
while (count--) {
tox = rand() % 800;
toy = rand() % 800;
/* Set a random alpha channel. */
bitmap.bmAlpha = rand() % 256;
/* Fill the box. */
FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
}
end_tick = GetTickCount ();
TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Transparent Bitmap", 1000);
UnloadBitmap (&bitmap);
}
{
/* Create a memory DC which hanve alpha per-pixel. */
mem_dc = CreateMemDC (400, 100, 16, MEMDC_FLAG_HWSURFACE | MEMDC_FLAG_SRCALPHA,
0x0000F000, 0x00000F00, 0x000000F0, 0x0000000F);
/* Set brush color and fill a box. */
SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0xFF));
FillBox (mem_dc, 0, 0, 200, 50);
/* Set another brush color and fill a box */
SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0x40));
FillBox (mem_dc, 200, 0, 200, 50);
/* Set another brush color and fill a box */
SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0x80));
FillBox (mem_dc, 0, 50, 200, 50);
/* Set another brush color and fill a box */
SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0xC0));
FillBox (mem_dc, 200, 50, 200, 50);
SetBkMode (mem_dc, BM_TRANSPARENT);
/* Set a text color and output the text */
SetTextColor (mem_dc, RGBA2Pixel (mem_dc, 0x00, 0x00, 0x00, 0x80));
TabbedTextOut (mem_dc, 0, 0, "Memory DC with alpha.\n"
"The source DC have alpha per-pixel.");
/* Blitting to a client DC. */
start_tick = GetTickCount ();
count = 100;
while (count--) {
BitBlt (mem_dc, 0, 0, 400, 100, hdc, rand () % 800, rand () % 800);
}
end_tick = GetTickCount ();
TellSpeed (hwnd, start_tick, end_tick, "Alpha Blit", 100);
/* delete the momory DC. */
DeleteMemDC (mem_dc);
}
|
||||||||||||||||||||||||||||||||||||||||
|
Performs a bit-block transfer from a device context into another device context. This function performs a bit-block transfer of the color data cooresponding to a rectangle of pixels from the specified source device context hsdc into a destination device context hddc. (sx,sy,sw,sh) specifies the rectangle in the source DC, and (dx,dy) specifies the position of the rectangle in the destination DC. Note that the size of the two rectangles are identical. Note that all coordinates should be in the device space.
|
|
||||||||||||||||||||||||||||
|
Fills a box with a BITMAP object. This function fills a box with a BITMAP object pointed to by bmp. (x,y) is the upper-left corner of the box, and w, h are the width and the height of the box respectively. This function will scale the bitmap when necessary; that is, when the width or the height of the box is not equal to the with or the height of the BITMAP object.
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Fills a box with a part of a bitmap oject. This function fills a box with a part of a bitmap object pointed to by bmp. (x,y) is the upper-left corner of the box, and w, h are the width and the height of the box respectively. (xo, yo) is the start position of the part box in the bitmap relative to upper-left corner of the bitmap, and bw, bh are the width and the height of the full bitmap expected. If bw or bh is less than or equal to zero, this function will use the original width and height of the bitmap, else it will scale the BITMAP object when necessary; that is, when the width or the height of the box is not equal to the with or the height of the BITMAP object.
|
|
||||||||||||||||||||||||||||
|
Gets image box on a DC and saves it into a BITMAP object. This function gets image box on the specified device context hdc, and saves the image bits into the BITMAP object pointed to by bmp. The image box begins at (x,y), and is w wide and h high. You must make sure that bmp->bits is big enough to store the image.
void GUIAPI SaveScreenBox (int x, int y, int w, int h, void* vbuf)
|
|
||||||||||||||||
|
Returns the pixel value in a BITMAP object. This function returns the pixel value at the position (x,y) in the BITMAP object bmp.
|
|
||||||||||||
|
Saves content of a main window to a file. This function saves the content of the main window hWnd to the image file filename. MiniGUI uses the extension name of the file to determine the format of the image file.
|
|
||||||||||||
|
Saves content of a rectangle in the screen to a file. This function saves the content of the rect rc to the image file filename. MiniGUI uses the extension name of the file to determine the format of the image file.
|
|
||||||||||||
|
Scales a BITMAP object into another BITMAP object by using DDA algorithm. This function scales a BITMAP object src into another BITMAO object dst by using DDA algorithm. The source rectangle and the destination rectangle both are defined in the BITMAP objects.
|
|
||||||||||||||||||||
|
Sets pixel value in a BITMAP object. This function sets the pixel value at the position (x,y) in the BITMAP object bmp.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Copies a bitmap from a source rectangle into a destination rectangle, streches the bitmap if necessary. This function copies a bitmap from a source rectangle into a destination rectangle, streching or compressing the bitmap to fit the dimension of the destination rectangle, if necessary. This function is similar with
|
1.4.2