Hello everybody!
Could you tell me any method of converting a png thumbnail into a proxy for matchbox shaders?

Not sure if this helps, but I used to use this from “shader_builder_api_guide_2016.pdf”:

To use a .png file as the proxy:

1 Create an 8-bit, 126 pixels wide by 92 pixels high .png,
2 Place the .png file in the same folder as the .glsl and .xml files of the same name.

Thanks john-geehreng,
It doesn’t create .p file.

No, it doesn’t. But I’m wondering if it’s necessary if you can use a .png at these specs as a thumbnail.

It has been a long time since I’ve done this, but I’ll see if I can remember how to do it…or maybe @KuleshovEffect knows.

The ,p’s are a bit fussy, but I have a little app I wrote in PHP to convert PNGs into them, if you want it.

Also, if you save a setup, it makes a .p which you can just steal if it has a thumbnail you like :smiley:

1 Like

png work only in Baselight and Scratch.
I think in Flame need proxy.

1 Like

Thanks ManChicken)
I would be appreciated If that posible!

I added it to my shaders github - you can download directly from this link by clicking the little download button near the top right.


then run in a shell/terminal with php makeproxy-new.php youricon.png - I’ve been doing 188x138 images for all mine, looks less rubbish when the thumbnail size in Flame is cranked up :slight_smile:

Thanks a lot ManChicken!

When I’m encrypt glsl to mx thumbnail doesn’t exist(

Do you mean when making a .mx with shader_builder -p ?

I compile all my shaders (like all of matchbook just for use on my machine) and it should pick up the .png and put it in the package, you don’t need to make your own .p in that case.

Just make sure the png is named correctly and in the same directory you’re building the shader from, like


as opposed to just calling it fooshader.png

If it’s a multipass shader, I believe you name it using the .01 pass, like fooshader.01.glsl.png

1 Like

Didn’t work for me

Can you send me the PNG?

I tried your PNG and it works fine for me when using shader_builder and letting it make the proxy. I just used one of my own shaders to test with:

[bobm@flame]# shader_builder -m -p id_Guidance.glsl
compiling shader file id_Guidance.glsl ... [OK]
all shaders compiled ... [OK]
using xml file id_Guidance.xml ... [OK]
using thumbnail (id_Guidance.glsl.png) ... [OK]
packaging ... [ OK ]

Note the using thumbnail (id_Guidance.glsl.png) line.
The resulting .mx has the right thumbnail in the file dialog when I go to load the shader in Flame.

The reason makeproxy probably failed is that the width of the image has to be divisible by 4. It should say this in the terminal when you ran it, but I have a little bug (that I’ll fix) that writes out a 0-byte .p file anyway, and if you happen to have both a .png and a .p in the path when you compile the shader, it will find the .p first and use it – even though it’s invalid, and it won’t even complain about it. So that’s probably why that didn’t work. Delete the bogus .p and shader_builder should find the PNG instead and work.

I’m not sure why they recommend the 126x92 resolution, because as I said the .p width has to be divisible by 4 for whatever reason, and it will silently stretch your image to make it conform if you compare the thumbnail in the file browser to your original image. This is why I use 188x138.

I’ve used this to create my .p files:

It’s linked from the logik-matchbook “Share Your Shaders” page.


1 Like

FWIW, the latest .p files that were generated for Matchbox shaders provided with Flame have a 252 x 184 resolution.

1 Like

Thanks, KuleshovEffect.
Both versions, the ManChiken’s and Julik’s scripts work perfect and I managed to create a p image. But after many tries I think that the problem is in Shader builder on Mac OS, because it shows in terminal that it’s been signed but it’s not working in Flame. I’ll try on linux, hopefully it’ll work.

Hi Fred,
thanks for informing.
I’ll try with the mentioned resolution, maybe it’ll change something.
As you can see in the pic, there’s a thumbnail on the left. And on the right there’s a packed version, where the thumbnail is missing, shader builder doesn’t show it, although it showed that the image’s been signed.
Screen Shot 2024-03-14 at 1.13.17 PM