summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2017-12-16 16:11:13 -0300
committerJuan Linietsky <reduzio@gmail.com>2017-12-16 16:11:13 -0300
commitcf84ee22a9b884453ac8d50b4c3216baf2e3897a (patch)
tree88136b39a990bf218cec062cbbf47d785a5c1ea5
parentc93cb30cbb8374bad0a5fac8f63b3fc6915d411d (diff)
Added custom editor splash (including sponsor logo).
-rw-r--r--SConstruct4
-rw-r--r--main/SCsub24
-rw-r--r--main/main.cpp6
-rw-r--r--main/splash_editor.png (renamed from main/splash_sponsors.png)bin39571 -> 39571 bytes
-rw-r--r--scene/resources/packed_scene.cpp2
5 files changed, 35 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct
index af1ffb544e..ad6b6ee445 100644
--- a/SConstruct
+++ b/SConstruct
@@ -188,6 +188,7 @@ opts.Add(BoolVariable('builtin_squish', "Use the builtin squish library", True))
opts.Add(BoolVariable('builtin_thekla_atlas', "Use the builtin thekla_altas library", True))
opts.Add(BoolVariable('builtin_zlib', "Use the builtin zlib library", True))
opts.Add(BoolVariable('builtin_zstd', "Use the builtin zstd library", True))
+opts.Add(BoolVariable('no_editor_splash', "Don't use the custom splash screen for the editor", False))
# Environment setup
opts.Add("CXX", "C++ compiler")
@@ -239,6 +240,9 @@ if (env_base['target'] == 'debug'):
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
+if (env_base['no_editor_splash']):
+ env_base.Append(CPPFLAGS=['-DNO_EDITOR_SPLASH'])
+
if not env_base['deprecated']:
env_base.Append(CPPFLAGS=['-DDISABLE_DEPRECATED'])
diff --git a/main/SCsub b/main/SCsub
index 2cc617fc2c..37491636e1 100644
--- a/main/SCsub
+++ b/main/SCsub
@@ -24,6 +24,27 @@ def make_splash(target, source, env):
g.write("#endif")
+def make_splash_editor(target, source, env):
+
+ src = source[0].srcnode().abspath
+ dst = target[0].srcnode().abspath
+ f = open(src, "rb")
+ g = open(dst, "w")
+
+ buf = f.read()
+
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef BOOT_SPLASH_EDITOR_H\n")
+ g.write("#define BOOT_SPLASH_EDITOR_H\n")
+ g.write('static const Color boot_splash_editor_bg_color = Color::html("#232323");\n')
+ g.write("static const unsigned char boot_splash_editor_png[] = {\n")
+ for i in range(len(buf)):
+ g.write(byte_to_str(buf[i]) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
+
+
+
def make_app_icon(target, source, env):
src = source[0].srcnode().abspath
@@ -51,6 +72,9 @@ Export('env')
env.Depends("#main/splash.gen.h", "#main/splash.png")
env.Command("#main/splash.gen.h", "#main/splash.png", make_splash)
+env.Depends("#main/splash_editor.gen.h", "#main/splash.png")
+env.Command("#main/splash_editor.gen.h", "#main/splash_editor.png", make_splash_editor)
+
env.Depends("#main/app_icon.gen.h", "#main/app_icon.png")
env.Command("#main/app_icon.gen.h", "#main/app_icon.png", make_app_icon)
diff --git a/main/main.cpp b/main/main.cpp
index c6e20f6d3b..ab520c5e7f 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -42,6 +42,7 @@
#include "script_debugger_remote.h"
#include "servers/register_server_types.h"
#include "splash.gen.h"
+#include "splash_editor.gen.h"
#include "input_map.h"
#include "io/resource_loader.h"
@@ -1051,7 +1052,12 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
#ifndef NO_DEFAULT_BOOT_LOGO
MAIN_PRINT("Main: Create bootsplash");
+#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
+
+ Ref<Image> splash = editor ? memnew(Image(boot_splash_editor_png)) : memnew(Image(boot_splash_png));
+#else
Ref<Image> splash = memnew(Image(boot_splash_png));
+#endif
MAIN_PRINT("Main: ClearColor");
VisualServer::get_singleton()->set_default_clear_color(boot_splash_bg_color);
diff --git a/main/splash_sponsors.png b/main/splash_editor.png
index d8677f1749..d8677f1749 100644
--- a/main/splash_sponsors.png
+++ b/main/splash_editor.png
Binary files differ
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index af6375c6e0..879f76e6d8 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -1213,7 +1213,7 @@ Dictionary SceneState::get_bundled_scene() const {
rnodes.push_back(nd.owner);
rnodes.push_back(nd.type);
uint32_t name_index = nd.name;
- if (nd.index < (1 << (32 - NAME_INDEX_BITS))) { //save if less than 16k childs
+ if (nd.index < (1 << (32 - NAME_INDEX_BITS)) - 1) { //save if less than 16k childs
name_index |= uint32_t(nd.index + 1) << NAME_INDEX_BITS; //for backwards compatibility, index 0 is no index
}
rnodes.push_back(name_index);