예제 #1
0
파일: vid_dos.c 프로젝트: Blzut3/Engoo
/*
=================
VID_NumModes_f
=================
*/
void VID_NumModes_f (void)
{
	int		nummodes;

	nummodes = VID_NumModes ();
	if (nummodes == 1)
		Con_Printf ("%d video mode is available\n", VID_NumModes ());
	else
		Con_Printf ("%d video modes are available\n", VID_NumModes ());
}
예제 #2
0
파일: vid_dos.c 프로젝트: Blzut3/Engoo
/*
=================
VID_DescribeModes_f
=================
*/
void VID_DescribeModes_f (void)
{
	int			i, nummodes;
	char		*pinfo, *pheader;
	vmode_t		*pv;
	qboolean	na;

	na = false;

	nummodes = VID_NumModes ();
	for (i=0 ; i<nummodes ; i++)
	{
		pv = VID_GetModePtr (i);
		pinfo = VID_ModeInfo (i, &pheader);
		if (pheader)
			Con_Printf ("\n%s\n", pheader);

		if (VGA_CheckAdequateMem (pv->width, pv->height, pv->rowbytes,
			(pv->numpages == 1) || vid_nopageflip->value))
		{
			Con_Printf ("%2d: %s\n", i, pinfo);
		}
		else
		{
			Con_Printf ("**: %s\n", pinfo);
			na = true;
		}
	}

	if (na)
	{
		Con_Printf ("\n[**: not enough system RAM for mode]\n");
	}
}
예제 #3
0
// vid_mode <modenum>
//
static void VID_Command_Mode_f(void)
{
    int modenum;

    if (COM_Argc() != 2)
    {
        CONS_Printf(M_GetText("vid_mode <modenum> : set video mode, current video mode %i\n"), vid.modenum);
        return;
    }

    modenum = atoi(COM_Argv(1));

    if (modenum > VID_NumModes() || modenum < NUMSPECIALMODES) // don't accept the windowed mode 0
        CONS_Printf("%s", M_GetText("No video modes present\n"));
    else
        setmodeneeded = modenum + 1; // request vid mode change
}
예제 #4
0
// vid_modelist
//
static void VID_Command_ModeList_f(void)
{
    int i, numodes;
    const char *pinfo;
    vmode_t *pv;

    numodes = VID_NumModes();
    for (i = NUMSPECIALMODES; i < numodes; i++)
    {
        pv = VID_GetModePtr(i);
        pinfo = VID_GetModeName(i);

        if (pv->bytesperpixel == 1)
            CONS_Printf("%d: %s\n", i, pinfo);
        else
            CONS_Printf("%d: %s (hicolor)\n", i, pinfo);
    }
}
예제 #5
0
// vid_modeinfo <modenum>
//
static void VID_Command_ModeInfo_f(void)
{
    vmode_t *pv;
    int modenum;

    if (COM_Argc() != 2)
        modenum = vid.modenum; // describe the current mode
    else
        modenum = atoi(COM_Argv(1)); // the given mode number

    if (modenum > VID_NumModes() || modenum < NUMSPECIALMODES) // don't accept the windowed modes
    {
        CONS_Printf("%s", M_GetText("No such video mode\n"));
        return;
    }

    pv = VID_GetModePtr(modenum);

    CONS_Printf("%s\n", VID_GetModeName(modenum));
    CONS_Printf(M_GetText("width: %d\nheight: %d\n"), pv->width, pv->height);
    if (rendermode == render_soft)
        CONS_Printf(M_GetText("bytes per scanline: %d\nbytes per pixel: %d\nnumpages: %d\n"), pv->rowbytes, pv->bytesperpixel, pv->numpages);
}
예제 #6
0
static void VID_NumModes_f (void)
{
	Con_Printf("%d modes\n", VID_NumModes());
}
예제 #7
0
파일: vid_dos.c 프로젝트: Blzut3/Engoo
/*
================
VID_MenuDraw
================
*/
void VID_MenuDraw (void)
{
	qpic_t		*p;
	char		*ptr;
	int			nummodes, i, j, column, row, dup;
	char		temp[100];

	vid_wmodes = 0;
	nummodes = VID_NumModes ();

	p = Draw_CachePic ("gfx/vidmodes.lmp");
	M_DrawPic ( (320-p->width)/2, 4, p);

	for (i=0 ; i<nummodes ; i++)
	{
		if (vid_wmodes < MAX_MODEDESCS)
		{
			if (i != 1)
			{
				ptr = VID_GetModeDescription (i);

				if (ptr)
				{
					dup = 0;

					for (j=0 ; j<vid_wmodes ; j++)
					{
						if (!strcmp (modedescs[j].desc, ptr))
						{
							if (modedescs[j].modenum != 0)
							{
								modedescs[j].modenum = i;
								dup = 1;

								if (i == vid_modenum)
									modedescs[j].iscur = 1;
							}
							else
							{
								dup = 1;
							}

							break;
						}
					}

					if (!dup)
					{
						modedescs[vid_wmodes].modenum = i;
						modedescs[vid_wmodes].desc = ptr;
						modedescs[vid_wmodes].iscur = 0;

						if (i == vid_modenum)
							modedescs[vid_wmodes].iscur = 1;

						vid_wmodes++;
					}
				}
			}
		}
	}

	vid_column_size = (vid_wmodes + 2) / 3;

	column = 16;
	row = 36;

	for (i=0 ; i<vid_wmodes ; i++)
	{
		if (modedescs[i].iscur)
			M_PrintWhite (column, row, modedescs[i].desc);
		else
			M_Print (column, row, modedescs[i].desc);

		row += 8;

		if ((i % vid_column_size) == (vid_column_size - 1))
		{
			column += 13*8;
			row = 36;
		}
	}

// line cursor
	if (vid_testingmode)
	{
		sprintf (temp, "TESTING %s",
				modedescs[vid_line].desc);
		M_Print (13*8, 36 + MAX_COLUMN_SIZE * 8 + 8*4, temp);
		M_Print (9*8, 36 + MAX_COLUMN_SIZE * 8 + 8*6,
				"Please wait 5 seconds...");
	}
	else
	{
		M_Print (9*8, 36 + MAX_COLUMN_SIZE * 8 + 8,
				"Press Enter to set mode");
		M_Print (6*8, 36 + MAX_COLUMN_SIZE * 8 + 8*3,
				"T to test mode for 5 seconds");
		ptr = VID_GetModeDescription (vid_modenum);
		sprintf (temp, "D to make %s the default", ptr);
		M_Print (6*8, 36 + MAX_COLUMN_SIZE * 8 + 8*5, temp);
		ptr = VID_GetModeDescription ((int)_vid_default_mode->value);

		if (ptr)
		{
			sprintf (temp, "Current default is %s", ptr);
			M_Print (7*8, 36 + MAX_COLUMN_SIZE * 8 + 8*6, temp);
		}

		M_Print (15*8, 36 + MAX_COLUMN_SIZE * 8 + 8*8,
				"Esc to exit");

		row = 36 + (vid_line % vid_column_size) * 8;
		column = 8 + (vid_line / vid_column_size) * 13*8;

		M_DrawCharacter (column, row, 12+((int)(realtime*4)&1));
	}
}
예제 #8
0
// vid_nummodes
//
static void VID_Command_NumModes_f(void)
{
    CONS_Printf(M_GetText("%d video mode(s) available(s)\n"), VID_NumModes());
}