[Bf-blender-cvs] [80314489f5e] temp-benchmark: Benchmark: add space type for drawing benchmark in.

Brecht Van Lommel noreply at git.blender.org
Thu Aug 2 19:40:03 CEST 2018


Commit: 80314489f5e5011132acc0275e0b49a83705a944
Author: Brecht Van Lommel
Date:   Fri Jul 20 12:33:20 2018 +0200
Branches: temp-benchmark
https://developer.blender.org/rB80314489f5e5011132acc0275e0b49a83705a944

Benchmark: add space type for drawing benchmark in.

Once we have custom space types, this could be removed. For now all code
is in a branch so some hacks don't matter too much.

===================================================================

M	build_files/cmake/macros.cmake
M	release/datafiles/userdef/userdef_default_theme.c
M	release/scripts/startup/bl_ui/__init__.py
A	release/scripts/startup/bl_ui/space_benchmark.py
M	source/blender/blenloader/intern/writefile.c
M	source/blender/editors/CMakeLists.txt
M	source/blender/editors/include/ED_space_api.h
M	source/blender/editors/interface/resources.c
M	source/blender/editors/space_api/spacetypes.c
A	source/blender/editors/space_benchmark/CMakeLists.txt
A	source/blender/editors/space_benchmark/space_benchmark.c
M	source/blender/makesdna/DNA_space_types.h
M	source/blender/makesdna/DNA_userdef_types.h
M	source/blender/makesrna/RNA_access.h
M	source/blender/makesrna/intern/rna_space.c
M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/python/intern/bpy_rna_callback.c

===================================================================

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 65f962d2dd9..5f2abb76e0e 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -574,6 +574,7 @@ function(SETUP_BLENDER_SORTED_LIBS)
 
 		bf_editor_space_api
 		bf_editor_space_action
+		bf_editor_space_benchmark
 		bf_editor_space_buttons
 		bf_editor_space_console
 		bf_editor_space_file
diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 69ad58ea1c5..882b6d4f91c 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -939,6 +939,31 @@ const bTheme U_theme_default = {
 		.facedot_size = 4,
 		.gp_vertex_size = 3,
 	},
+	.tbenchmark = {
+		.back = RGBA(0x42424200),
+		.title = RGBA(0xd4d4d4ff),
+		.text = RGBA(0xe5e5e5ff),
+		.text_hi = RGBA(0xffffffff),
+		.header = RGBA(0x424242ff),
+		.header_text = RGBA(0xeeeeeeff),
+		.header_text_hi = RGBA(0xffffffff),
+		.tab_active = RGBA(0x5680c2ff),
+		.tab_inactive = RGBA(0x424242ff),
+		.tab_back = RGBA(0x232323ff),
+		.tab_outline = RGBA(0x2d2d2dff),
+		.button = RGBA(0x424242ff),
+		.button_title = RGBA(0xffffffff),
+		.button_text = RGBA(0xe5e5e5ff),
+		.button_text_hi = RGBA(0xffffffff),
+		.panelcolors = {
+			.header = RGBA(0x42424200),
+			.back = RGBA(0x00000028),
+			.sub_back = RGBA(0x00000024),
+		},
+		.vertex_size = 3,
+		.outline_width = 1,
+		.facedot_size = 4,
+	},
 	.tarm = {
 		{
 			.solid = RGBA(0x9a0000ff),
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 89aed37f055..b21e702a99d 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -72,6 +72,7 @@ _modules = [
     "space_toolsystem_common",
     "space_toolsystem_toolbar",
 
+    "space_benchmark",
     "space_clip",
     "space_console",
     "space_dopesheet",
diff --git a/release/scripts/startup/bl_ui/space_benchmark.py b/release/scripts/startup/bl_ui/space_benchmark.py
new file mode 100644
index 00000000000..b8e47804e80
--- /dev/null
+++ b/release/scripts/startup/bl_ui/space_benchmark.py
@@ -0,0 +1,28 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+import bpy
+
+classes = (
+)
+
+if __name__ == "__main__":  # only for live edit.
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 3883e024ab7..e32f0732906 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2952,6 +2952,9 @@ static void write_area_regions(WriteData *wd, ScrArea *area)
 		else if (sl->spacetype == SPACE_INFO) {
 			writestruct(wd, DATA, SpaceInfo, 1, sl);
 		}
+		else if (sl->spacetype == SPACE_BENCHMARK) {
+			writestruct(wd, DATA, SpaceBenchmark, 1, sl);
+		}
 	}
 }
 
diff --git a/source/blender/editors/CMakeLists.txt b/source/blender/editors/CMakeLists.txt
index cf1db751c85..d45f0548037 100644
--- a/source/blender/editors/CMakeLists.txt
+++ b/source/blender/editors/CMakeLists.txt
@@ -42,6 +42,7 @@ if(WITH_BLENDER)
 	add_subdirectory(sound)
 	add_subdirectory(space_action)
 	add_subdirectory(space_api)
+	add_subdirectory(space_benchmark)
 	add_subdirectory(space_buttons)
 	add_subdirectory(space_clip)
 	add_subdirectory(space_console)
diff --git a/source/blender/editors/include/ED_space_api.h b/source/blender/editors/include/ED_space_api.h
index ddd8b59c264..f5e6a3e68ae 100644
--- a/source/blender/editors/include/ED_space_api.h
+++ b/source/blender/editors/include/ED_space_api.h
@@ -59,6 +59,7 @@ void ED_spacetype_userpref(void);
 void ED_spacetype_clip(void);
 void ED_spacetype_statusbar(void);
 void ED_spacetype_topbar(void);
+void ED_spacetype_benchmark(void);
 
 /* calls for instancing and freeing spacetype static data
  * called in WM_init_exit */
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 72023ebf2ae..b8dd9b085d5 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -175,6 +175,9 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
 				case SPACE_STATUSBAR:
 					ts = &btheme->tstatusbar;
 					break;
+				case SPACE_BENCHMARK:
+					ts = &btheme->tbenchmark;
+					break;
 				default:
 					ts = &btheme->tv3d;
 					break;
@@ -1586,6 +1589,16 @@ void init_userdef_do_versions(Main *bmain)
 		}
 	}
 
