You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Add shader baker to project exporter.
Metal Support contributed by Migeran (https://migeran.com) and Stuart Carnie. Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com> Co-authored-by: Gergely Kis <gergely.kis@migeran.com>
This commit is contained in:
@@ -65,25 +65,12 @@ private:
|
||||
Thread::ID render_thread_id;
|
||||
|
||||
public:
|
||||
enum ShaderLanguage {
|
||||
SHADER_LANGUAGE_GLSL,
|
||||
SHADER_LANGUAGE_HLSL
|
||||
};
|
||||
|
||||
typedef int64_t DrawListID;
|
||||
typedef int64_t ComputeListID;
|
||||
|
||||
typedef String (*ShaderSPIRVGetCacheKeyFunction)(const RenderingDevice *p_render_device);
|
||||
typedef Vector<uint8_t> (*ShaderCompileToSPIRVFunction)(ShaderStage p_stage, const String &p_source_code, ShaderLanguage p_language, String *r_error, const RenderingDevice *p_render_device);
|
||||
typedef Vector<uint8_t> (*ShaderCacheFunction)(ShaderStage p_stage, const String &p_source_code, ShaderLanguage p_language);
|
||||
|
||||
typedef void (*InvalidationCallback)(void *);
|
||||
|
||||
private:
|
||||
static ShaderCompileToSPIRVFunction compile_to_spirv_function;
|
||||
static ShaderCacheFunction cache_function;
|
||||
static ShaderSPIRVGetCacheKeyFunction get_spirv_cache_key_function;
|
||||
|
||||
static RenderingDevice *singleton;
|
||||
|
||||
RenderingContextDriver *context = nullptr;
|
||||
@@ -871,7 +858,7 @@ private:
|
||||
// to do quick validation and ensuring the user
|
||||
// does not submit something invalid.
|
||||
|
||||
struct Shader : public ShaderDescription {
|
||||
struct Shader : public ShaderReflection {
|
||||
String name; // Used for debug.
|
||||
RDD::ShaderID driver_id;
|
||||
uint32_t layout_hash = 0;
|
||||
@@ -963,13 +950,6 @@ public:
|
||||
bool has_feature(const Features p_feature) const;
|
||||
|
||||
Vector<uint8_t> shader_compile_spirv_from_source(ShaderStage p_stage, const String &p_source_code, ShaderLanguage p_language = SHADER_LANGUAGE_GLSL, String *r_error = nullptr, bool p_allow_cache = true);
|
||||
String shader_get_spirv_cache_key() const;
|
||||
|
||||
static void shader_set_compile_to_spirv_function(ShaderCompileToSPIRVFunction p_function);
|
||||
static void shader_set_spirv_cache_function(ShaderCacheFunction p_function);
|
||||
static void shader_set_get_cache_key_function(ShaderSPIRVGetCacheKeyFunction p_function);
|
||||
|
||||
String shader_get_binary_cache_key() const;
|
||||
Vector<uint8_t> shader_compile_binary_from_spirv(const Vector<ShaderStageSPIRVData> &p_spirv, const String &p_shader_name = "");
|
||||
|
||||
RID shader_create_from_spirv(const Vector<ShaderStageSPIRVData> &p_spirv, const String &p_shader_name = "");
|
||||
|
||||
Reference in New Issue
Block a user