Linux mini-HOWTO



              

Процедура - часть 5


static int scr_width, scr_height;

+ /* blank cursor - gets initialized in VID_Init, freed in VID_Shutdown */ + Cursor cursor; + /*-----------------------------------------------------------------------*/

//int texture_mode = GL_NEAREST; *************** *** 236,243 **** 0, GrabModeAsync, GrabModeAsync, win, ! None, CurrentTime);

#ifdef USE_DGA XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse); --- 239,247 ---- 0, GrabModeAsync, GrabModeAsync, win, ! cursor, CurrentTime); + Con_Printf("Cursor blanked.\n");

#ifdef USE_DGA XF86DGADirectVideo(dpy, DefaultScreen(dpy), XF86DGADirectMouse); *************** *** 350,355 **** --- 354,360 ---- if (!ctx) return;

+ XFreeCursor(dpy, cursor); glXDestroyContext(dpy, ctx); }

*************** *** 602,608 **** unsigned long mask; Window root; XVisualInfo *visinfo; ! S_Init();

Cvar_RegisterVariable (&vid_mode); --- 607,617 ---- unsigned long mask; Window root; XVisualInfo *visinfo; ! /* vars to make blank cursor */ ! Pixmap blank; ! XColor dummy; ! char data[1] = {0}; ! S_Init();

Cvar_RegisterVariable (&vid_mode); *************** *** 701,706 **** --- 710,720 ---- Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height);

vid.recalc_refdef = 1; // force a surface cache flush + + blank = XCreateBitmapFromData(dpy, win, data, 1, 1); + if(blank == None) fprintf(stderr, "error: out of memory.\n"); + cursor = XCreatePixmapCursor(dpy, blank, blank, &dummy, &dummy, 0, 0); + XFreePixmap(dpy, blank); }

void Sys_SendKeyEvents(void)

*************************** конец patchfile ************************************

Возможно удобно связать некоторые клавиши на консоли quake, чтобы переключать режим захвата мыши:

bind q "_windowed_mouse 0" bind w "_windowed_mouse 1"

  • Сборка (наконец-то!)

    Запустите "make build_release", без параметров, оттуда, где расположен Makefile:

    cd q1src/QW make build_release

    Если все прошло хорошо, вы получите бинарный файл, glqwcl.glx, в каталоге releasei386-glibc. Скопируйте файл glqwcl.glx в другой каталог (например "qw"), и из каталога установки quake скопируйте каталог id1 и все остальные каталоги игры (ctf, Fortress и т.п.) в новый каталог quakeworld.




  • Содержание  Назад  Вперед