Hackpact Day 10: Bug fixes and multicanvas
Today some minor bug fixes, for instance, I extended the app to support more than one canvas at the same time. The idea is to overlap them as layers but right now I just use them as a way to extend the canvas on the sides which should be the same as having a bigger canvas, but I want to use separated canvas so maybe in the future I have some kind of infinite canvas where it can create new ones just but painting outside of the current canvas.
But it didnt worked, I only could paint in the first one, in the other ones it didnt paint. I was convinced that it was a problem with the FBOs in the RenderTexture, so I keep watching all the OpenGL code without much luck. Then today I realize that the problem was the brush, after painting in the first canvas the internal var storing the last time it painted was updated, so when it has to paint in the other canvas it block it according to the flow property in the brush.
So now I have several canvas that I can overlap, I don’t have an interface to move them around, to sort them in Z or to choose the active one, and I’m lazy about it, I don’t want to code GUI stuff, so I will see how I can sort it out.
I also discovered an easier way to create a FileDialog, check the code:
def ChooseFileDialog(caption="Choose a file",folder="C:/",default="file.png",wildcard="*.png"): result="" app = wx.PySimpleApp() dlg = wx.FileDialog(None, "", "c:/", "", "*.*", wx.FD_SAVE) if dlg.ShowModal() == wx.ID_OK: result = dlg.GetPath() app.Destroy() return result
Better than the last one, indeed I don’t think I need the Destroy line, but I’m always scared of leaving an app running in background because I don’t have any way to check it.
I also added the option to resize the application window, more according to the kind of application I’m creating.
Today there is no code to upload, I don’t think it will be interesting to release this version without a propper control. I’m also planning to create new brushes and textures.
You can see 4 canvas arranged horizontally. I render a grid to make it easy to see it.