taisei/src/renderer/gl33/shader_object.h
2024-05-17 14:11:48 +02:00

31 lines
994 B
C

/*
* This software is licensed under the terms of the MIT License.
* See COPYING for further information.
* ---
* Copyright (c) 2011-2024, Lukas Weber <laochailan@web.de>.
* Copyright (c) 2012-2024, Andrei Alexeyev <akari@taisei-project.org>.
*/
#pragma once
#include "taisei.h"
#include "../api.h"
#include "../common/shaderlib/shaderlib.h"
#include "opengl.h"
#include "resource/shader_object.h"
struct ShaderObject {
GLuint gl_handle;
ShaderStage stage;
char debug_label[R_DEBUG_LABEL_SIZE];
uint num_attribs;
GLSLAttribute *attribs;
};
bool gl33_shader_language_supported(const ShaderLangInfo *lang, ShaderLangInfo *out_alternative);
ShaderObject *gl33_shader_object_compile(ShaderSource *source);
void gl33_shader_object_destroy(ShaderObject *shobj);
void gl33_shader_object_set_debug_label(ShaderObject *shobj, const char *label);
const char *gl33_shader_object_get_debug_label(ShaderObject *shobj);
bool gl33_shader_object_transfer(ShaderObject *dst, ShaderObject *src);