本文整理汇总了C++中ImFileType::is_a方法的典型用法代码示例。如果您正苦于以下问题:C++ ImFileType::is_a方法的具体用法?C++ ImFileType::is_a怎么用?C++ ImFileType::is_a使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImFileType
的用法示例。
在下文中一共展示了ImFileType::is_a方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IMB_ispic_name
static int IMB_ispic_name(const char *name)
{
ImFileType *type;
struct stat st;
int fp, buf[10];
if(UTIL_DEBUG) printf("IMB_ispic_name: loading %s\n", name);
if(stat(name,&st) == -1)
return FALSE;
if(((st.st_mode) & S_IFMT) != S_IFREG)
return FALSE;
if((fp = open(name,O_BINARY|O_RDONLY)) < 0)
return FALSE;
if(read(fp, buf, 32) != 32) {
close(fp);
return FALSE;
}
close(fp);
/* XXX move this exception */
if((BIG_LONG(buf[0]) & 0xfffffff0) == 0xffd8ffe0)
return JPG;
for(type=IMB_FILE_TYPES; type->is_a; type++)
if(type->is_a((uchar*)buf))
return type->filetype;
return FALSE;
}
示例2: IMB_ispic
int IMB_ispic(const char *name)
{
/* increased from 32 to 64 because of the bitmaps header size */
#define HEADER_SIZE 64
unsigned char buf[HEADER_SIZE];
ImFileType *type;
struct stat st;
int fp;
if (UTIL_DEBUG) printf("IMB_ispic_name: loading %s\n", name);
if (BLI_stat(name, &st) == -1)
return FALSE;
if (((st.st_mode) & S_IFMT) != S_IFREG)
return FALSE;
if ((fp = BLI_open(name, O_BINARY | O_RDONLY, 0)) < 0)
return FALSE;
memset(buf, 0, sizeof(buf));
if (read(fp, buf, HEADER_SIZE) <= 0) {
close(fp);
return FALSE;
}
close(fp);
/* XXX move this exception */
if ((BIG_LONG(((int *)buf)[0]) & 0xfffffff0) == 0xffd8ffe0)
return JPG;
for (type = IMB_FILE_TYPES; type < IMB_FILE_TYPES_LAST; type++) {
if (type->is_a) {
if (type->is_a(buf)) {
return type->filetype;
}
}
else if (type->is_a_filepath) {
if (type->is_a_filepath(name)) {
return type->filetype;
}
}
}
return FALSE;
#undef HEADER_SIZE
}