image format arg parsing for creator.c

move these checks from creator into BKE's image.c, this way we dont need the defines for creator, scons was missing DDS, HDR & Cineon  for example and nobody noticed.
This commit is contained in:
Campbell Barton 2011-11-24 05:18:26 +00:00
parent 3b9b6051d9
commit df22957bfc
6 changed files with 52 additions and 76 deletions

View File

@ -319,20 +319,11 @@ def creator(env):
incs = ['#/intern/guardedalloc', '#/source/blender/blenlib', '#/source/blender/blenkernel', '#/source/blender/editors/include', '#/source/blender/blenloader', '#/source/blender/imbuf', '#/source/blender/renderconverter', '#/source/blender/render/extern/include', '#/source/blender/windowmanager', '#/source/blender/makesdna', '#/source/blender/makesrna', '#/source/gameengine/BlenderRoutines', '#/extern/glew/include', '#/source/blender/gpu', env['BF_OPENGL_INC']]
defs = []
if env['WITH_BF_QUICKTIME']:
incs.append(env['BF_QUICKTIME_INC'])
defs.append('WITH_QUICKTIME')
if env['WITH_BF_BINRELOC']:
incs.append('#/extern/binreloc/include')
defs.append('WITH_BINRELOC')
if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')
if env['WITH_BF_TIFF']:
defs.append('WITH_TIFF')
if env['WITH_BF_SDL']:
defs.append('WITH_SDL')

View File

@ -65,6 +65,8 @@ int BKE_imtype_supports_compress(const char imtype);
int BKE_imtype_supports_quality(const char imtype);
char BKE_imtype_valid_depths(const char imtype);
char BKE_imtype_from_arg(const char *arg);
struct anim *openanim(const char *name, int flags, int streamindex);
void image_de_interlace(struct Image *ima, int odd);

View File

