You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Moved the shader source compilation code outside RenderingDevice and Vulkan
This commit is contained in:
committed by
Juan Linietsky
parent
60c7498cee
commit
4fe3ee1730
@@ -1,13 +1,38 @@
|
||||
#include "rendering_device.h"
|
||||
|
||||
|
||||
RenderingDevice *RenderingDevice::singleton=NULL;
|
||||
RenderingDevice *RenderingDevice::singleton = NULL;
|
||||
|
||||
RenderingDevice *RenderingDevice::get_singleton() {
|
||||
return singleton;
|
||||
}
|
||||
|
||||
RenderingDevice::ShaderCompileFunction RenderingDevice::compile_function = NULL;
|
||||
RenderingDevice::ShaderCacheFunction RenderingDevice::cache_function = NULL;
|
||||
|
||||
void RenderingDevice::shader_set_compile_function(ShaderCompileFunction p_function) {
|
||||
compile_function = p_function;
|
||||
}
|
||||
void RenderingDevice::shader_set_cache_function(ShaderCacheFunction p_function) {
|
||||
cache_function = p_function;
|
||||
}
|
||||
|
||||
PoolVector<uint8_t> RenderingDevice::shader_compile_from_source(ShaderStage p_stage, const String &p_source_code, ShaderLanguage p_language, String *r_error, bool p_allow_cache) {
|
||||
if (p_allow_cache && cache_function) {
|
||||
PoolVector<uint8_t> cache = cache_function(p_stage, p_source_code, p_language);
|
||||
if (cache.size()) {
|
||||
return cache;
|
||||
}
|
||||
}
|
||||
|
||||
ERR_FAIL_COND_V(!compile_function, PoolVector<uint8_t>());
|
||||
|
||||
return compile_function(p_stage, p_source_code, p_language, r_error);
|
||||
}
|
||||
|
||||
RenderingDevice::RenderingDevice() {
|
||||
|
||||
singleton=this;
|
||||
ShaderCompileFunction compile_function;
|
||||
ShaderCacheFunction cache_function;
|
||||
|
||||
singleton = this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user