Exemplo n.º 1
0
int main (int argc, char **argv)
{
	extern bool VerbQuit, VerbAddOns, NoAddOns, EasterEgg, UseMMX, ShowColors, BuiltInTablet, ExportCstruct;
	extern int DebugLevel, SilentOperation;
	
	VerbQuit		= false;
	VerbAddOns		= false;
	NoAddOns		= false;
	ShowColors		= false;
	PatronizeMIME	= true;
	BuiltInTablet	= false;
	ExportCstruct	= false;
	NoSettings		= false;
	WriteSettings	= false;
	EasterEgg		= EASTER_EGG;
	gGlobalAlpha	= REGISTERED;
	DebugLevel		= 0;
	SilentOperation	= 0;

	UseMMX		= true;

	for (int i = 1; i < argc; i++)
	{
		if (argv[i][0] == '-')
		{
			switch (argv[i][1])
			{
			case 'v':
			{
				VerbAddOns = true;
				break;
			}
			case 'q':
			{
				VerbQuit = true;
				break;
			}
			case 'x':
			{
				NoAddOns = true;
				break;
			}
			case 'e':
			{
				EasterEgg = !EASTER_EGG;
				break;
			}
			case 'D':
			{
				DebugLevel = atoi (&(argv[i][2]));
				fprintf (stderr, "Debug level set to %d\n", DebugLevel);
				break;
			}
			case 'd':
			{
				NoSettings = true;
				break;
			}
			case 'w':
			{
				WriteSettings = true;
				break;
			}
			case 'S':
			{
				SilentOperation = atoi (&(argv[i][2]));;
				break;
			}
			case 'M':
			{
				UseMMX = false;
				break;
			}
			case 'C':
			{
				ExportCstruct = true;
				break;
			}
			case 'c':
			{
				ShowColors = true;
				break;
			}
			case 't':
			{
				BuiltInTablet = true;
				break;
			}
			case 'h':
			{
				fprintf (stderr, "Recognized command line options:\n");
				fprintf (stderr, "  -v    Verbose add-on loading (useful for debugging your own)\n");
				fprintf (stderr, "  -q    Verbose quitting\n");
				fprintf (stderr, "  -x    Don't load add-ons (faster launch time)\n");
				fprintf (stderr, "  -d    Use default settings (don't load settings)\n");
				fprintf (stderr, "  -w    Force saving of settings (use with -d)\n");
				fprintf (stderr, "  -Dn   Debug verbosity level\n");
				fprintf (stderr, "  -Sn   Silence level (scripting operation)\n");
				fprintf (stderr, "  -M    Don't use MMX\n");
				fprintf (stderr, "  -c    Show recognized RGB color names at startup\n");
				fprintf (stderr, "  -C    Enable export as C struct\n");
				fprintf (stderr, "  -t    Switch on builtin Wacom tablet support\n");
				fprintf (stderr, "  -h    Display this message\n");
				break;
			}
			default:
				fprintf (stderr, "Unrecognized command line option: '%c'\n(Becasso -h displays command line usage help)\n", argv[i][1]);
			}
		}
	}
	#if defined (TIME_LIMITED)
		struct tm *mytime;
		time_t mytimet = time (NULL);
	#endif
	
#if defined (__INTEL__)
	if (UseMMX)
		UseMMX	= mmx_available();
#else
	UseMMX		= false;
#endif

	if (UseMMX)
		verbose (1, "MMX detected\n");
	else
		verbose (1, "No MMX\n");
	
	if (BuiltInTablet)
		verbose (1, "Builtin Tablet support enabled\n");
		
	mainapp = new Becasso();
	setup_alphabuffer();

	if (DebugLevel)
	{
		extern const char *Version;
		fprintf (stderr, "Becasso version %s %s, built %s\n",
			Version, (gGlobalAlpha ? "(Registered)" : "(Unregistered)"), __DATE__);
	}

	size_t bsize, ssize;
	void *becassodata, *sumdata;
	app_info info;
	mainapp->GetAppInfo (&info);
	BFile file (&info.ref, O_RDONLY);
	BResources res (&file);
	if (!(becassodata = res.FindResource ('blog', 128, &bsize)))
		fprintf (stderr, "Becasso logo resource not found\n");
	if (!(sumdata = res.FindResource ('slog', 129, &ssize)))
		fprintf (stderr, "Sum logo resource not found\n");
	BScreen screen;
	BRect becassorect = BRect (0, 0, 231, 93);
	BRect sumrect = BRect (0, 0, 63, 83);
	BBitmap *becasso = new BBitmap (becassorect, (screen.ColorSpace() == B_COLOR_8_BIT) ? B_COLOR_8_BIT : B_RGB32);
	// This strange color space thing is because we can't store bitmaps in 16 bit depth, so we use
	// a 32bit version for this screen mode (which doesn't look too bad).
	BBitmap *sum = new BBitmap (sumrect, B_RGB32);
	becasso->SetBits (becassodata, bsize, 0, B_RGB32);
	sum->SetBits (sumdata, ssize, 0, B_RGB32);
	BRect center = BRect (0, 0, 280, 210);
	center.OffsetTo (screen.Frame().Width()/2 - 140, screen.Frame().Height()/2 - 105);
	splash = new SplashWindow (center, becasso, sum);
	splash->Minimize (SilentOperation >= 3);
	splash->Show();
	mainapp->LoadAddOns();
	#if defined (TIME_LIMITED)
		mytime = localtime (&mytimet);
//		if (mytime->tm_year == 97 && mytime->tm_mon < 11)
		if (mytime->tm_year == 97)
			mainapp->Run();
		else
		{
			BAlert *alert = new BAlert ("", "This demo version of Becasso has expired.\nOn http://www.sumware.demon.nl you can find info on obtaining a newer version.\nThanks for your interest in Becasso!", "OK", NULL, NULL, B_WIDTH_AS_USUAL, B_STOP_ALERT);
			alert->Go();
		}
	#else
		mainapp->Run();
	#endif
	delete mainapp;
//	delete BTranslatorRoster::Default();
	return 0;
}
Exemplo n.º 2
0
int main(int argc, char **argv) {
    static const float four_initial[4] = {2.0, 3.0, 4.0, 5.0};
    ALIGN_16 float four[4];
    const float expected[4] = {3.0, 4.0, 5.0, 6.0};
    int r=0;
    const int blocksize = 4;

/*
 * Test all implementations that the current CPU supports.
 */
#if HAVE_NEON
    if(neon_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "NEON",
                expected,
                increment_neon,
                blocksize);
    }
