• Welcome to Powerbasic Museum 2020-B.
 

News:

Forum in repository mode. No new members allowed.

Main Menu

GDI+: GdipResetTextureTransform

Started by José Roca, June 29, 2008, 01:06:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

José Roca



The following example creates a texture brush and sets the transformation of the brush. The code then uses the transformed brush to fill a rectangle.

C++


VOID Example_ResetTransform(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a texture brush, and set its transformation.
   Image image(L"HouseAndTree.Gif");
   TextureBrush textureBrush(&image);
   textureBrush.RotateTransform(30);

   // Fill a rectangle with the transformed texture brush.
   graphics.FillRectangle(&textureBrush, 0, 0, 200, 100);

   textureBrush.ResetTransform();
   
   // Fill a rectangle with the texture brush (no transformation).
   graphics.FillRectangle(&textureBrush, 220, 0, 200, 100);
}


PowerBASIC


SUB GDIP_ResetTextureTransform (BYVAL hdc AS DWORD)

   LOCAL hStatus AS LONG
   LOCAL pGraphics AS DWORD
   LOCAL pImage AS DWORD
   LOCAL pTextureBrush AS DWORD
   LOCAL strFileName AS STRING

   hStatus = GdipCreateFromHDC(hdc, pGraphics)

   ' // Create a texture brush, and set its transformation.
   strFileName = UCODE$("HouseAndTree.gif")
   hStatus = GdipLoadImageFromFile(STRPTR(strFileName), pImage)
   hStatus = GdipCreateTexture(pImage, %WrapModeTile, pTextureBrush)
   hStatus = GdipRotateTextureTransform(pTextureBrush, 30, %MatrixOrderPrepend)         ' rotate

   ' // Fill a rectangle with the transformed texture brush.
   hStatus = GdipFillRectangleI(pGraphics, pTextureBrush, 0, 0, 200, 100)

   hStatus = GdipResetTextureTransform(pTextureBrush)

   ' // Fill a rectangle with the texture brush (no transformation).
   hStatus = GdipFillRectangleI(pGraphics, pTextureBrush, 220, 0, 200, 100)

   ' // Cleanup
   IF pImage THEN GdipDisposeImage(pImage)
   IF pTextureBrush THEN GdipDeleteBrush(pTextureBrush)
   IF pGraphics THEN GdipDeleteGraphics(pGraphics)

END SUB


The following illustration shows the output of the preceding code.