RNA: Add check_existing arg to other load() funcs
Note: movieclip was doing this already by default, now split into 2 functions, matching image behavior.
This commit is contained in:
@@ -80,7 +80,9 @@ void BKE_vfont_builtin_register(void *mem, int size);
|
|||||||
void BKE_vfont_free_data(struct VFont *vfont);
|
void BKE_vfont_free_data(struct VFont *vfont);
|
||||||
void BKE_vfont_free(struct VFont *sc);
|
void BKE_vfont_free(struct VFont *sc);
|
||||||
struct VFont *BKE_vfont_builtin_get(void);
|
struct VFont *BKE_vfont_builtin_get(void);
|
||||||
struct VFont *BKE_vfont_load(struct Main *bmain, const char *name);
|
struct VFont *BKE_vfont_load(struct Main *bmain, const char *filepath);
|
||||||
|
struct VFont *BKE_vfont_load_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists);
|
||||||
|
struct VFont *BKE_vfont_load_exists(struct Main *bmain, const char *filepath);
|
||||||
|
|
||||||
bool BKE_vfont_to_curve_ex(struct Main *bmain, struct Object *ob, int mode,
|
bool BKE_vfont_to_curve_ex(struct Main *bmain, struct Object *ob, int mode,
|
||||||
struct ListBase *r_nubase,
|
struct ListBase *r_nubase,
|
||||||
|
@@ -43,6 +43,8 @@ void BKE_movieclip_free(struct MovieClip *clip);
|
|||||||
void BKE_movieclip_unlink(struct Main *bmain, struct MovieClip *clip);
|
void BKE_movieclip_unlink(struct Main *bmain, struct MovieClip *clip);
|
||||||
|
|
||||||
struct MovieClip *BKE_movieclip_file_add(struct Main *bmain, const char *name);
|
struct MovieClip *BKE_movieclip_file_add(struct Main *bmain, const char *name);
|
||||||
|
struct MovieClip *BKE_movieclip_file_add_exists_ex(struct Main *bmain, const char *name, bool *r_exists);
|
||||||
|
struct MovieClip *BKE_movieclip_file_add_exists(struct Main *bmain, const char *name);
|
||||||
void BKE_movieclip_reload(struct MovieClip *clip);
|
void BKE_movieclip_reload(struct MovieClip *clip);
|
||||||
void BKE_movieclip_clear_cache(struct MovieClip *clip);
|
void BKE_movieclip_clear_cache(struct MovieClip *clip);
|
||||||
void BKE_movieclip_clear_proxy_cache(struct MovieClip *clip);
|
void BKE_movieclip_clear_proxy_cache(struct MovieClip *clip);
|
||||||
|
@@ -61,7 +61,9 @@ void BKE_sound_exit(void);
|
|||||||
|
|
||||||
void BKE_sound_force_device(const char *device);
|
void BKE_sound_force_device(const char *device);
|
||||||
|
|
||||||
struct bSound *BKE_sound_new_file(struct Main *main, const char *filename);
|
struct bSound *BKE_sound_new_file(struct Main *main, const char *filepath);
|
||||||
|
struct bSound *BKE_sound_new_file_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists);
|
||||||
|
struct bSound *BKE_sound_new_file_exists(struct Main *bmain, const char *filepath);
|
||||||
|
|
||||||
// XXX unused currently
|
// XXX unused currently
|
||||||
#if 0
|
#if 0
|
||||||
|
@@ -203,7 +203,7 @@ static VFontData *vfont_get_data(Main *bmain, VFont *vfont)
|
|||||||
return vfont->data;
|
return vfont->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
VFont *BKE_vfont_load(Main *bmain, const char *name)
|
VFont *BKE_vfont_load(Main *bmain, const char *filepath)
|
||||||
{
|
{
|
||||||
char filename[FILE_MAXFILE];
|
char filename[FILE_MAXFILE];
|
||||||
VFont *vfont = NULL;
|
VFont *vfont = NULL;
|
||||||
@@ -211,16 +211,16 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
|
|||||||
PackedFile *temp_pf = NULL;
|
PackedFile *temp_pf = NULL;
|
||||||
bool is_builtin;
|
bool is_builtin;
|
||||||
|
|
||||||
if (STREQ(name, FO_BUILTIN_NAME)) {
|
if (STREQ(filepath, FO_BUILTIN_NAME)) {
|
||||||
BLI_strncpy(filename, name, sizeof(filename));
|
BLI_strncpy(filename, filepath, sizeof(filename));
|
||||||
|
|
||||||
pf = get_builtin_packedfile();
|
pf = get_builtin_packedfile();
|
||||||
is_builtin = true;
|
is_builtin = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BLI_split_file_part(name, filename, sizeof(filename));
|
BLI_split_file_part(filepath, filename, sizeof(filename));
|
||||||
pf = newPackedFile(NULL, name, bmain->name);
|
pf = newPackedFile(NULL, filepath, bmain->name);
|
||||||
temp_pf = newPackedFile(NULL, name, bmain->name);
|
temp_pf = newPackedFile(NULL, filepath, bmain->name);
|
||||||
|
|
||||||
is_builtin = false;
|
is_builtin = false;
|
||||||
}
|
}
|
||||||
@@ -237,7 +237,7 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
|
|||||||
if (vfd->name[0] != '\0') {
|
if (vfd->name[0] != '\0') {
|
||||||
BLI_strncpy(vfont->id.name + 2, vfd->name, sizeof(vfont->id.name) - 2);
|
BLI_strncpy(vfont->id.name + 2, vfd->name, sizeof(vfont->id.name) - 2);
|
||||||
}
|
}
|
||||||
BLI_strncpy(vfont->name, name, sizeof(vfont->name));
|
BLI_strncpy(vfont->name, filepath, sizeof(vfont->name));
|
||||||
|
|
||||||
/* if autopack is on store the packedfile in de font structure */
|
/* if autopack is on store the packedfile in de font structure */
|
||||||
if (!is_builtin && (G.fileflags & G_AUTOPACK)) {
|
if (!is_builtin && (G.fileflags & G_AUTOPACK)) {
|
||||||
@@ -259,6 +259,37 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
|
|||||||
return vfont;
|
return vfont;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VFont *BKE_vfont_load_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists)
|
||||||
|
{
|
||||||
|
VFont *vfont;
|
||||||
|
char str[FILE_MAX], strtest[FILE_MAX];
|
||||||
|
|
||||||
|
BLI_strncpy(str, filepath, sizeof(str));
|
||||||
|
BLI_path_abs(str, bmain->name);
|
||||||
|
|
||||||
|
/* first search an identical filepath */
|
||||||
|
for (vfont = bmain->vfont.first; vfont; vfont = vfont->id.next) {
|
||||||
|
BLI_strncpy(strtest, vfont->name, sizeof(vfont->name));
|
||||||
|
BLI_path_abs(strtest, ID_BLEND_PATH(bmain, &vfont->id));
|
||||||
|
|
||||||
|
if (BLI_path_cmp(strtest, str) == 0) {
|
||||||
|
vfont->id.us++; /* officially should not, it doesn't link here! */
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = true;
|
||||||
|
return vfont;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = false;
|
||||||
|
return BKE_vfont_load(bmain, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
VFont *BKE_vfont_load_exists(struct Main *bmain, const char *filepath)
|
||||||
|
{
|
||||||
|
return BKE_vfont_load_exists_ex(bmain, filepath, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static VFont *which_vfont(Curve *cu, CharInfo *info)
|
static VFont *which_vfont(Curve *cu, CharInfo *info)
|
||||||
{
|
{
|
||||||
switch (info->flag & (CU_CHINFO_BOLD | CU_CHINFO_ITALIC)) {
|
switch (info->flag & (CU_CHINFO_BOLD | CU_CHINFO_ITALIC)) {
|
||||||
|
@@ -746,7 +746,7 @@ Image *BKE_image_load_exists_ex(const char *filepath, bool *r_exists)
|
|||||||
BLI_strncpy(str, filepath, sizeof(str));
|
BLI_strncpy(str, filepath, sizeof(str));
|
||||||
BLI_path_abs(str, G.main->name);
|
BLI_path_abs(str, G.main->name);
|
||||||
|
|
||||||
/* first search an identical image */
|
/* first search an identical filepath */
|
||||||
for (ima = G.main->image.first; ima; ima = ima->id.next) {
|
for (ima = G.main->image.first; ima; ima = ima->id.next) {
|
||||||
if (ima->source != IMA_SRC_VIEWER && ima->source != IMA_SRC_GENERATED) {
|
if (ima->source != IMA_SRC_VIEWER && ima->source != IMA_SRC_GENERATED) {
|
||||||
BLI_strncpy(strtest, ima->name, sizeof(ima->name));
|
BLI_strncpy(strtest, ima->name, sizeof(ima->name));
|
||||||
|
@@ -605,7 +605,7 @@ MovieClip *BKE_movieclip_file_add(Main *bmain, const char *name)
|
|||||||
MovieClip *clip;
|
MovieClip *clip;
|
||||||
int file, len;
|
int file, len;
|
||||||
const char *libname;
|
const char *libname;
|
||||||
char str[FILE_MAX], strtest[FILE_MAX];
|
char str[FILE_MAX];
|
||||||
|
|
||||||
BLI_strncpy(str, name, sizeof(str));
|
BLI_strncpy(str, name, sizeof(str));
|
||||||
BLI_path_abs(str, bmain->name);
|
BLI_path_abs(str, bmain->name);
|
||||||
@@ -616,19 +616,6 @@ MovieClip *BKE_movieclip_file_add(Main *bmain, const char *name)
|
|||||||
return NULL;
|
return NULL;
|
||||||
close(file);
|
close(file);
|
||||||
|
|
||||||
/* ** first search an identical clip ** */
|
|
||||||
for (clip = bmain->movieclip.first; clip; clip = clip->id.next) {
|
|
||||||
BLI_strncpy(strtest, clip->name, sizeof(clip->name));
|
|
||||||
BLI_path_abs(strtest, G.main->name);
|
|
||||||
|
|
||||||
if (STREQ(strtest, str)) {
|
|
||||||
BLI_strncpy(clip->name, name, sizeof(clip->name)); /* for stringcode */
|
|
||||||
clip->id.us++; /* officially should not, it doesn't link here! */
|
|
||||||
|
|
||||||
return clip;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ** add new movieclip ** */
|
/* ** add new movieclip ** */
|
||||||
|
|
||||||
/* create a short library name */
|
/* create a short library name */
|
||||||
@@ -655,6 +642,37 @@ MovieClip *BKE_movieclip_file_add(Main *bmain, const char *name)
|
|||||||
return clip;
|
return clip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MovieClip *BKE_movieclip_file_add_exists_ex(Main *bmain, const char *filepath, bool *r_exists)
|
||||||
|
{
|
||||||
|
MovieClip *clip;
|
||||||
|
char str[FILE_MAX], strtest[FILE_MAX];
|
||||||
|
|
||||||
|
BLI_strncpy(str, filepath, sizeof(str));
|
||||||
|
BLI_path_abs(str, bmain->name);
|
||||||
|
|
||||||
|
/* first search an identical filepath */
|
||||||
|
for (clip = bmain->movieclip.first; clip; clip = clip->id.next) {
|
||||||
|
BLI_strncpy(strtest, clip->name, sizeof(clip->name));
|
||||||
|
BLI_path_abs(strtest, ID_BLEND_PATH(bmain, &clip->id));
|
||||||
|
|
||||||
|
if (BLI_path_cmp(strtest, str) == 0) {
|
||||||
|
clip->id.us++; /* officially should not, it doesn't link here! */
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = true;
|
||||||
|
return clip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = false;
|
||||||
|
return BKE_movieclip_file_add(bmain, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
MovieClip *BKE_movieclip_file_add_exists(Main *bmain, const char *filepath)
|
||||||
|
{
|
||||||
|
return BKE_movieclip_file_add_exists_ex(bmain, filepath, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int *width, int *height)
|
static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int *width, int *height)
|
||||||
{
|
{
|
||||||
*width = ibuf->x;
|
*width = ibuf->x;
|
||||||
|
@@ -71,7 +71,7 @@ static int sound_cfra;
|
|||||||
static char **audio_device_names = NULL;
|
static char **audio_device_names = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bSound *BKE_sound_new_file(struct Main *bmain, const char *filename)
|
bSound *BKE_sound_new_file(struct Main *bmain, const char *filepath)
|
||||||
{
|
{
|
||||||
bSound *sound;
|
bSound *sound;
|
||||||
|
|
||||||
@@ -80,18 +80,18 @@ bSound *BKE_sound_new_file(struct Main *bmain, const char *filename)
|
|||||||
|
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
BLI_strncpy(str, filename, sizeof(str));
|
BLI_strncpy(str, filepath, sizeof(str));
|
||||||
|
|
||||||
path = /*bmain ? bmain->name :*/ G.main->name;
|
path = /*bmain ? bmain->name :*/ G.main->name;
|
||||||
|
|
||||||
BLI_path_abs(str, path);
|
BLI_path_abs(str, path);
|
||||||
|
|
||||||
len = strlen(filename);
|
len = strlen(filepath);
|
||||||
while (len > 0 && filename[len - 1] != '/' && filename[len - 1] != '\\')
|
while (len > 0 && filepath[len - 1] != '/' && filepath[len - 1] != '\\')
|
||||||
len--;
|
len--;
|
||||||
|
|
||||||
sound = BKE_libblock_alloc(bmain, ID_SO, filename + len);
|
sound = BKE_libblock_alloc(bmain, ID_SO, filepath + len);
|
||||||
BLI_strncpy(sound->name, filename, FILE_MAX);
|
BLI_strncpy(sound->name, filepath, FILE_MAX);
|
||||||
/* sound->type = SOUND_TYPE_FILE; */ /* XXX unused currently */
|
/* sound->type = SOUND_TYPE_FILE; */ /* XXX unused currently */
|
||||||
|
|
||||||
BKE_sound_load(bmain, sound);
|
BKE_sound_load(bmain, sound);
|
||||||
@@ -99,6 +99,37 @@ bSound *BKE_sound_new_file(struct Main *bmain, const char *filename)
|
|||||||
return sound;
|
return sound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bSound *BKE_sound_new_file_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists)
|
||||||
|
{
|
||||||
|
bSound *sound;
|
||||||
|
char str[FILE_MAX], strtest[FILE_MAX];
|
||||||
|
|
||||||
|
BLI_strncpy(str, filepath, sizeof(str));
|
||||||
|
BLI_path_abs(str, bmain->name);
|
||||||
|
|
||||||
|
/* first search an identical filepath */
|
||||||
|
for (sound = bmain->sound.first; sound; sound = sound->id.next) {
|
||||||
|
BLI_strncpy(strtest, sound->name, sizeof(sound->name));
|
||||||
|
BLI_path_abs(strtest, ID_BLEND_PATH(bmain, &sound->id));
|
||||||
|
|
||||||
|
if (BLI_path_cmp(strtest, str) == 0) {
|
||||||
|
sound->id.us++; /* officially should not, it doesn't link here! */
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = true;
|
||||||
|
return sound;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r_exists)
|
||||||
|
*r_exists = false;
|
||||||
|
return BKE_sound_new_file(bmain, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
bSound *BKE_sound_new_file_exists(struct Main *bmain, const char *filepath)
|
||||||
|
{
|
||||||
|
return BKE_sound_new_file_exists_ex(bmain, filepath, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
void BKE_sound_free(bSound *sound)
|
void BKE_sound_free(bSound *sound)
|
||||||
{
|
{
|
||||||
if (sound->packedfile) {
|
if (sound->packedfile) {
|
||||||
|
@@ -213,7 +213,7 @@ static int open_exec(bContext *C, wmOperator *op)
|
|||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
|
||||||
clip = BKE_movieclip_file_add(bmain, str);
|
clip = BKE_movieclip_file_add_exists(bmain, str);
|
||||||
|
|
||||||
if (!clip) {
|
if (!clip) {
|
||||||
if (op->customdata)
|
if (op->customdata)
|
||||||
|
@@ -441,12 +441,17 @@ static void rna_Main_metaballs_remove(Main *bmain, ReportList *reports, PointerR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static VFont *rna_Main_fonts_load(Main *bmain, ReportList *reports, const char *filepath)
|
static VFont *rna_Main_fonts_load(Main *bmain, ReportList *reports, const char *filepath, int check_existing)
|
||||||
{
|
{
|
||||||
VFont *font;
|
VFont *font;
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
font = BKE_vfont_load(bmain, filepath);
|
|
||||||
|
if (check_existing) {
|
||||||
|
font = BKE_vfont_load_exists(bmain, filepath);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
font = BKE_vfont_load(bmain, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
if (!font)
|
if (!font)
|
||||||
BKE_reportf(reports, RPT_ERROR, "Cannot read '%s': %s", filepath,
|
BKE_reportf(reports, RPT_ERROR, "Cannot read '%s': %s", filepath,
|
||||||
@@ -558,9 +563,17 @@ static void rna_Main_speakers_remove(Main *bmain, ReportList *reports, PointerRN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bSound *rna_Main_sounds_load(Main *bmain, const char *name)
|
static bSound *rna_Main_sounds_load(Main *bmain, const char *name, int check_existing)
|
||||||
{
|
{
|
||||||
bSound *sound = BKE_sound_new_file(bmain, name);
|
bSound *sound;
|
||||||
|
|
||||||
|
if (check_existing) {
|
||||||
|
sound = BKE_sound_new_file_exists(bmain, name);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sound = BKE_sound_new_file(bmain, name);
|
||||||
|
}
|
||||||
|
|
||||||
id_us_min(&sound->id);
|
id_us_min(&sound->id);
|
||||||
return sound;
|
return sound;
|
||||||
}
|
}
|
||||||
@@ -680,12 +693,18 @@ static void rna_Main_palettes_remove(Main *bmain, ReportList *reports, PointerRN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static MovieClip *rna_Main_movieclip_load(Main *bmain, ReportList *reports, const char *filepath)
|
static MovieClip *rna_Main_movieclip_load(Main *bmain, ReportList *reports, const char *filepath, int check_existing)
|
||||||
{
|
{
|
||||||
MovieClip *clip;
|
MovieClip *clip;
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
clip = BKE_movieclip_file_add(bmain, filepath);
|
|
||||||
|
if (check_existing) {
|
||||||
|
clip = BKE_movieclip_file_add_exists(bmain, filepath);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
clip = BKE_movieclip_file_add(bmain, filepath);
|
||||||
|
}
|
||||||
|
|
||||||
if (!clip)
|
if (!clip)
|
||||||
BKE_reportf(reports, RPT_ERROR, "Cannot read '%s': %s", filepath,
|
BKE_reportf(reports, RPT_ERROR, "Cannot read '%s': %s", filepath,
|
||||||
@@ -1212,8 +1231,7 @@ void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_ui_description(func, "Load a new image into the main database");
|
RNA_def_function_ui_description(func, "Load a new image into the main database");
|
||||||
parm = RNA_def_string_file_path(func, "filepath", "File Path", 0, "", "path of the file to load");
|
parm = RNA_def_string_file_path(func, "filepath", "File Path", 0, "", "path of the file to load");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
RNA_def_boolean(func, "check_existing", false, "",
|
RNA_def_boolean(func, "check_existing", false, "", "Using existing data-block if this file is already loaded");
|
||||||
"Check whether this image filepath is already used, and return existing datablock in this case");
|
|
||||||
/* return type */
|
/* return type */
|
||||||
parm = RNA_def_pointer(func, "image", "Image", "", "New image datablock");
|
parm = RNA_def_pointer(func, "image", "Image", "", "New image datablock");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
@@ -1358,6 +1376,7 @@ void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_ui_description(func, "Load a new font into the main database");
|
RNA_def_function_ui_description(func, "Load a new font into the main database");
|
||||||
parm = RNA_def_string_file_path(func, "filepath", "File Path", 0, "", "path of the font to load");
|
parm = RNA_def_string_file_path(func, "filepath", "File Path", 0, "", "path of the font to load");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
RNA_def_boolean(func, "check_existing", false, "", "Using existing data-block if this file is already loaded");
|
||||||
/* return type */
|
/* return type */
|
||||||
parm = RNA_def_pointer(func, "vfont", "VectorFont", "", "New font datablock");
|
parm = RNA_def_pointer(func, "vfont", "VectorFont", "", "New font datablock");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
@@ -1621,6 +1640,7 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_ui_description(func, "Add a new sound to the main database from a file");
|
RNA_def_function_ui_description(func, "Add a new sound to the main database from a file");
|
||||||
parm = RNA_def_string_file_path(func, "filepath", "Path", FILE_MAX, "", "path for the datablock");
|
parm = RNA_def_string_file_path(func, "filepath", "Path", FILE_MAX, "", "path for the datablock");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
RNA_def_boolean(func, "check_existing", false, "", "Using existing data-block if this file is already loaded");
|
||||||
/* return type */
|
/* return type */
|
||||||
parm = RNA_def_pointer(func, "sound", "Sound", "", "New text datablock");
|
parm = RNA_def_pointer(func, "sound", "Sound", "", "New text datablock");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
@@ -1844,6 +1864,7 @@ void RNA_def_main_movieclips(BlenderRNA *brna, PropertyRNA *cprop)
|
|||||||
RNA_def_function_ui_description(func, "Add a new movie clip to the main database from a file");
|
RNA_def_function_ui_description(func, "Add a new movie clip to the main database from a file");
|
||||||
parm = RNA_def_string_file_path(func, "filepath", "Path", FILE_MAX, "", "path for the datablock");
|
parm = RNA_def_string_file_path(func, "filepath", "Path", FILE_MAX, "", "path for the datablock");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
RNA_def_property_flag(parm, PROP_REQUIRED);
|
||||||
|
RNA_def_boolean(func, "check_existing", false, "", "Using existing data-block if this file is already loaded");
|
||||||
/* return type */
|
/* return type */
|
||||||
parm = RNA_def_pointer(func, "clip", "MovieClip", "", "New movie clip datablock");
|
parm = RNA_def_pointer(func, "clip", "MovieClip", "", "New movie clip datablock");
|
||||||
RNA_def_function_return(func, parm);
|
RNA_def_function_return(func, parm);
|
||||||
|
Reference in New Issue
Block a user