Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/BKE_image.h2
-rw-r--r--source/blender/blenkernel/intern/image.c44
-rw-r--r--source/blender/blenkernel/intern/library.c2
3 files changed, 32 insertions, 16 deletions
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index 894ccae0dc8..eb98268c9f0 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -61,6 +61,8 @@ void BKE_image_free_buffers(struct Image *image);
/* call from library */
void BKE_image_free(struct Image *image);
+void BKE_image_init(struct Image *image);
+
typedef void (StampCallback)(void *data, const char *propname, char *propvalue, int len);
void BKE_render_result_stamp_info(struct Scene *scene, struct Object *camera, struct RenderResult *rr, bool allocate_only);
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 340b406722f..d5f9a2dac3e 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -350,27 +350,41 @@ void BKE_image_free(Image *ima)
}
/* only image block itself */
-static Image *image_alloc(Main *bmain, const char *name, short source, short type)
+static void image_init(Image *ima, short source, short type)
{
- Image *ima;
+ BLI_assert(MEMCMP_STRUCT_OFS_IS_ZERO(ima, id));
- ima = BKE_libblock_alloc(bmain, ID_IM, name);
- if (ima) {
- ima->ok = IMA_OK;
+ ima->ok = IMA_OK;
- ima->xrep = ima->yrep = 1;
- ima->aspx = ima->aspy = 1.0;
- ima->gen_x = 1024; ima->gen_y = 1024;
- ima->gen_type = 1; /* no defines yet? */
+ ima->xrep = ima->yrep = 1;
+ ima->aspx = ima->aspy = 1.0;
+ ima->gen_x = 1024; ima->gen_y = 1024;
+ ima->gen_type = IMA_GENTYPE_GRID;
- ima->source = source;
- ima->type = type;
+ ima->source = source;
+ ima->type = type;
- if (source == IMA_SRC_VIEWER)
- ima->flag |= IMA_VIEW_AS_RENDER;
+ if (source == IMA_SRC_VIEWER)
+ ima->flag |= IMA_VIEW_AS_RENDER;
- BKE_color_managed_colorspace_settings_init(&ima->colorspace_settings);
- ima->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Image Stereo Format");
+ BKE_color_managed_colorspace_settings_init(&ima->colorspace_settings);
+ ima->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Image Stereo Format");
+}
+
+void BKE_image_init(struct Image *image)
+{
+ if (image) {
+ image_init(image, IMA_SRC_GENERATED, IMA_TYPE_UV_TEST);
+ }
+}
+
+static Image *image_alloc(Main *bmain, const char *name, short source, short type)
+{
+ Image *ima;
+
+ ima = BKE_libblock_alloc(bmain, ID_IM, name);
+ if (ima) {
+ image_init(ima, source, type);
}
return ima;
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 895d215ca91..9e81cded9f5 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -931,7 +931,7 @@ void BKE_libblock_init_empty(ID *id)
BKE_texture_default((Tex *)id);
break;
case ID_IM:
- /* Image is a bit complicated, for now assume NULLified im is OK. */
+ BKE_image_init((Image *)id);
break;
case ID_LT:
BKE_lattice_init((Lattice *)id);