@ -971,6 +971,47 @@ char BKE_imtype_valid_depths(const char imtype)
}
}
/* string is from command line --render-format arg, keep in sync with
* creator.c help info */
char BKE_imtype_from_arg(const char *imtype_arg)
{
if (!strcmp(imtype_arg,"TGA")) return R_IMF_IMTYPE_TARGA;
else if (!strcmp(imtype_arg,"IRIS")) return R_IMF_IMTYPE_IRIS;
#ifdef WITH_DDS
else if (!strcmp(imtype_arg,"DDS")) return R_IMF_IMTYPE_DDS;
#endif
else if (!strcmp(imtype_arg,"JPEG")) return R_IMF_IMTYPE_JPEG90;
else if (!strcmp(imtype_arg,"IRIZ")) return R_IMF_IMTYPE_IRIZ;
else if (!strcmp(imtype_arg,"RAWTGA")) return R_IMF_IMTYPE_RAWTGA;
else if (!strcmp(imtype_arg,"AVIRAW")) return R_IMF_IMTYPE_AVIRAW;
else if (!strcmp(imtype_arg,"AVIJPEG")) return R_IMF_IMTYPE_AVIJPEG;
else if (!strcmp(imtype_arg,"PNG")) return R_IMF_IMTYPE_PNG;
else if (!strcmp(imtype_arg,"AVICODEC")) return R_IMF_IMTYPE_AVICODEC;
else if (!strcmp(imtype_arg,"QUICKTIME")) return R_IMF_IMTYPE_QUICKTIME;
else if (!strcmp(imtype_arg,"BMP")) return R_IMF_IMTYPE_BMP;
#ifdef WITH_HDR
else if (!strcmp(imtype_arg,"HDR")) return R_IMF_IMTYPE_RADHDR;
#endif
#ifdef WITH_TIFF
else if (!strcmp(imtype_arg,"TIFF")) return R_IMF_IMTYPE_TIFF;
#endif
#ifdef WITH_OPENEXR
else if (!strcmp(imtype_arg,"EXR")) return R_IMF_IMTYPE_OPENEXR;
else if (!strcmp(imtype_arg,"MULTILAYER")) return R_IMF_IMTYPE_MULTILAYER;
#endif
else if (!strcmp(imtype_arg,"MPEG")) return R_IMF_IMTYPE_FFMPEG;
else if (!strcmp(imtype_arg,"FRAMESERVER")) return R_IMF_IMTYPE_FRAMESERVER;
#ifdef WITH_CINEON
else if (!strcmp(imtype_arg,"CINEON")) return R_IMF_IMTYPE_CINEON;
else if (!strcmp(imtype_arg,"DPX")) return R_IMF_IMTYPE_DPX;
#endif
#ifdef WITH_OPENJPEG
else if (!strcmp(imtype_arg,"JP2")) return R_IMF_IMTYPE_JP2;
#endif
else return R_IMF_IMTYPE_INVALID;
}
int BKE_add_image_extension(char *string, const char imtype)
{
const char *extension= NULL;

View File

@ -277,6 +277,8 @@ typedef struct ImageFormatData {
#define R_IMF_IMTYPE_XVID 32
#define R_IMF_IMTYPE_THEORA 33
#define R_IMF_IMTYPE_INVALID 255
/* ImageFormatData.flag */
#define R_IMF_FLAG_ZBUF (1<<0) /* was R_OPENEXR_ZBUF */
#define R_IMF_FLAG_PREVIEW_JPG (1<<1) /* was R_PREVIEW_JPG */

View File

@ -40,34 +40,6 @@ blender_include_dirs(
../blender/windowmanager
)
if(WITH_CODEC_QUICKTIME)
add_definitions(-DWITH_QUICKTIME)
endif()
if(WITH_IMAGE_OPENEXR)
add_definitions(-DWITH_OPENEXR)
endif()
if(WITH_IMAGE_OPENJPEG)
add_definitions(-DWITH_OPENJPEG)
endif()
if(WITH_IMAGE_TIFF)
add_definitions(-DWITH_TIFF)
endif()
if(WITH_IMAGE_DDS)
add_definitions(-DWITH_DDS)
endif()
if(WITH_IMAGE_CINEON)
add_definitions(-DWITH_CINEON)
endif()
if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
if(WITH_LIBMV)
blender_include_dirs(../../extern/libmv)
add_definitions(-DWITH_LIBMV)

View File

@ -77,6 +77,7 @@
#include "BKE_node.h"
#include "BKE_report.h"
#include "BKE_sound.h"
#include "BKE_image.h"
#include "IMB_imbuf.h" // for IMB_init
@ -300,7 +301,7 @@ static int print_help(int UNUSED(argc), const char **UNUSED(argv), void *data)
printf (" $BLENDER_USER_CONFIG Directory for user configuration files.\n");
printf (" $BLENDER_USER_SCRIPTS Directory for user scripts.\n");
printf (" $BLENDER_SYSTEM_SCRIPTS Directory for system wide scripts.\n");
printf (" $BLENDER_USER_DATAFILES Directory for user data files (icons, translations, ..).\n");
printf (" $BLENDER_USER_DAT`AFILES Directory for user data files (icons, translations, ..).\n");
printf (" $BLENDER_SYSTEM_DATAFILES Directory for system wide data files.\n");
printf (" $BLENDER_SYSTEM_PYTHON Directory for system python libraries.\n");
#ifdef WIN32
@ -582,47 +583,14 @@ static int set_image_type(int argc, const char **argv, void *data)
const char *imtype = argv[1];
Scene *scene= CTX_data_scene(C);
if (scene) {
char imtype_new;
const char imtype_new= BKE_imtype_from_arg(imtype);
if (!strcmp(imtype,"TGA")) imtype_new = R_IMF_IMTYPE_TARGA;
else if (!strcmp(imtype,"IRIS")) imtype_new = R_IMF_IMTYPE_IRIS;
#ifdef WITH_DDS
else if (!strcmp(imtype,"DDS")) imtype_new = R_IMF_IMTYPE_DDS;
#endif
else if (!strcmp(imtype,"JPEG")) imtype_new = R_IMF_IMTYPE_JPEG90;
else if (!strcmp(imtype,"IRIZ")) imtype_new = R_IMF_IMTYPE_IRIZ;
else if (!strcmp(imtype,"RAWTGA")) imtype_new = R_IMF_IMTYPE_RAWTGA;
else if (!strcmp(imtype,"AVIRAW")) imtype_new = R_IMF_IMTYPE_AVIRAW;
else if (!strcmp(imtype,"AVIJPEG")) imtype_new = R_IMF_IMTYPE_AVIJPEG;
else if (!strcmp(imtype,"PNG")) imtype_new = R_IMF_IMTYPE_PNG;
else if (!strcmp(imtype,"AVICODEC")) imtype_new = R_IMF_IMTYPE_AVICODEC;
else if (!strcmp(imtype,"QUICKTIME")) imtype_new = R_IMF_IMTYPE_QUICKTIME;
else if (!strcmp(imtype,"BMP")) imtype_new = R_IMF_IMTYPE_BMP;
#ifdef WITH_HDR
else if (!strcmp(imtype,"HDR")) imtype_new = R_IMF_IMTYPE_RADHDR;
#endif
#ifdef WITH_TIFF
else if (!strcmp(imtype,"TIFF")) imtype_new = R_IMF_IMTYPE_TIFF;
#endif
#ifdef WITH_OPENEXR
else if (!strcmp(imtype,"EXR")) imtype_new = R_IMF_IMTYPE_OPENEXR;
else if (!strcmp(imtype,"MULTILAYER")) imtype_new = R_IMF_IMTYPE_MULTILAYER;
#endif
else if (!strcmp(imtype,"MPEG")) imtype_new = R_IMF_IMTYPE_FFMPEG;
else if (!strcmp(imtype,"FRAMESERVER")) imtype_new = R_IMF_IMTYPE_FRAMESERVER;
#ifdef WITH_CINEON
else if (!strcmp(imtype,"CINEON")) imtype_new = R_IMF_IMTYPE_CINEON;
else if (!strcmp(imtype,"DPX")) imtype_new = R_IMF_IMTYPE_DPX;
#endif
#ifdef WITH_OPENJPEG
else if (!strcmp(imtype,"JP2")) imtype_new = R_IMF_IMTYPE_JP2;
#endif
else {
if (imtype_new == R_IMF_IMTYPE_INVALID) {
printf("\nError: Format from '-F / --render-format' not known or not compiled in this release.\n");
imtype_new= scene->r.im_format.imtype;
}
scene->r.im_format.imtype= imtype_new;
else {
scene->r.im_format.imtype= imtype_new;
}
}
else {
printf("\nError: no blend loaded. order the arguments so '-F / --render-format' is after the blend is loaded.\n");