Code:
make debug=1 run (in directory: /mnt/MEDIA/HOME/gitlab/dragonbuilder/src/extra/viewfx)
include ../makefile
include ../../makefile
include ../../../makefile
cd ../../../ && make run --no-print-directory
make -f gnu.mak run check=extra
cc -ggdb -D _DEBUG -Wall -Wextra -fPIC -o src/extra/viewfx/vfxapp.c.o -c src/extra/viewfx/vfxapp.c
cc -ggdb -Wl,-rpath,. -fPIC -shared -o bin/libd-extra.so src/extra/viewfx/shader.c.o src/extra/viewfx/vfxapi.c.o src/extra/viewfx/vfxapp.c.o src/extra/viewfx/vfxbuf.c.o src/extra/viewfx/vfxcfg.c.o src/extra/viewfx/vfxdef.c.o src/extra/viewfx/vfxvar.c.o src/extra/viewfx/vfxwin.c.o -l d-basic
cc -fPIC -shared -ggdb -Wl,-rpath,. -o bin/libd-vfxglfw.so src/extra/viewfx/glfw/glfw_api.c.o src/extra/viewfx/glfw/glfw_eio.c.o -l glfw -l GLEW
cc -fPIC -shared -o bin/libd-vfxgl.so src/extra/viewfx/gl/opengl_api.c.o src/extra/viewfx/gl/opengl_app.c.o src/extra/viewfx/gl/opengl_def.c.o src/extra/viewfx/gl/opengl_err.c.o src/extra/viewfx/gl/opengl_shader.c.o src/extra/viewfx/gl/opengl_vfxbuf.c.o src/extra/viewfx/gl/opengl_vfxcfg.c.o src/extra/viewfx/gl/opengl_vfxvar.c.o -l d-basic -l d-extra -l GLEW
cc -ggdb -Wl,-rpath,. -o bin/d-check_extra.elf test/extra/create.c.o test/extra/debug.c.o test/extra/events.c.o test/extra/launch.c.o test/extra/lib.c.o test/extra/main.c.o -l d-basic -l d-extra src/extra/viewfx/shader.c.o src/extra/viewfx/vfxapi.c.o src/extra/viewfx/vfxapp.c.o src/extra/viewfx/vfxbuf.c.o src/extra/viewfx/vfxcfg.c.o src/extra/viewfx/vfxdef.c.o src/extra/viewfx/vfxvar.c.o src/extra/viewfx/vfxwin.c.o -l d-basic src/basic/branch.c.o src/basic/buffer.c.o src/basic/defect.c.o src/basic/encode.c.o src/basic/moment.c.o src/basic/pipefd.c.o src/basic/shared.c.o src/basic/thread.c.o src/basic/vector.c.o src/basic/string/achs.c.o src/basic/string/c16s.c.o src/basic/string/c32s.c.o src/basic/string/tchs.c.o src/basic/string/uchs.c.o src/basic/string/wchs.c.o -l pthread -l dl
cd bin && ./d-check_extra.elf
Attempting to open 'libd-vfxglfw.so' & 'libd-vfxgl.so'
Creating program '[vfxapp.flat]'
Bound shader 'shaders/null.glsl' as point shader
Bound shader 'shaders/flat.glsl' as basic shader
Bound shader 'shaders/frag.glsl' as color shader
Linking program...
src/extra/viewfx/vfxapp.c:624: Error 0xFFFFFFFF (-1) EUNKNOWN
src/extra/viewfx/vfxapp.c:127: error: vertex shader lacks `main'
src/extra/viewfx/vfxapp.c:137: In shader 'point', path = 'shaders/null.glsl'
```
#version 440
#extension GL_ARB_shading_language_include : require
#line 1 "shaders/null.glsl"
#line 0 "shaders/same.glsl"
#ifndef SHARED_H
#define SHARED_H
#if defined(GL_core_profile) || \
defined(GL_compatibility_profile) || defined(GL_es_profile)
#define IS_OPENGL
/* Mappings to CGLM union names */
#define uvec2s uvec2
#define uvec3s uvec3
#define uvec4s uvec4
#define ivec2s ivec2
#define ivec3s ivec3
#define ivec4s ivec4
#define vec2s vec2
#define vec3s vec3
#define vec4s vec4
#define dvec2s dvec2
#define dvec3s dvec3
#define dvec4s dvec4
#else
#define uniform typedef struct
#endif
uniform UINTS { uint uunused; } uints;
uniform DINTS
{
int FlatLine;
int VtxCount;
ivec2s WinPoint;
ivec3s WinSpace;
} dints;
uniform FNUMS
{
float funused;
vec3s WinScale;
vec3s RegScale;
vec3s RegPoint;
/* Light emitted */
vec3s RegEmits;
/* Light taken before ray bounces */
vec3s RegTakes;
} fnums;
uniform DNUMS { double dunused; } dnums;
#ifndef IS_OPENGL
#undef uniform
#endif
#endif
```
test/extra/launch.c:22: Error 0xFFFFFFFF (-1) EUNKNOWN
test/extra/main.c:108: Error 0xFFFFFFFF (-1) EUNKNOWN
Compilation finished successfully.
Next the specific function:
Code:
EXTRA_EXP dint makeShaderCode
( SRC *src, achs _path, VFXAPP *vfxapp, SHADER *shader, uint i )
{
ACHS *Path = NULL, *Code = vfxapp->code, *Temp = vfxapp->temp;
dint err = readWholeTextFile( src, _path, Temp );
ach *code, *path, *text;
achs segs[] = { shader->code->array, "/", NULL, NULL };
uint t, j = 1, k, line = 0, count, stop;
if ( err )
{
PRINT_ERRNO( stdout, err );
return err;
}
code = Temp->array;
stop = Temp->count - 1;
k = (stop + !stop) - 1;
j = achsnlchn( code, Temp->count );
j += (j < k);
err = cramLineCommand( src, Temp, i ? 0 : j, _path, !i );
if ( err )
{
PRINT_ERRNO( stdout, err );
return err;
}
code = Temp->array;
stop = Temp->count;
k = (stop + !stop) - 1;
code = cramBeforeAchn( src, Code, i, code, k );
if ( !code )
{
err = ENOMEM;
PRINT_ERRNO( stdout, err );
return err;
}
stop += i;
count = Code->count;
err = makeAchs( src, &Path );
if ( err )
{
PRINT_ERRNO( stdout, err );
return err;
}
for ( i = 0; i < stop; i += j, ++line )
{
text = code + i;
k = Code->count - i;
j = achsnlchn( text, k );
j += (j < k);
if ( *text != '#' )
continue;
for ( k = 1; k < j; ++k )
{
text = code + i + k;
if ( !isspace(*text) )
break;
}
if ( achsfindn( text, j - k, "include", 7 ) == text )
{
for ( ; k < j; ++k )
{
text = code + i + k;
if ( *text == '"' )
break;
}
if ( *text != '"' )
{
err = EILSEQ;
PrintErrno( stdout, path, line, err );
break;
}
*text = ' ';
segs[2] = text + 1;
for ( ++k; k < j; ++k )
{
text = code + i + k;
if ( *text == '"' )
break;
}
if ( *text != '"' )
{
err = EILSEQ;
PrintErrno( stdout, _path, line, err );
break;
}
*text = 0;
termAchs( Path );
err = initAchsn( src, Path, "", 0 );
if ( err )
{
PRINT_ERRNO( stdout, err );
break;
}
path = Path->array;
for ( t = 0; segs[t]; ++t )
{
path = growAchsArray( src, Path, segs[t] );
if ( !path )
{
err = ENOMEM;
PRINT_ERRNO( stdout, err );
break;
}
}
if ( err )
break;
memset( code + i, ' ', j - 1 );
memmove( code + i, code + i + j, (count - i) - j );
count -= j;
stop -= j;
err = makeShaderCode( src, path, vfxapp, shader, i );
if ( err )
{
PRINT_ERRNO( stdout, err );
printf( "Failed to make shader code from path '%s'\n", path );
break;
}
code = Code->array;
k = Code->count - count;
count = Code->count;
termAchs( Temp );
initAchsn( src, Temp, "", 0 );
err = cramLineCommand( src, Temp, 0, path, line );
if ( err )
{
PRINT_ERRNO( stdout, err );
break;
}
t = Temp->count - 1;
code = cramBeforeAchn( src, Code, i + k, Temp->array, t );
if ( !code )
{
err = ENOMEM;
PRINT_ERRNO( stdout, err );
break;
}
stop += t + k;
j = t + k + (!t && !k);
}
}
voidAchs( src, &Path );
return err;
}
Somehow the code after an #include is being chopped off, need help getting it to not be so, currently lacking ideas on how identify the source problem, hoping maybe someone here will either spot the cause or at least potential causes that I've yet to spot.