Oxygen Basic
Programming => Example Code => Topic started by: Peter on February 22, 2016, 04:27:05 AM
-
Hello,
include "gdip.inc"
window 640,480,1
setframes 60
hdc = GetBufferDC()
% Unitpixel = 2
% WrapModeTile = 0
% WrapModeTileFlipX = 1
% WrapModeTileFlipy = 2
% WrapModeTileFlipXY = 3
% WrapModeClamp = 4
% FillModeAlternate = 0
% MatrixOrderPrepend = 0
% MatrixOrderAppend = 1
Extern Lib "gdiplus.dll"
! GdipRotateTextureTransform
! GdipResetTextureTransform
! GdipLoadImageFromFile
! GdipCreateTexture
! GdipScaleTextureTransform
! GdipTranslateTextureTransform
! GdipFillRectangleI
! GdipDisposeImage
! GdipDeleteBrush
End Extern
single angle
sys image, texBrush
wchar pm = "png/pm.png"
GdipLoadImageFromFile pm, &image
GdipCreateTexture image, WrapModeTile, &texBrush
while Key(27)=0
cls 0, 0, 250
GdipScaleTextureTransform texBrush, 1.5, 2.0, MatrixOrderPrepend
GdipRotateTextureTransform texBrush, angle, MatrixOrderAppend
GdipFillRectangleI hdc, texBrush, 0, 0, 640, 480
GdipResetTextureTransform texBrush
angle +=1
if angle >=360 then angle =-angle
sync()
wend
GdipDisposeImage image
GdipDeleteBrush texBrush
winEnd
.
-
DrawString: a bit text.
include "gdip.inc"
window 640,480,1
hdc = GetBufferDC()
%UnitPixel = 2
%UnitPoint = 3
Type RectF
single x
single y
single w
single h
End Type
Extern Lib "gdiplus.dll"
! GdipCreateFontFamilyFromName
! GdipCreateSolidFill
! GdipDrawString
! GdipCreateFont
! GdipDeleteFont
! GdipDeleteBrush
! GdipDeleteFontFamily
End Extern
wstring font
Sub SetFontEx(wstring fontname)
font = fontname
end sub
Sub DrawString(single x, y, size, wstring txt)
RECTF fRect = {x, y, ScrW, ScrH}
sys pFont, pFontFamily, pBrush
GdipCreateFontFamilyFromName font, NULL, &pFontFamily
GdipCreateFont pFontFamily, size, FontStyleRegular, UnitPoint, &pFont
GdipCreateSolidFill 0xFFFFFFFF, &pBrush
GdipDrawString hdc, txt, Len(txt), pFont, fRect, NULL, pBrush
GdipDeleteFont pFont
GdipDeleteBrush pBrush
GdipDeleteFontFamily pFontFamily
End Sub
SetFontEx "david"
DrawString 100,100,24,"Hello GdiPlus World"
SetFontEx "georgia"
DrawString 100,124,24,"Hello GdiPlus World"
SetFontEx "gisha"
DrawString 100,158,24,"Hello GdiPlus World"
SetFontEx "impact"
DrawString 100,186,24,"Hello GdiPlus World"
setfontEx "wingdings"
DrawString 100,300,24,"OOOOOOOOOOOO"
for i=0 to 640 step 40
DrawString i,0x0,40,"w"
DrawString i,430,40,"w"
next
waitkey
winEnd
-
Hi Peter,
Thanks for all the code posts, I review them often. We now have more room on the new server so attaching screen shots would enhance the work your presenting. More people will try something they see the final results. Count on people being lazy for the most part.
-
Hello,
GdiPlus Mystery.
include "gdip.inc"
window 1024,768,1
setframes 100
sys x,y
single i, a
while Key(27)=0
cls 0,0,0
for i=0 to 360 step .5
x = sin(i+a)*50 - cos(i-a)*i
y = cos(i+a)*50 + sin(i-a)*i
color 255,mod(i,128)+127,mod(i,64)+127,mod(i,32)+127
FillCircle x+xMouse()-50,y+yMouse()-50, sin(i)*10
next
a +=.03
if a >=360 then a=-a
Sync()
wend
winEnd
.
-
Hello,
Gdiplus CreatePath
include "gdip.inc"
Window 640,480,1
SetFrames 60
hdc = GetBufferDC()
%UnitPixel = 2
%FillModeAlternate = 0
Extern Lib "gdiplus.dll"
! GdipCreatePath
! GdipDrawPath
! GdipAddPathEllipseI
! GdipCreatePen1
! GdipDeletePen
! GdipDeletePath
End Extern
sys iPen, iEllipsePath
GdipCreatePath FillModeAlternate, &iEllipsePath
GdipAddPathEllipseI iEllipsePath, 100, 50, 200, 100
GdipAddPathEllipseI iEllipsePath, 150, 100, 200, 150
GdipAddPathEllipseI iEllipsePath, 200, 150, 200, 200
GdipAddPathEllipseI iEllipsePath, 300, 250, 100, 180
GdipAddPathEllipseI iEllipsePath, 350, 350, 100, 140
GdipCreatePen1 0xFFFFAAFF, 3.0, UnitPixel, &iPen
GdipDrawPath hdc, iPen, iEllipsePath
GdipDeletePath iEllipsePath
GdipDeletePen iPen
WaitKey()
WinEnd