⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 be_checkfile.cpp

📁 另一个分形程序
💻 CPP
字号:
#include <ctype.h>#include <setjmp.h>#include "be_checkfile.h"#include "be_possitionio.h"#include "filter.h"#include "ui_helper.h"#include "ui.h"#include "xthread.h"#include "xerror.h"extern int translator;extern jmp_buf translatorjmp;/* Our goal is to check specified file and say whether it is XaoS file or not */BLocker g_calculation_lock("XaoS calculation lock");int XaoSCheckFile(BPositionIO * inSource){	char c=' ';	int r;	if(!inSource->Read(&c,1)) return 0;	while(c!='(') /* XaoS commands starts by left quote - ugly test, but can avoid simple mistakes */		      /* this also makes us to refuse empty file, that is in fact valid XaoS input file.			 hope this is not problem. */	{		/* skip comments */		if (c==';') {		   while(c!='\n')	              if(!inSource->Read(&c,1)) return 0;		}		/* tab, space, enter and line feed are alowed between commands */		if (!isspace(c) && c!='\r' && c!='\n') return 0;	        if(!inSource->Read(&c,1)) return 0;		/* OK W've passed first test. Now try to interpret it if thats works, accept it*/	}	inSource->Seek(0, SEEK_SET);	translator=1;        if(setjmp(translatorjmp)) {                /* OOPS something went realy badly. Try to return to app.                   hopefully it will work. */                xth_uninit();                g_calculation_lock.Unlock();                return 0;        }	union paletteinfo info;	//color_space out_space = optimaloutspace(g_settings.out_space);	info.truec.rmask=0xff;	info.truec.gmask=0xff00;	info.truec.bmask=0xff0000;	struct palette *pal=createpalette(0,0, TRUECOLOR, 0, 0, NULL, NULL, NULL, NULL, &info);	if (!pal)	{		x_error("Can not create palette (out of memory)\n");		return 0;	}	struct image *image=create_image_mem(1, 1, 2,  pal, (float)1, (float)1);	if (!image)	{		x_error("Can not create image (out of memory)");		destroypalette(pal);		return 0;	}        g_calculation_lock.Lock();	xio_file input=positionio_ropen(inSource);       	uih_registermenus(), 	xth_init(0);	xio_init("");	r=uih_renderimage(NULL, input, NULL, image, 0, NULL, 0 /*output messages */);	destroy_image(image);	destroypalette(pal);	xio_uninit();	xth_uninit();	uih_unregistermenus();	translator=0;        g_calculation_lock.Unlock();	return (r);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -