Beispiel #1
0
myint main(myint argc, char *argv[])
{
	vwidth = 320;
	vheight = 200;
	
	return WolfMain(argc, argv);
}
Beispiel #2
0
jint JNICALL naMain(JNIEnv *pEnv, jobject pObj, jobjectArray pArgv, jobject pGameViewObj) {
	(*pEnv)->GetJavaVM(pEnv, &cachedJvm);
	jclass jGameViewCls = (*pEnv)->GetObjectClass(pEnv, pGameViewObj);
	cachedGameViewObj = (*pEnv)->NewGlobalRef(pEnv, pGameViewObj);

	jfieldID bitmapFID;
	bitmapFID = (*pEnv)->GetFieldID(pEnv, jGameViewCls, "mBitmap", "Landroid/graphics/Bitmap;");
	jobject pBitmap = (*pEnv)->GetObjectField(pEnv, cachedGameViewObj, bitmapFID);

	AndroidBitmapInfo linfo;
	int lret;
	//1. retrieve information about the bitmap
	if ((lret = AndroidBitmap_getInfo(pEnv, pBitmap, &linfo)) < 0) {
		LOGE(1, "AndroidBitmap_getinfo failed! error = %d", lret);
		return -1;
	}
	if (linfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888) {
		LOGE(1, "bitmap format is not rgba_8888!");
		return- 1;
	}
	//2. lock the pixel buffer and retrieve a pointer to it
	if ((lret = AndroidBitmap_lockPixels(pEnv, pBitmap, &gBitmap)) < 0) {
		LOGE(1, "AndroidBitmap_lockpixels() failed! error = %d", lret);
		return -1;
	}
	//get the arguments
	jsize argc =  (*pEnv)->GetArrayLength(pEnv, pArgv);
	char** argv = (char**) malloc(sizeof(char*)*argc);
	int i;
	for (i = 0; i < argc; i++) {
	    jstring anArgv = (jstring)(*pEnv)->GetObjectArrayElement(pEnv, pArgv, i);
	    const char *anArgvChars  = (*pEnv)->GetStringUTFChars(pEnv, anArgv, 0);
	    argv[i] = malloc(strlen(anArgvChars) + 1);
	    strcpy(argv[i], anArgvChars);
	    (*pEnv)->ReleaseStringUTFChars(pEnv, anArgv, anArgvChars);
	    LOGI(1, "%d %s", i, argv[i]);
	}
	LOGI(1, "No. of arguments: %d", argc);

	updateGameBitmapMID = (*pEnv)->GetMethodID(pEnv, jGameViewCls, "updateGameBitmap", "()V");
	if (NULL == updateGameBitmapMID) {
		LOGE(1, "error finding method jupdateGameBitmapMID");
		return -1;
	}
	//start the game
	LOGI(1, "start WolfMain");
	WolfMain(argc, argv);
	AndroidBitmap_unlockPixels(pEnv, pBitmap);
	(*pEnv)->DeleteGlobalRef(pEnv, cachedGameViewObj);
	cachedGameViewObj = NULL;
	return 0;
}
Beispiel #3
0
int main(int argc, char *argv[])
{
	if (argc != 2) {
		fprintf(stderr, "usage: %s <mac wolf3d resource fork>\n", argv[0]);
		exit(EXIT_FAILURE);
	}
	
	if (InitResources(argv[1])) {
		fprintf(stderr, "could not load %s\n", argv[1]);
		exit(EXIT_FAILURE);
	}
	
	InitData();
	
	GameViewSize = 3;	
	NewGameWindow(GameViewSize); 

	ClearTheScreen(BLACK);
	BlastScreen();
	
	return WolfMain(argc, argv);
}
Beispiel #4
0
int main (int argc, char *argv[])
{
	return WolfMain(argc, argv);
}
Beispiel #5
0
int main(int argc, char *argv[])
{
	XSetWindowAttributes attr;
	Colormap cmap;
	Pixmap bitmap;
	Cursor cursor;
	XColor bg = { 0 };
	XColor fg = { 0 };
	char data[8] = { 0x01 };
	char *display;
	const char *ext;
	int mask, major, minor, verbose = 0;
	int opt;
	
	while ((opt = getopt(argc, argv, "v")) != -1) {
		switch(opt) {
		case 'v':
			verbose = 1;
			break;
		default:
			fprintf(stderr, "%d (%c) is unknown to me\n", opt, opt);
			break;
		}
	}
	
	if ((argc - optind) != 1) {
		fprintf(stderr, "usage: %s <mac wolf3d resource fork>\n", argv[0]);
		exit(EXIT_FAILURE);
	}
	
	if (InitResources(argv[optind])) {
		fprintf(stderr, "could not load %s\n", argv[optind]);
		exit(EXIT_FAILURE);
	}
	
	display = getenv("DISPLAY");
	dpy = XOpenDisplay(getenv(display));
	if (dpy == NULL) {
		fprintf(stderr, "Unable to open display %s\n", XDisplayName(display));
		exit(EXIT_FAILURE);
	}
	
	screen = DefaultScreen(dpy);
	
	root = RootWindow(dpy, screen);
	
	if (glXQueryExtension(dpy, NULL, NULL) == False) {
		fprintf(stderr, "Display %s does not support the GLX Extension\n", XDisplayName(display));
		exit(EXIT_FAILURE);
	}
	
	if (glXQueryVersion(dpy, &major, &minor) == False) {
		fprintf(stderr, "glXQueryVersion returned False?\n");
		exit(EXIT_FAILURE);
	} else if (verbose) {
		printf("GLX Version %d.%d\n", major, minor);
		printf("GLX Client:\n");
		printf("GLX_VENDOR: %s\n", glXGetClientString(dpy, GLX_VENDOR));
		printf("GLX_VERSION: %s\n", glXGetClientString(dpy, GLX_VERSION));
		printf("GLX_EXTENSIONS: %s\n", glXGetClientString(dpy, GLX_EXTENSIONS));
		printf("GLX Server:\n");
		printf("GLX_VENDOR: %s\n", glXQueryServerString(dpy, screen, GLX_VENDOR));
		printf("GLX_VERSION: %s\n", glXQueryServerString(dpy, screen, GLX_VERSION));
		printf("GLX_EXTENSIONS: %s\n", glXQueryServerString(dpy, screen, GLX_EXTENSIONS));
		printf("Both:\n");
		printf("GLX_EXTENSIONS: %s\n", glXQueryExtensionsString(dpy, screen));
	}
	
	vi = glXChooseVisual(dpy, screen, attrib);
	if (vi == NULL) {
		fprintf(stderr, "No usable GL visual found on %s:%d\n", XDisplayName(display), screen);
		exit(EXIT_FAILURE);
	}
		
	ctx = glXCreateContext(dpy, vi, NULL, True);
	if (ctx == NULL) {
 		fprintf(stderr, "GLX context creation failed\n");
		exit(EXIT_FAILURE);
	}
	
	cmap = XCreateColormap(dpy, root, vi->visual, AllocNone);
	
	attr.colormap = cmap;
	attr.event_mask = KeyPressMask | KeyReleaseMask | ExposureMask |
	                  StructureNotifyMask;
	mask = CWColormap | CWEventMask;
	
	win = XCreateWindow(dpy, root, 0, 0, 640, 480, 0, CopyFromParent,
			    InputOutput, vi->visual, mask, &attr);
	
	if (win == None) {
		fprintf(stderr, "Unable to create window\n");
		exit(EXIT_FAILURE);
	}
	
	XSetWMProperties(dpy, win, NULL, NULL, argv, argc, None, None, None);
	
	XStoreName(dpy, win, "Wolfenstein 3D");
	XSetIconName(dpy, win, "Wolfenstein 3D");
	
	wmDeleteWindow = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
	XSetWMProtocols(dpy, win, &wmDeleteWindow, 1);
	
	bitmap = XCreateBitmapFromData(dpy, win, data, 8, 8);
	cursor = XCreatePixmapCursor(dpy, bitmap, bitmap, &fg, &bg, 0, 0);
	XDefineCursor(dpy, win, cursor);
	
	glXMakeCurrent(dpy, win, ctx);
	
 	if (verbose) {
		printf("GL Library:\n");
		printf("GL_VENDOR: %s\n", glGetString(GL_VENDOR));
		printf("GL_RENDERER: %s\n", glGetString(GL_RENDERER));
		printf("GL_VERSION: %s\n", glGetString(GL_VERSION));
		printf("GL_EXTENSIONS: %s\n", glGetString(GL_EXTENSIONS));
	}
	
	XMapWindow(dpy, win);
	XFlush(dpy);
	
	ext = (const char *)glGetString(GL_EXTENSIONS);
#ifdef GL_EXT_shared_texture_palette
	UseSharedTexturePalette = 0;
	if (CheckToken(ext, "GL_EXT_shared_texture_palette")) {
		pglColorTableEXT = glXGetProcAddressARB((unsigned const char *)"glColorTableEXT");
		if (pglColorTableEXT) {
			UseSharedTexturePalette = 0;
			printf("GL_EXT_shared_texture_palette found...\n");
		}
	}
#endif
	
	glShadeModel(GL_FLAT);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	
	InitData();
	
	SlowDown = 1;
	GameViewSize = 3;	
	NewGameWindow(GameViewSize); 

	ClearTheScreen(BLACK);
	BlastScreen();

	/* NoEnemies = 1; */
		
	return WolfMain(argc, argv);
}