Am 06.07.2019 um 00:21 schrieb Ryan Joseph:

On Jul 5, 2019, at 5:45 PM, Ben Grasset <operato...@gmail.com> wrote:

Like, not working in any sense at all? That's definitely not normal.

I think it’s just the push/pop isn’t working. Just to be clear should the 
follow code compile? For me I get an error.Try it yourself when you get some 
time.

{$mode objfpc}

program test;

{$push}
{$H+}
const lines = `
   #version 150

   uniform sampler2D textures[8];
   in vec2 vertexTexCoord;
   in vec4 vertexColor;
   in float vertexUVMap;
   out vec4 fragColor;

   void main()
   {
     if (vertexUVMap == 255) {
       fragColor = vertexColor;
     } else {
       fragColor = texture(textures[int(vertexUVMap)], vertexTexCoord.st);
       if (vertexColor.a < fragColor.a) {
         fragColor.a = vertexColor.a;
       }
     }
   }`;
{$pop}

begin
   writeln(lines);
end.
Ah! Check the location of the error. It's the Writeln, not the declaration of the constant. Seems like the compiler doesn't correctly handle this case. But to be fair it's really seldom that someone uses $H locally, so that's not really a tested situation...

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to