myint main(myint argc, char *argv[]) { vwidth = 320; vheight = 200; return WolfMain(argc, argv); }
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; }
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); }
int main (int argc, char *argv[]) { return WolfMain(argc, argv); }
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); }