Maybe you use RGB values instead of RGBA values?
Maybe the code "Until Not MouseButton(#PB_MouseButton_Left)" is missing an "ExamineMouse"?
To get the MouseButton state on a CanvasGadget use "GetGadgetAttribute(Canvas_0, #PB_Canvas_Buttons)"
I don't know if that is what you had in mind, but maybe this does help.
Code: Select all
Global Canvas_0
Procedure VectorLine(color,x,y,pw,ph,brush_width)
If StartVectorDrawing(CanvasVectorOutput(Canvas_0))
x1 = (GetGadgetAttribute(Canvas_0, #PB_Canvas_MouseX) / pw) * pw
y1 = (GetGadgetAttribute(Canvas_0, #PB_Canvas_MouseY) / ph) * ph
MovePathCursor(x1,y1)
AddPathLine(x,y)
VectorSourceColor(color)
StrokePath(brush_width)
StopVectorDrawing()
EndIf
EndProcedure
OpenWindow(0,0,0,800,600,"!")
CanvasGadget(Canvas_0,0,0,800,600)
SetActiveGadget(0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
If GetGadgetAttribute(Canvas_0, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton
VectorLine(RGBA(255,0,0,255), GetGadgetAttribute(Canvas_0, #PB_Canvas_MouseX), GetGadgetAttribute(Canvas_0, #PB_Canvas_MouseY), 32, 32, 1)
EndIf
EndSelect
ForEver