29 GLuint shader_program_ = 0;
31 GLuint vert_shader_ = 0;
32 GLuint geom_shader_ = 0;
33 GLuint frag_shader_ = 0;
34 GLuint compute_shader_ = 0;
36 bool compilation_failed_ =
false;
67 void uniform_float(
int location,
int comp_len,
int array_size,
const float *
data)
override;
68 void uniform_int(
int location,
int comp_len,
int array_size,
const int *
data)
override;
77 return compute_shader_ != 0;
81 char *glsl_patch_get(GLenum gl_stage);
94 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLShader");
struct GPUVertBuf GPUVertBuf
Read Guarded memory(de)allocation.
char * parse_line(char *log_line, GPULogItem &log_item) override
char * skip_severity_prefix(char *log_line, GPULogItem &log_item)
char * skip_severity_keyword(char *log_line, GPULogItem &log_item)
MEM_CXX_CLASS_ALLOC_FUNCS("GLLogParser")
std::string geometry_layout_declare(const shader::ShaderCreateInfo &info) const override
std::string vertex_interface_declare(const shader::ShaderCreateInfo &info) const override
std::string geometry_interface_declare(const shader::ShaderCreateInfo &info) const override
void fragment_shader_from_glsl(MutableSpan< const char * > sources) override
void uniform_float(int location, int comp_len, int array_size, const float *data) override
void transform_feedback_names_set(Span< const char * > name_list, eGPUShaderTFBType geom_type) override
bool transform_feedback_enable(GPUVertBuf *buf) override
GLShader(const char *name)
void compute_shader_from_glsl(MutableSpan< const char * > sources) override
std::string compute_layout_declare(const shader::ShaderCreateInfo &info) const override
int program_handle_get() const override
std::string resources_declare(const shader::ShaderCreateInfo &info) const override
void vertformat_from_shader(GPUVertFormat *format) const override
void uniform_int(int location, int comp_len, int array_size, const int *data) override
std::string fragment_interface_declare(const shader::ShaderCreateInfo &info) const override
bool finalize(const shader::ShaderCreateInfo *info=nullptr) override
void geometry_shader_from_glsl(MutableSpan< const char * > sources) override
void vertex_shader_from_glsl(MutableSpan< const char * > sources) override
void transform_feedback_disable() override
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...