#endif
#if HAVE_AVX2
    if(avx2_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "AVX2",
                expected,
                increment_avx2,
                blocksize);
    }
#endif
#if HAVE_AVX
    if(avx_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "AVC",
                expected,
                increment_avx,
                blocksize);
    }
#endif
#if HAVE_SSE42
    if(sse42_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSR42",
                expected,
                increment_sse42,
                blocksize);
    }
#endif
#if HAVE_SSE41
    if(sse41_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSE41",
                expected,
                increment_sse41,
                blocksize);
    }
#endif
#if HAVE_SSSE3
    if(ssse3_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSSE3",
                expected,
                increment_ssse3,
                blocksize);
    }
#endif
#if HAVE_SSE3
    if(sse3_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSE3",
                expected,
                increment_sse3,
                blocksize);
    }
#endif
#if HAVE_SSE2
    if(sse2_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSE2",
                expected,
                increment_sse2,
                blocksize);
    }
#endif
#if HAVE_SSE
    if(sse_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "SSE",
                expected,
                increment_sse,
                blocksize);
    }
#endif
#if HAVE_MMX
    if(mmx_available()) {
        r += check_simd_implementation(four,
                four_initial,
                "MMX",
                expected,
                increment_mmx,
                blocksize);
    }
#endif
    r += check_simd_implementation(four,
            four_initial,
            "fallback",
            expected,
            increment_fallback,
            blocksize);
    return r;
}