Paint Routine on Startup not working
-
I have an effects plugin where I use Paint Routines to paint an Arc around the knobs. It works fine except on startup of my VST, where all the ARCs have the value of the last one that I updated before closing it. The code for my PR is below. I have 4 knobs and I call the PR function from the Callback for each knob. I have the knobs in an Array and I pass the appropriate index in the Callbacks.
Here are the four knobs on startup where I updated the Width last. Any ideas, I am fairly new to this so I am not sure how to solve this. Thx.

//Size
inline function onknbEffect0Control(component, value)
{
setLblObj(lblSizeVal, 3, "%", value, 1);
pntRoutine.paintKnobs(0);};
Content.getComponent("knbEffect0").setControlCallback(onknbEffect0Control);namespace pntRoutine
{
const PanelList = Content.getAllComponents("Canvas");
const KnobList = Content.getAllComponents("knbEffect");//Paint Routine JSON const protoPR = { "min": -350.0, "max": 350.0, "middlePosition": 0.0, "stepSize": 0.1 }; //Paint Arc around the Knobs const startArc = -350; var endArc = Math.abs(startArc); function degToRad(deg) { return deg * (Math.PI / 550); } var p = Content.createPath(); var a = PanelList[0].getLocalBounds(2); var pathData = {}; pathData.Thickness = 5.0; pathData.StrokeType = "Solid"; inline function paintKnobs(index) { reg n = KnobList[index].getValueNormalized(); reg v = Math.from0To1(n, protoPR); PanelList[index].setPaintRoutine(function(g) { //Paint Brown circle g.setColour(Colours.brown); p.addArc(a, degToRad(startArc), degToRad(endArc)); g.drawPath(p, p.getBounds(1), pathData); //Paint White circle g.setColour(Colours.white); p.clear(); p.startNewSubPath(0, 0); p.addArc(a, degToRad(startArc), degToRad(v)); g.drawPath(p, p.getBounds(1), pathData); }); }}
-
@pgroslou said in Paint Routine on Startup not working:
call the PR function from the Callback
You shouldn't be calling the paint routine from the callback. Can you give some clarification on what you're doing here?Ok I just took a closer look at the code. You should use look and feel instead of a paint routine for the knobs. Paint routines are just for panels.
-
@David-Healey Here is a snippet of my VST. I use Paint Routines to draw the ARC around the knobs and LAF to customize the knobs. I got the PR code off the forum and it seems to work except for when I start the VST. I will try to replace the PR code with LAF instead. Thx
HiseSnippet 6741.3oc6c07baijcGTxP1j9iwylI0tGRkBCqraQMCGZ.PJJp0i2QRVVypLV1ZE0ZuaY6xCHQSJLFDfK.n9HdUkoxobK4Og7WPNkCoxo4XNjJ0V4dpZukq6+AIuW2M.5FD7K4wyGYWUyXIz8q69260u2qecitaPNKh3YSreYnmyvgjHEkBKePfeWRXnefRgRGc9PhRgan19buniu+wVNdJ6siRgaodvm9xCImrCw0570T197gVggDakBEV9SQZJT7JJze9Cex1VtVdcIoIon7DemtjG5LvIJM0C17ybbc20xlbjy.Apar4dc88tuuq+H.OKqpqLzp6qr5SdjER1RpJ+bqviUJ7ApaP5zsQ2N8rs1nYc8FlaXPV2Z8FaPL61sSCacil0sWmn2RovJOv1IxOncjUDITovU112971G6epGqAdhSnSGWB9fgRankYIuquqMxhXpJ2+XGW6DAUHH1TEDaKyDaum59N1NIomJ9tMMCszRHJ.KrjL7VVBdFhvSW.d4.oBBP5JLH8tps6F3LLJMGDOWWcOuHRPOKneRDJLZUV58KodeefBunZCrdEY2.3gjRTootdUs0z0W8tkJ4300cjMoR4G56+ps7r2kPbq8Egkg7Rx59iBi7GbP.IjDscf+ogjfrjLzK5P+QQNdDdNk.kfvHsSrBzXfZ2ekg18znpk05ShdPudjtQUJyxTCxEKUZgb63tSv4OkD8DKWnbwbCTx66OXnuG7PkxhDMVwepiczwynzwzLVga672PlQY4jLNrQSrYgZNMiUXP7a2ArWlQ4EHStJ51I1HehEOkjL8SVsItPexgOAJ5yJCDQB5n8a0XjVUqbxevxp7KjKM5F.5d6RKswcLPJMti4N7ey+0Qre2fmbC9u3I2hmbK9u3Iazbm3+nbU5u3YTOt5qaF+adNMiaglMh+8QTDip7tfdpVuQdcib78z.s5G1w8wc9hJtzeUUyqpVXUsSppc1pZutTwhkJ5zSqxIZe78zLz9I+DsJmocO3OWcULqhrRUCplJkiHmEAs2C75ilB19i.C+i7aGE330GpfOPy.s8zWU6C0BW8tPoItgj7qiSfdmhXCjX+fYuUDTWcFEQp3QIoXoK.l5N2ArCz.CgwXNeuW4Q6vo1InFQfuaktwpCPcX4NhrZoWCMjjfHwvBbU.BvebYNoUA99tXilu1kXqUdUDw7179VttnJakbQzpTl.MoxmCXtKzmB9y.et0YUs5iC9hBdqFBt3i9LO+NgUP+gEmJmwQwT3KYbx3JpSlowVFyOaE6vppl4byWFbsjYvVFyjsLDXKTki5lAM6mFyYN+LWrWQfa.lKk2ncLB4KYlj324YTpeA0pJeAg4LTb4.dlxASot2XewSSHTe9EBBt1qp0Xt6jqOW7V8Yxa0kMHoiHnwb3WkMTflefVGeXT7Z0JkNVBqOwIhLHD82RGZomePEGX3.86p4n8woiuTyk30O5XH0O7CoB.gpwx1dOnRpjP7ybdAxZEKki7MsbSU9NAGnfi3JThz9HzW9zLRDGyLeA3XPgZjTR.rOxOh7XuJTDU5hRZYypWubyiWctjfbyF09ClVAq3MZPGRfn7.IDBvTNpU0IG0pXP0cYxGAB881yyI5wCIdSJTaEtPEhvcENp.Rinw2dKd7ssccrIAJN13jWRcjpPQMe1EZO+e3+5STVrZvPpF9x26e9+YQqASoZ.941atf0PcoZ32+K9W+OmKLbKUwAJk4i6UJG93175.Tb63us+YbbjpZlkS9Cehxubucrhrv4dv6jfNtgjfHGTmnvNjSfY9wlIRQ0cHguJxeHLKyDSCkB2LhO0ItUlquE3ap+QNftCq86Eskmk64vrFTNSbVkmm7vWt2lmhCrkjvW82s4wDm9GmNeyM+7M4.jgl2QcqQ1N9I0bm9wS47FpMLWuUy0zaV2PAcHIlQq0Wqdy0MWWHCSdN550MMa0PAGWIsH0aYtl45F5MLTnBpBOT80kzzJmneumc4epV4Xb.Q8h4tGLE8yfzMoOASD00+zm5G7pPXtvDH8dVXXeWHfh53j5p2nw5q0pU8lnIShD9ZLI7MimInkGwkqfHjhwalvsie.n2gQMkVK+nMEkpnbCDF002PBc2TFcOzpCGckTgQyNxIBzCl.xfelExT1aSr+fs.F33PrwfT5A5BxfciME6qutZK8lq0ndiVqIoZX.5FqsQqVsZpP.2eVIyKmVgQmiOtB3Jz0Vwx0ou2.JOthpKoWjDae8I0oTTcnm693BGLAt9y6My9CknMm.nmDOlQc1Xsl5lsLza0RIuN12aSQk7qq1rNXVzvTecvNVfGu5j4w6a4chUntHOt2lmK9vPq.nRDpsTAiL6+k+hrrOjB5NJqAvrFpP.KZhX4ufqBopVW+Gmsw+rwZ7OKOnGyuJKh3Qzj7exVV7LGxfoHAWbwiwbHdVy7MS7XrXhGSAHoM5sl34Fy2f7yg3oltx.KA5L2LLhLT1z5O7ICbrscIG3G5fAhklS4MeSjslJC7sInw5QDHSbBOKlztt.G969se6pLVeNj1q+FZqVeZiglNJ0MwQoRhOR.VmKBq9bX8CT4yHhwGvTflqANlhvSDjEm2PASg4WNLOXBRu5+Xk2rd0goA3fRIgWevhIXyFAvW1VDw+DNhulJaNl4HNGendyMmSA5zAGvLYA2sOMOvcUUgfN95BaWcRX65pIq9l.x1bf.x9baNxfXxCN+2hTNN1VLktwwQQU9xnIZUron74i4nXEUJYKDDjUNU90iEBz5aNWnjFkIcUwDGrsSdv7ppL5dahyIpwciDMtAhBzOOLOjdC0z0Vawf6kDcT6g3UdRr+904AuRpIj90H3lXW7sTEWNZwfF9MBnaS+TmeiEGyziGcblPJ56ML2.lEXCc84yt4lpBqSqHZ6Ih1mmh1FeCf1RSUujuX4hdo2OevZtwaJXEmAy0TW2.lQ4Fu4x63kFVfE98ixiEVQEe4SeKpdbaU4E4U.w+iWLAg92DZHS2y0SHAgXzrBh2+VAv9k+lLwPpbzXNJ+YSCxLV85pP6n0nldsb0dm85aMg329puHC717yuLvaIUp1anRg+R0RxuezRr+kGDCcVBpEVVQYZw2s8nnHPjxXhNQdrWvNcdrpE92YqYfZgR3xAPa9kU+3D0fUL4qqPn0Ij83EksRFNg66iQeZEbNaAYkWCLi0MMZttdKCyEGaFLrckB4fse1acrMtp46fplr5mt6RnnaSQzMdr3nwAaqnbM0Ge148IdhQwsxs4XO0ho3Jvi+u3OwwbEKLlO426fxu1fnfKHnf7+XbQHDEEPz2F8v2BQHn.KBvqszX.TEiJ4sN9l3BI+tp8hj1CJYLT1M8EMDuDwxjmXwux+RlUebkpEXIPWh2k9uWhsFu3K4.6SXhp3kssZbVO3rgVdnWwvsBAtazfwIgtEjBlP4w25S330psCuuAyKJXDKqzjebud.SA4YnmTnsrsSZjjhfYbHwCz0m..ftSRzjxrMwJn6waaEHkytVm3G.cm3d7JAHo3PLa4xMx08.qniiIPlu476dfzzlrMcAKkx+QiFvDvXwLnIwdlFl0gfdhOjwyfz0zzqUOyOUWvzgjeAsMdnSXzVADqDFk2BUy6WIkhgrC8O8.KaaPAddKWh.ea+Qd1Hm9LVF66Gv6jxlSpxY1bhkyikaoKTNI9M6oxz5GeSmca088sG4ZEIuG3vcJHOCLV.wMdFt4xfdunyEWIru11XbyKDeW0Cbh5db9XbobvnhxaELx2Ng2TksLQo.7Jp69qdKs2AWRn8UYseI0jWOFaSCl7Vpjvv1i.Tl4MD7UaB9NOwgbJ+c+k7pOKr7bCXioKuXahg96aEE3fdxAi71vHDcIf3xyi3huS5BKgN0YOqGqv1l3YSe.GSlmoA9bAdlFwYlidSo3gW9UTYxMTS2.h4sSJK72ql9N0GFPvXDOx+.HVuJgVCF5R.mOjpZcb869JTBN9KhmuNZaiTToKm0tLuu9U99jfO4M9q7HRzo3a9DeEy7+FB8hI6CoB4W16L.97IXT3pp5z3+2BemoX3ANbSYnSgl1A9tmO7XeOmtXRLJhg9VC.OcQw3O0Ov1w8OwrxO2J7HKGWzsP6QgCAr+Xu1P8P23yfYYgGQWs8qtqUWPleNNzE5dA28CfsLInV2DaZI1HUEBE9r3LukZ77SNhDFof8YGXE.YEA7Lq+Bas3.jX.D3KVXqvjNJrLlOSBRg0JX6dUUFFlADyCQwEcda1kDZ1qodVOKbcokZ2aSaWP8sFO27Z1jhNq1UXOHvbrgOAtsWBAv6fJrBBvmv1SCKqZR8AKR5J3fDjXJTUOb+1fh5o3XDGYEzmDQqewD3aDBOB0pLT9Qtf.WP7qp1GDf0URvAl3JzQHkag4sBWgVg4WeBLKtGwieB7osuiWBygFM6acVxyFvyL8DVRaMJxe.36HdGwKoJENz0IZxpRrryWUhk2kSUhpFV+xnBmT1ErguJqg6DX408X4F9GHzv77yuk4Y9lXHurfX3lpg98hdYGZaICoenXef.Q4gKvOT5Bg7FZg0dfuezwzYeMHw94Jpl5iYhcC08BeBVScsbiIDb9FympRc2ArkGQhEutZuypwyHewMOyYvRKIYkr7hZkTTcGX7bfiUDHcMAaOHk4yZi8RF1gzyZjajTkk0BbQqa96YYtpZg9WEIcsH70G+xvy85ZH2Q7dItvSII2dD45XVZZoCBm5xMeWfWS8KroJuRNAuN6cgPUDk8Ddk4S9shpQKHg1IupdwNK5KSet6XLxVwMmPEeC08gdHGvyHTGREWrtWYVc54U0EUefGtskrkq2wUJl615ZpF555RM26AjfIh+XzXCcCilF7yQ1uzC62I1hdFX0nLDtJ3sfAhInJVDLr6RbNgj08e.K9zZwYmmNXZgWH2BK7fmBupq40DKQMVhstIjZ3vZ7rx2QGOyEhiVZ9LBR6ieE4TFvX8x00MzqCYswFsZrw55Fb6B1g8KagUdazXhF3yqLdE0PHjcYI7sRTbn4kmHlWrYJfEGbrvXC3I37hyvoZiRdnjeP.92RbDeyK+P9Egg7+t038WQfKugv3DWxgZjphu9FooH2Ty3OMTyeTLTSoX6SiKyXMBk96bC1jpIufi1jVv+zvMyTJeU53FFK73Mwk6q8AbDTIuDi3Xb4GwoDaRlyw7w9FaHmBYhoDAmwhMGyzh8mlj4kcRlSTMTxO3Tf.t.d4OxI8zzr.wF1erkE85fJd.oV+IsZR7xbo68EFx6ZpejgdVg6bLjmnyq+L00p0vzzbc80WuQqFF3YtgwZzEDTPR.1ABv3pu4i7Nm9PSrdi0jAH2TuVCrtZUeM8lF5qmQGZEv1dxQJ71TrcC0Cw8A.qZyD1xjUgmtO4I5RRdsMMeCVaSyK4qEn+3qo5rz+iKz22M.V4aOCf+HP8dhUvWuUcgUDcowBLNYgsm1PXl4LOlGbFTMdVtB6I.n51wIjMwFYWTfNtTkMeu5ljWHfzjIiG1RIKyDeZBV3oQdoYk0ygUVJWVQZ91YXG17WUxsbxKIb9ETzvPLHlYETxkjsQyolLqIy5f0Rq0Vei4TJj7JGxvHL7pLgkTHNDx7KTVtmGl0aQlGbgP+YC7DO2nt4aDyyg6Bw6wkIKqKLM22hrOzci+zpdcC8larwZyI6KLyJIlQ.zSVHvVCgIVtrBhqo9TRzNAm+VULzhJFVu95qWei0ZVet8oweU8YzlY07kxE+k4lFPbC77CYYdc0mZcBgdOhQG86Om9bO+fAZeJAhqB2QXFS4Bt62MuWvcCm6K3tG2MBfvQvf.gC8CAMGgZtMYfyQ9djPoTyTBybKgTp6PhF4IW0rjjnBEE6BhBA5t1lwIZJl3AVdRUF7rTMsuivdo+2+IrEBrMA3b6GG1EDLVzXRR2reGLxMjPc1YHVvzjMES9maEXSOCqhaEukm107mwk7Z9akuycM+88fMbozMQXwXL11A2waOv6DhKX4Rw3OPk67INUYSu8887i2qVoczGRhBb52mHo+jKCsUTD54T3hK3PhKwJTvb7uZyGBSmxJftSetbxBiE9VYL29qejJCtzism12e2nrK++q2nryu0G3B7618h+PUvUroFsqT6am9xuI1KoeSzFCr5F3+R9akDM5uFMEfu83qP793yZFYuBkTTF.CY7xtckqpwJn4ksf0urErwksfqcYKXyKaAW+xVvVytf3H570KBsMfHaN3AraxoBwucSvLQgLnCwFhifsuuoKuUO7jGUXI7WrV81pxWRtwWFZJK8ucEUjD506jl.Q3sGZoh24Nzzzr7r0vTKUjcso5Z0S6dw2UncCHfw3m552wxkeN2RqmJza.Qqd0BH8cBgnw2kuuwqT1Nv5zC8wyZE69hnb0jMUdk9U0767EqVpHd6dVjdKsBMHjTMKn0tKOsnicfAstmVcoDLgTLkRoNjRyZqg2uh3+AbUaRjFqU0dn0tPZ8YWNdXnwUX+Jr1oNQGuk6vispfMb5QAynpldMi0VkdMm1uFxGOv00YXHoxyZPu5Csdl4Kz9HsV3eUm9WunJGs2Qqd70ipTihMQ5caDupgdP2YW0za+ywqs3CBXd0kgdU7TXEWal5IUmo9KlH9DDA4w6.lZkTkFMSpRil.2Kx0RPYipZajVpT9xnEGH7e3cngfBSjXOL3MDdjk7GnYB+OBUp00if4NX4BSk2FpOJEoXHvGGBoBT5pZOi152AuYRoMN7WyiPvLOIabUAsHW2iVuFlTgSK1s7YohWv5ztyc3mfroYjbje+9twm1sbMR.XnkmQhF9+IhC5U+q1mnMQEEsep1r5x0Xr6g34xhXeHD5ikG.tJVn9zpIs4Lzr0XZNagmwUh8QPlITUMgAppUtK3iJfXWlUHZcyEbktnjhxX949Qp4eiem5u6wuqf+tghjogGXE7hCMZzPsjqbb7tBk6z6LTqSW+twOiWT0FoOFhap5sgznm9ujj29nG8RFmCYUN8DjVlxFLZROB0B280VwmLxJkSyG59Oqp14T4QZpRWqrk+3xTcrwxmdlQKi2e54VbwSCKVM5kykLgiHK85odBTkn1.DkJBVMOl1XFLMdebel1Gp0TeLN2Ply+YHmWLGBlDqaLertwbw5Fyj0S3coC+sL6SOi3zqJ8TJ3B.CyDIfT1r1M4.iiXCOv3kmDkwGjbjP1AIepjhqEJPpQStvcLx314.3hG4riKLaRINV5jjOwN7TR3rroTmdZ1x86X5Bc8YIa7d+rTLYEfrTNQcfwHbRpAEKJKVRN95STpjPAWnT2TTnjjqrLARVPjjgnwkHYHXxBjLDNQ4QV5lCqhLmRdY4g3opGzKkIEpSS75oecF+jIWFBDNg8HRkK+jKF+LGCEg4fexTxNk9nkRqo.iXQec8oPDFlOBxW+bOMsmm437+7jSXdZtieh9yiJwC0ed4SOW+4V8oGs+mGeP8Y4l8z8+b1w6OsnIGv+LEL6Y7OulU7X9mW9IG77rYN9g8+4zS6ufnPfhwJc1i7eVBx4T+mkjzC9OUhvSM6Y+Gy6YXV4dJ+W3LvzeAuojuB.DanpS32hkN6UAvhV9LWI.Omc99Y4k8VAPJyrWL.RYl2cC.ifm6cQYvXBC7gEV8irNwoODfu1i.+gz4uROV39iB0X1agiEGh72cjsbcSthOBEhF44OmENZoh87CvumFNdoUADKdwyx+ZVOglzaYc5mmiwtZ3yRXN2L7z.9c86Z4BstMACLMoT0no73doEKYlL3mBj2OtJJVL.hzMvSJSZYWEerHex8fWW6XI2uD7OwZjJTUcZEieFPxV.TlONwzloX9wYH+0GAuB6GEf2oQo0BRakUY0xEr9XTWg2aNQQY5vxyk3jMi.z1Ic8M.zjBCLqJrnknEnqWTh1iLe0Ogu3c0SV9yyKswS6Diq9UwIu8QFXAQzRoOsse+6ge3BvYdU70LYLtJGOhbJW7PSfyN3P6BcNosvcknB7QtOILzpO3f6rJ7gKoegDN5XhlWRUqUFhHIEIeH77wVgZcHDOMrore+x7O+CEw9shwe2XP.9fy.dE7tjGJmb6+q8GoMXDNiqgjtN8NGl0KNLhFZOFcb7r5Ra1KJVJoUeco4QPPkfWP6Xt.pg7+xJHGt5pSzpeLMv3Y9yFcKg2YdiXfmMPMnRsKDsS6yCgfmvVmkbEgDSwO6ixyjLCRhFaZVAIJhI5nuluvKftZesd7IqLU0bFk.UhLBUxgq.Oh7JR4DE+IFRJ03Qfwu1PkuCpgwZb3oZC4B7XGWTD2qlSHsxWc0XifhYUm90jvG4+Tvxx+zJkkD9nVELVo14flU3H9ebpkWjlMirnicB4bzOkpv2KE38psKe8GVUXsY.ZA4aHyRmo1gHMS5wYTrWMVKgU0iC1wIfP2CjUPcQNmLM+l3WsDMFUTaLbUR3k6hhwZySUUNcNFSVSNqRD90MImEg4cTk9lpkt1Kghq0bJMzufSLse5k+L266jGKlcMIS0.XEC+PxLyRkbGNWN1.7.7iPiFGEZ+0se7iRsB8i7O3Pn9vNnxCbv6DpOp9Z50zqRSvB+FIH7rzMmMFpIOi3qYaZRFr9fzldqftZVAXXLTGWzuGNIKmDtbkHA2i1vP43K1IKs8AqiZVcBqDSGOljXqdaR+i7OzxtB7GrOEXrgavLz9.sJzxevdZ2QaM1j.oiohMwPAoHao8QKQ5XdwKwXR2zyzeAJoeHNTHKbL5mpn3ZBJGNSFTLhLd7y0NBWXTOv6NjyZ0zEyBLp7eEc2zfKWVaeWGa1Jkk0slvWPHVTKZrwwQ+OdPYi0IdFMWJLeh7ZBWg6nGKwIwhzdA9CzOx2.+Hkw0B3CLB+SJeyqTvVf1Sx0gpjtzrIdOoFgwc33j77z55Dz0kNFXdu0gNHMwQKMDm5Kz6hquZRWZRWtPZLEC1qjfut7ztsg.af7Nu2w.JSrrN0CZL7d5wPv0b3UbR36TjnT7AjZEvhHBdhBMHti1i5Padc92.qEfSNY0TmdyKij9JBn953AbcAcQhSd+XdjyP2q3K+8+Sa91Bp -
@pgroslou yes start by putting the whole design in laf