+	if (!USER_VERSION_ATLEAST(280, 16)) {
+		for (bTheme *btheme = U.themes.first; btheme; btheme = btheme->next) {
+			btheme->tstatusbar = btheme->tv3d;
+		}
+	}
+
+	for (bTheme *btheme = U.themes.first; btheme; btheme = btheme->next) {
+		btheme->tbenchmark = btheme->tima;
+	}
+
 	/**
 	 * Include next version bump.
 	 */
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index 7246812dc82..70803993d21 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -99,6 +99,7 @@ void ED_spacetypes_init(void)
 	ED_spacetype_clip();
 	ED_spacetype_statusbar();
 	ED_spacetype_topbar();
+	ED_spacetype_benchmark();
 //	...
 
 	/* register operator types for screen and all spaces */
diff --git a/source/blender/editors/space_benchmark/CMakeLists.txt b/source/blender/editors/space_benchmark/CMakeLists.txt
new file mode 100644
index 00000000000..e820415f5ce
--- /dev/null
+++ b/source/blender/editors/space_benchmark/CMakeLists.txt
@@ -0,0 +1,48 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributor(s): Jacques Beaurain.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+	../include
+	../../blenfont
+	../../blenkernel
+	../../blenlib
+	../../gpu
+	../../makesdna
+	../../makesrna
+	../../windowmanager
+	../../../../intern/guardedalloc
+	../../../../intern/glew-mx
+)
+
+set(INC_SYS
+	${GLEW_INCLUDE_PATH}
+)
+
+set(SRC
+	space_benchmark.c
+)
+
+if(WITH_PYTHON)
+	add_definitions(-DWITH_PYTHON)
+endif()
+
+add_definitions(${GL_DEFINITIONS})
+
+blender_add_lib(bf_editor_space_benchmark "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/editors/space_benchmark/space_benchmark.c b/source/blender/editors/space_benchmark/space_benchmark.c
new file mode 100644
index 00000000000..62c9dfbb752
--- /dev/null
+++ b/source/blender/editors/space_benchmark/space_benchmark.c
@@ -0,0 +1,125 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_benchmark/space_benchmark.c
+ *  \ingroup spbenchmark
+ */
+
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
+#include "BKE_context.h"
+#include "BKE_screen.h"
+
+#include "ED_space_api.h"
+#include "ED_screen.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+/* ******************** default callbacks for benchmark space ***************** */
+
+static SpaceLink *benchmark_new(const ScrArea *UNUSED(area), const Scene *UNUSED(scene))
+{
+	SpaceBenchmark *sbenchmark = MEM_callocN(sizeof(SpaceBenchmark), "initbenchmark");
+	sbenchmark->spacetype = SPACE_BENCHMARK;
+
+	// TODO sbenchmark->lheight =  14;
+
+	/* main region */
+	ARegion *ar = MEM_callocN(sizeof(ARegion), "main region for text");
+	BLI_addtail(&sbenchmark->regionbase, ar);
+	ar->regiontype = RGN_TYPE_WINDOW;
+
+	return (SpaceLink *)sbenchmark;
+}
+
+/* not spacelink itself */
+static void benchmark_free(SpaceLink *UNUSED(sl))
+{
+}
+
+/* spacetype; init callback */
+static void benchmark_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
+{
+}
+
+static SpaceLink *benchmark_duplicate(SpaceLink *sl)
+{
+	SpaceBenchmark *sbenchmarkn = MEM_dupallocN(sl);
+	return (SpaceLink *)sbenchmarkn;
+}
+
+/* add handlers, stuff you only do once or on area/region changes */
+sta

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list