Forum
    • Categories
    • Register
    • Login

    Images in panels - load and unload

    Scheduled Pinned Locked Moved General Questions
    18 Posts 2 Posters 72 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LindonL
      Lindon @Lindon
      last edited by

      @Lindon ..and if I reload the image in the paint callback it works -- but that seems very inefficient..

      HISE Development for hire.
      www.channelrobot.com

      David HealeyD 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @Lindon
        last edited by

        @Lindon Load all the images into the panel within on init. Then in the paint routine draw the image you want to use - you could use the panel's value to select the image if you're not using it for anything else.

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        LindonL 1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @David Healey
          last edited by Lindon

          @David-Healey thats more or less what Im doing, but the paint routine isnt drawing what I want -despite me asking politely... its drawing the first image loaded into the panel....

          HISE Development for hire.
          www.channelrobot.com

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @Lindon
            last edited by

            @Lindon Can you share the paint routine or a minimal snippet?

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

            LindonL 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @David Healey
              last edited by Lindon

              @David-Healey sadly its a bit of a monster...

              Here's a paint routine:

              function paintLibraries(g)
              {
              	panelValue = this.getValue();
              	//Console.print(trace(panelValue));
              	Console.print("trying to draw:" + panelValue.LibImage);
              	
              	templibImg = imageDirFile.getChildFile(panelValue.LibImage);
              	this.loadImage(templibImg.toString(templibImg.FullPath), panelValue.LibImage);
              	g.drawImage(panelValue.LibImage, [0,0,this.get("width"),this.get("height")], 0, 0);
              	//draw edgeing in black
              	g.setColour(Colours.black);
              	g.drawRect([0,0,this.get("width"),this.get("height")],1);
              	//draw the icon for opened or closed...
              	g.setColour(Colours.white);
              	if (panelValue.DisplayState == 0)
              	{
              		//not opened
              		g.fillPath(paths.icons.PointRight, [this.get("width")-20,this.get("height")-30,15,25]);
              	}else{
              		//opened..
              		g.rotate(radianFromDegree*90,[this.getWidth()-10,this.getHeight()-15]);
              		g.fillPath(paths.icons.PointRight, [this.get("width")-15,this.get("height")-20,12,22]);
              	};
              };
              

              As you can see each panel has a json object in its value and it uses this to decide which image to load....

              Thinking about doing this a completely different way.. and fixing panels to thier owning JSON, not loading the json into the panel...

              HISE Development for hire.
              www.channelrobot.com

              David HealeyD 1 Reply Last reply Reply Quote 0
              • David HealeyD
                David Healey @Lindon
                last edited by

                @Lindon I wouldn't load the images in the paint routine, I'm not sure if there's an efficiency hit but it doesn't feel like the right approach.

                Let's say we have 3 images, img1.png, img2.png, img3.png

                In on init we can load them into the panel.

                myPanel.loadImage("{PROJECT_FOLDER}img1.png", "img1");
                myPanel.loadImage("{PROJECT_FOLDER}img2.png", "img2");
                myPanel.loadImage("{PROJECT_FOLDER}img3.png", "img3");
                

                Then in the paint routine we can select the image to draw using its name (which you can get from your json object)

                var image = "img1"; //Get from your json object
                g.drawImage(image, area, 0, 0);
                

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - Public HISE tutorials
                My Patreon - HISE tutorials

                LindonL 1 Reply Last reply Reply Quote 0
                • LindonL
                  Lindon @David Healey
                  last edited by Lindon

                  @David-Healey except this doesnt work!!!!

                  It always draws the first image you loaded......

                  HISE Development for hire.
                  www.channelrobot.com

                  David HealeyD 1 Reply Last reply Reply Quote 0
                  • David HealeyD
                    David Healey @Lindon
                    last edited by

                    @Lindon

                    Working here. Try this. ImageLoadTest.zip

                    Peek 2026-04-08 15-14.gif

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    LindonL 1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @David Healey
                      last edited by

                      @David-Healey now even this isnt working:

                      for(i = 0; i <NUM_individualLibPanels; i++)
                      {
                      	individualLibraryPanels[i] = Content.addPanel("iLibPanel" + (i+1), 0, 0);
                      	Content.setPropertiesFromJSON("iLibPanel" + (i+1),  {
                          "type": "ScriptPanel",
                          "x": 1.0,
                          "y": 0.0,
                          "parentComponent": "LibraryDisplayPanel",
                          "width": 275.0,
                          "height": LIB_PANEL_HEIGHT,
                          "borderSize": 1.0,
                          "borderRadius": 0.0
                        });
                        individualLibraryPanels[i].showControl(false);
                        individualLibraryPanels[i].setPaintRoutine(function(g)
                        {
                        	Console.print("painting painting");
                        });
                      };
                      

                      HISE Development for hire.
                      www.channelrobot.com

                      David HealeyD 1 Reply Last reply Reply Quote 0
                      • David HealeyD
                        David Healey @Lindon
                        last edited by

                        @Lindon do paint routines trigger for hidden panels?

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        LindonL 1 Reply Last reply Reply Quote 0
                        • LindonL
                          Lindon @David Healey
                          last edited by

                          @David-Healey yes

                          HISE Development for hire.
                          www.channelrobot.com

                          LindonL 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @Lindon
                            last edited by

                            @Lindon well actually no paint routines trigger at all and no panel will show up even if I've commented out all teh paint routines...

                            HISE Development for hire.
                            www.channelrobot.com

                            LindonL 1 Reply Last reply Reply Quote 0
                            • LindonL
                              Lindon @Lindon
                              last edited by

                              @Lindon literally nothing is working now...I've broken it somehow...

                              HISE Development for hire.
                              www.channelrobot.com

                              David HealeyD 1 Reply Last reply Reply Quote 0
                              • David HealeyD
                                David Healey @Lindon
                                last edited by

                                @Lindon said in Images in panels - load and unload:

                                @Lindon literally nothing is working now...I've broken it somehow...

                                You'll figure it out 🙏🏻

                                Free HISE Bootcamp Full Course for beginners.
                                YouTube Channel - Public HISE tutorials
                                My Patreon - HISE tutorials

                                LindonL 1 Reply Last reply Reply Quote 0
                                • LindonL
                                  Lindon @David Healey
                                  last edited by

                                  @David-Healey look at this!

                                  b784e504-f37a-45ac-9472-0f0164027a3f-image.png

                                  everything says its there - but its not displaying...

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @Lindon
                                    last edited by Lindon

                                    @Lindon ohh

                                    "height": undefined <---whata dumb ass....

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    1 Reply Last reply Reply Quote 1
                                    • First post
                                      Last post

                                    18

                                    Online

                                    2.2k

                                    Users

                                    13.6k

                                    Topics

                                    118.0k

                                    Posts