[3.x] Allow reading shaders from .gdshader files
This commit is contained in:
parent
a5c62edc14
commit
7dc2edc430
6 changed files with 14 additions and 3 deletions
|
@ -1024,6 +1024,7 @@ ProjectSettings::ProjectSettings() {
|
||||||
if (Engine::get_singleton()->has_singleton("GodotSharp")) {
|
if (Engine::get_singleton()->has_singleton("GodotSharp")) {
|
||||||
extensions.push_back("cs");
|
extensions.push_back("cs");
|
||||||
}
|
}
|
||||||
|
extensions.push_back("gdshader");
|
||||||
extensions.push_back("shader");
|
extensions.push_back("shader");
|
||||||
|
|
||||||
GLOBAL_DEF("editor/main_run_args", "");
|
GLOBAL_DEF("editor/main_run_args", "");
|
||||||
|
|
|
@ -528,7 +528,7 @@
|
||||||
<member name="editor/script_templates_search_path" type="String" setter="" getter="" default=""res://script_templates"">
|
<member name="editor/script_templates_search_path" type="String" setter="" getter="" default=""res://script_templates"">
|
||||||
Search path for project-specific script templates. Godot will search for script templates both in the editor-specific path and in this project-specific path.
|
Search path for project-specific script templates. Godot will search for script templates both in the editor-specific path and in this project-specific path.
|
||||||
</member>
|
</member>
|
||||||
<member name="editor/search_in_file_extensions" type="PoolStringArray" setter="" getter="" default="PoolStringArray( "gd", "shader" )">
|
<member name="editor/search_in_file_extensions" type="PoolStringArray" setter="" getter="" default="PoolStringArray( "gd", "gdshader", "shader" )">
|
||||||
Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. [code]tscn[/code] if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files.
|
Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. [code]tscn[/code] if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files.
|
||||||
</member>
|
</member>
|
||||||
<member name="gui/common/default_scroll_deadzone" type="int" setter="" getter="" default="0">
|
<member name="gui/common/default_scroll_deadzone" type="int" setter="" getter="" default="0">
|
||||||
|
|
|
@ -156,6 +156,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) {
|
||||||
extension_guess["glb"] = tree->get_icon("PackedScene", "EditorIcons");
|
extension_guess["glb"] = tree->get_icon("PackedScene", "EditorIcons");
|
||||||
|
|
||||||
extension_guess["gdshader"] = tree->get_icon("Shader", "EditorIcons");
|
extension_guess["gdshader"] = tree->get_icon("Shader", "EditorIcons");
|
||||||
|
extension_guess["shader"] = tree->get_icon("Shader", "EditorIcons");
|
||||||
extension_guess["gd"] = tree->get_icon("GDScript", "EditorIcons");
|
extension_guess["gd"] = tree->get_icon("GDScript", "EditorIcons");
|
||||||
if (Engine::get_singleton()->has_singleton("GodotSharp")) {
|
if (Engine::get_singleton()->has_singleton("GodotSharp")) {
|
||||||
extension_guess["cs"] = tree->get_icon("CSharpScript", "EditorIcons");
|
extension_guess["cs"] = tree->get_icon("CSharpScript", "EditorIcons");
|
||||||
|
|
|
@ -2975,7 +2975,7 @@ void ScriptEditor::_on_find_in_files_result_selected(String fpath, int line_numb
|
||||||
if (ResourceLoader::exists(fpath)) {
|
if (ResourceLoader::exists(fpath)) {
|
||||||
RES res = ResourceLoader::load(fpath);
|
RES res = ResourceLoader::load(fpath);
|
||||||
|
|
||||||
if (fpath.get_extension() == "shader") {
|
if (fpath.get_extension() == "gdshader" || fpath.get_extension() == "shader") {
|
||||||
ShaderEditorPlugin *shader_editor = Object::cast_to<ShaderEditorPlugin>(EditorNode::get_singleton()->get_editor_data().get_editor("Shader"));
|
ShaderEditorPlugin *shader_editor = Object::cast_to<ShaderEditorPlugin>(EditorNode::get_singleton()->get_editor_data().get_editor("Shader"));
|
||||||
shader_editor->edit(res.ptr());
|
shader_editor->edit(res.ptr());
|
||||||
shader_editor->make_visible(true);
|
shader_editor->make_visible(true);
|
||||||
|
|
6
misc/dist/linux/org.godotengine.Godot.xml
vendored
6
misc/dist/linux/org.godotengine.Godot.xml
vendored
|
@ -21,6 +21,12 @@
|
||||||
<glob pattern="*.escn"/>
|
<glob pattern="*.escn"/>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
|
||||||
|
<mime-type type="application/x-godot-shader">
|
||||||
|
<comment>Godot Engine shader</comment>
|
||||||
|
<icon name="x-godot-shader" />
|
||||||
|
<glob pattern="*.gdshader"/>
|
||||||
|
</mime-type>
|
||||||
|
|
||||||
<mime-type type="application/x-gdscript">
|
<mime-type type="application/x-gdscript">
|
||||||
<comment>GDScript script</comment>
|
<comment>GDScript script</comment>
|
||||||
<icon name="x-gdscript" />
|
<icon name="x-gdscript" />
|
||||||
|
|
|
@ -204,6 +204,7 @@ RES ResourceFormatLoaderShader::load(const String &p_path, const String &p_origi
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResourceFormatLoaderShader::get_recognized_extensions(List<String> *p_extensions) const {
|
void ResourceFormatLoaderShader::get_recognized_extensions(List<String> *p_extensions) const {
|
||||||
|
p_extensions->push_back("gdshader");
|
||||||
p_extensions->push_back("shader");
|
p_extensions->push_back("shader");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +214,7 @@ bool ResourceFormatLoaderShader::handles_type(const String &p_type) const {
|
||||||
|
|
||||||
String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const {
|
String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const {
|
||||||
String el = p_path.get_extension().to_lower();
|
String el = p_path.get_extension().to_lower();
|
||||||
if (el == "shader") {
|
if (el == "gdshader" || el == "shader") {
|
||||||
return "Shader";
|
return "Shader";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
|
@ -244,10 +245,12 @@ Error ResourceFormatSaverShader::save(const String &p_path, const RES &p_resourc
|
||||||
void ResourceFormatSaverShader::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const {
|
void ResourceFormatSaverShader::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const {
|
||||||
if (const Shader *shader = Object::cast_to<Shader>(*p_resource)) {
|
if (const Shader *shader = Object::cast_to<Shader>(*p_resource)) {
|
||||||
if (shader->is_text_shader()) {
|
if (shader->is_text_shader()) {
|
||||||
|
p_extensions->push_back("gdshader");
|
||||||
p_extensions->push_back("shader");
|
p_extensions->push_back("shader");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ResourceFormatSaverShader::recognize(const RES &p_resource) const {
|
bool ResourceFormatSaverShader::recognize(const RES &p_resource) const {
|
||||||
return p_resource->get_class_name() == "Shader"; //only shader, not inherited
|
return p_resource->get_class_name() == "Shader"; //only shader, not inherited
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue