Commit: bd0e78bb23af93b6894988d8d5e9471b491aab88
Author: Bastien Montagne
Date:   Tue May 26 20:47:43 2015 +0200
Branches: asset-engine
https://developer.blender.org/rBbd0e78bb23af93b6894988d8d5e9471b491aab88

Add needed asset-related data to Library and ID structs.

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

M       source/blender/makesdna/DNA_ID.h
M       source/blender/makesdna/DNA_space_types.h
M       source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index 6d2d5b0..8bf05e7 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -106,6 +106,25 @@ enum {
 
 /* add any future new id property types here.*/
 
+/* About Unique identifier.
+ * Each engine is free to use it as it likes - it will be the only thing 
passed to it by blender to identify
+ * asset/variant/version (concatenating the three into a single 48 bytes one).
+ * Assumed to be 128bits, handled as four integers due to lack of real bytes 
proptype in RNA :|.
+ */
+#define ASSET_UUID_LENGTH     16
+
+/* Used to communicate with asset engines outside of 'import' context. */
+typedef struct AssetUUID {
+       int uuid_asset[4];
+       int uuid_variant[4];
+       int uuid_revision[4];
+} AssetUUID;
+
+typedef struct AssetUUIDList {
+       AssetUUID *uuids;
+       int nbr_uuids, pad;
+} AssetUUIDList;
+
 /* watch it: Sequence has identical beginning. */
 /**
  * ID is the first thing included in all serializable types. It
@@ -130,6 +149,8 @@ typedef struct ID {
        int us;
        int icon_id, pad2;
        IDProperty *properties;
+
+       AssetUUID *uuid;
 } ID;
 
 /**
@@ -140,7 +161,9 @@ typedef struct Library {
        ID id;
        ID *idblock;
        struct FileData *filedata;
-       char name[1024];  /* path name used for reading, can be relative and 
edited in the outliner */
+       /* path name used for reading, can be relative and edited in the 
outliner.
+     * In case it's an asset engine, it's path to aset engine 'root' (meaning 
depends on asset engine). */
+       char name[1024];
 
        /* absolute filepath, this is only for convenience, 'name' is the real 
path used on file read but in
         * some cases its useful to access the absolute one.
@@ -151,6 +174,10 @@ typedef struct Library {
        struct Library *parent; /* set for indirectly linked libs, used in the 
outliner and while reading */
        
        struct PackedFile *packedfile;
+
+       char asset_engine[64];  /* MAX_ST_NAME */
+       int asset_engine_version;
+       int pad_i1;
 } Library;
 
 enum eIconSizes {
diff --git a/source/blender/makesdna/DNA_space_types.h 
b/source/blender/makesdna/DNA_space_types.h
index 4a4a604..976e80a 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -750,26 +750,6 @@ typedef enum eDirEntry_SelectFlag {
 
 /* ***** Related to file browser, but never saved in DNA, only here to help 
with RNA. ***** */
 
-/* About Unique identifier.
- * Stored in a CustomProps once imported.
- * Each engine is free to use it as it likes - it will be the only thing 
passed to it by blender to identify
- * asset/variant/version (concatenating the three into a single 48 bytes one).
- * Assumed to be 128bits, handled as four integers due to lack of real bytes 
proptype in RNA :|.
- */
-#define ASSET_UUID_LENGTH     16
-
-/* Used to communicate with asset engines outside of 'import' context. */
-typedef struct AssetUUID {
-       int uuid_asset[4];
-       int uuid_variant[4];
-       int uuid_revision[4];
-} AssetUUID;
-
-typedef struct AssetUUIDList {
-       AssetUUID *uuids;
-       int nbr_uuids, pad;
-} AssetUUIDList;
-
 /* Container for a revision, only relevant in asset context. */
 typedef struct FileDirEntryRevision {
        struct FileDirEntryRevision *next, *prev;
diff --git a/source/blender/windowmanager/intern/wm_operators.c 
b/source/blender/windowmanager/intern/wm_operators.c
index e0873e5..9c40c69 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -69,7 +69,13 @@
 
 #include "BLO_readfile.h"
 
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_types.h"
+#include "RNA_enum_types.h"
+
 #include "BKE_appdir.h"
+#include "BKE_asset.h"
 #include "BKE_autoexec.h"
 #include "BKE_blender.h"
 #include "BKE_brush.h"
@@ -106,10 +112,6 @@
 
 #include "GPU_material.h"
 
-#include "RNA_access.h"
-#include "RNA_define.h"
-#include "RNA_enum_types.h"
-
 #include "UI_interface.h"
 #include "UI_interface_icons.h"
 #include "UI_resources.h"
@@ -2845,6 +2847,10 @@ static void 
wm_link_append_properties_common(wmOperatorType *ot, bool is_link)
 
        /* better not save _any_ settings for this operator */
        /* properties */
+       prop = RNA_def_string(ot->srna, "asset_engine", NULL, 
sizeof(((AssetEngineType *)NULL)->idname),
+                             "Asset Engine", "Asset engine identifier used to 
append/link the data");
+       RNA_def_property_flag(prop, PROP_SKIP_SAVE | PROP_HIDDEN);
+
        prop = RNA_def_boolean(ot->srna, "link", is_link,
                               "Link", "Link the objects or datablocks rather 
than appending");
        RNA_def_property_flag(prop, PROP_SKIP_SAVE | PROP_HIDDEN);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to