HardwareShader now requires full paths for model textures

Fri Dec 17, 2021 3:44 pm

HardwareShader in past versions didn't require a full path to assign a shader to a model texture, as long as it was in the textures namespace just the 8-character name was allowed. However, now a full path is required, even if that's not the case for level textures.

Test file:
HWShaderTest.zip


Use "summon rainbowring" on the console to spawn the test actor. The expected result is that the texture scrolls, and such is the case both in GZDoom 1.8.6 and Zandronum 3.1, but not latest stable GZDoom 4.7.1.
You do not have the required permissions to view the files attached to this post.

Re: HardwareShader now requires full paths for model texture

Fri Dec 17, 2021 4:24 pm

If you specify the skin via full name, you need to specify the hardware shader via full name.

The short name version and long name version are logically different textures, and need separate entries here.

Re: HardwareShader now requires full paths for model texture

Fri Dec 17, 2021 5:01 pm

Oh, so you can just do both... that's surprisingly simple. Thank you, it works correctly on both ports now.

Re: HardwareShader now requires full paths for model texture

Sat Dec 18, 2021 11:32 pm

I'm sorry to butt in, but I'm trying to understand it, in case I one day try to do shaders myself. What is wrong and needs to be changed? As far as I can tell, everything in the attached example is specified via full name, no?

Re: HardwareShader now requires full paths for model texture

Sun Dec 19, 2021 1:27 am

If you have a file "textures/mytex.png" in your mod, you can refer to it by two names: "MYTEX" and "textures/mytex.png".
While both of these refer to the same physical texture, they are logically not identical, both are separate entries in the texture table that can be given different properties. What you assign to one of them does not apply to the other.

Re: HardwareShader now requires full paths for model texture

Sun Dec 19, 2021 2:27 am

Ah, I missed that GLDEFS was referencing a short name. Thanks!