quakeforge/tools/qfcc/source/glsl-sub_vert.c
Bill Currie fb7025dbd3 [qfcc] Handle execution modes for spir-v/glsl
This means that `layout(triangles)` etc now work, though there are
issues with frag shaders missing functions (since getting function calls
working) and compute shaders silently failing.
2025-01-21 10:42:56 +09:00

54 lines
1.5 KiB
C

/*
glsl-sub_vert.c
GLSL vertex shader sublanguage
Copyright (C) 2024 Bill Currie <bill@taniwha.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "QF/alloc.h"
#include "QF/hash.h"
#include "QF/va.h"
#include "tools/qfcc/include/def.h"
#include "tools/qfcc/include/diagnostic.h"
#include "tools/qfcc/include/glsl-lang.h"
#include "tools/qfcc/include/shared.h"
#include "tools/qfcc/include/strpool.h"
#include "tools/qfcc/include/symtab.h"
#include "tools/qfcc/include/type.h"
static const char *glsl_vert_interface_default_names[glsl_num_interfaces] = {
[glsl_in] = "gl_PerVertex",
[glsl_out] = "gl_PerVertex",
[glsl_uniform] = ".default",
[glsl_buffer] = ".default",
};
glsl_sublang_t glsl_vert_sublanguage = {
.name = "vertex",
.interface_default_names = glsl_vert_interface_default_names,
.model_name = "Vertex",
};