亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sys_rhap.m

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? M
字號:
#include <libc.h>
#import <AppKit/AppKit.h>
#include "../qcommon/qcommon.h"

int		curtime;
int		sys_frame_time;

void	Sys_UnloadGame (void)
{
}

void *GetGameAPI (void *import);

void	*Sys_GetGameAPI (void *parms)
{
	// we are hard-linked in, so no need to load anything
    return GetGameAPI (parms);
}

void Sys_CopyProtect (void)
{
}

char *Sys_GetClipboardData( void )
{
    return NULL;
}


//===========================================================================

int		hunkcount;

byte	*membase;
int		hunkmaxsize;
int		cursize;

//#define	VIRTUAL_ALLOC

void *Hunk_Begin (int maxsize)
{
    // reserve a huge chunk of memory, but don't commit any yet
    cursize = 0;
    hunkmaxsize = maxsize;
#ifdef VIRTUAL_ALLOC
    membase = VirtualAlloc (NULL, maxsize, MEM_RESERVE, PAGE_NOACCESS);
#else
    membase = malloc (maxsize);
    memset (membase, 0, maxsize);
#endif
    if (!membase)
        Sys_Error ("VirtualAlloc reserve failed");
    return (void *)membase;
}

void *Hunk_Alloc (int size)
{
    void	*buf;

    // round to cacheline
    size = (size+31)&~31;

#ifdef VIRTUAL_ALLOC
    // commit pages as needed
//	buf = VirtualAlloc (membase+cursize, size, MEM_COMMIT, PAGE_READWRITE);
    buf = VirtualAlloc (membase, cursize+size, MEM_COMMIT, PAGE_READWRITE);
    if (!buf)
    {
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &buf, 0, NULL);
        Sys_Error ("VirtualAlloc commit failed.\n%s", buf);
    }
#endif
    cursize += size;
    if (cursize > hunkmaxsize)
        Sys_Error ("Hunk_Alloc overflow");

    return (void *)(membase+cursize-size);
}

int Hunk_End (void)
{

    // free the remaining unused virtual memory
#if 0
    void	*buf;

    // write protect it
    buf = VirtualAlloc (membase, cursize, MEM_COMMIT, PAGE_READONLY);
    if (!buf)
        Sys_Error ("VirtualAlloc commit failed");
#endif

    hunkcount++;
//Com_Printf ("hunkcount: %i\n", hunkcount);
    return cursize;
}

void Hunk_Free (void *base)
{
    if ( base )
#ifdef VIRTUAL_ALLOC
        VirtualFree (base, 0, MEM_RELEASE);
#else
        free (base);
#endif

    hunkcount--;
}


//===========================================================================


void Sys_Mkdir (char *path)
{
	if (mkdir (path, 0777) != -1)
		return;
	if (errno != EEXIST)
		Com_Error (ERR_FATAL, "mkdir %s: %s",path, strerror(errno)); 
}

char	*Sys_FindFirst (char *path, unsigned musthave, unsigned canthave)
{
    return NULL;
}

char	*Sys_FindNext (unsigned musthave, unsigned canthave)
{
    return NULL;
}

void	Sys_FindClose (void)
{
}

/*
================
Sys_Milliseconds
================
*/
int Sys_Milliseconds (void)
{
	struct timeval tp;
	struct timezone tzp;
	static int		secbase;

	gettimeofday(&tp, &tzp);
	
	if (!secbase)
	{
		secbase = tp.tv_sec;
		return tp.tv_usec/1000;
	}
	
    curtime = (tp.tv_sec - secbase)*1000 + tp.tv_usec/1000;

    return curtime;
}

/*
================
Sys_Error
================
*/
void Sys_Error (char *error, ...)
{
	va_list		argptr;
	char		string[1024];
	
// change stdin to non blocking
	fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) & ~FNDELAY);

	va_start (argptr,error);
	vsprintf (string,error,argptr);
	va_end (argptr);
	printf ("Fatal error: %s\n",string);
	
	if (!NSApp)
	{	// appkit isn't running, so don't try to pop up a panel
		exit (1);
	}
        NSRunAlertPanel (@"Fatal error",[NSString stringWithCString: string]
                         ,@"exit",NULL,NULL);
	[NSApp terminate: NULL];
        exit(1);
}

/*
================
Sys_Printf
================
*/
void	Sys_ConsoleOutput (char *text)
{
	char		*t_p;
	int			l, r;
	
	l = strlen(text);
	t_p = text;
	
// make sure everything goes through, even though we are non-blocking
	while (l)
	{
		r = write (1, text, l);
		if (r != l)
			sleep (0);
		if (r > 0)
		{
			t_p += r;
			l -= r;
		}
	}
}

/*
================
Sys_Quit
================
*/
void Sys_Quit (void)
{
// change stdin to blocking
	fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) & ~FNDELAY);

	if (!NSApp)
		exit (0);		// appkit isn't running

        [NSApp terminate:nil];
}


/*
================
Sys_Init
================
*/
void Sys_Init(void)
{
    moncontrol(0);	// turn off profiling except during real Quake work

// change stdin to non blocking
     fcntl (0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY);	
}


extern	NSWindow	*vid_window_i;

void Sys_AppActivate (void)
{
    [vid_window_i makeKeyAndOrderFront: nil];
}


/*
================
Sys_SendKeyEvents

service any pending appkit events
================
*/
void Sys_SendKeyEvents (void)
{
	NSEvent	*event;
	NSDate	*date;

	date = [NSDate date];
	do
	{
		event = [NSApp
            nextEventMatchingMask: 	0xffffffff
            untilDate:		date
            inMode:			@"NSDefaultRunLoopMode"
            dequeue:		YES];
		if (event)
			[NSApp	sendEvent: event];
	} while (event);

    // grab frame time 
    sys_frame_time = Sys_Milliseconds();
}


/*
================
Sys_ConsoleInput

Checks for a complete line of text typed in at the console, then forwards
it to the host command processor
================
*/
char *Sys_ConsoleInput (void)
{
	static char	text[256];
	int		len;

	len = read (0, text, sizeof(text));
	if (len < 1)
		return NULL;
	text[len-1] = 0;	// rip off the /n and terminate
	
	return text;
}


/*
=============
main
=============
*/
void main (int argc, char **argv)
{
    int		frame;
    NSAutoreleasePool *pool;
	int		oldtime, t;
        
    pool = [[NSAutoreleasePool alloc] init];
        
    Qcommon_Init (argc, argv);

    [pool release];

    oldtime = Sys_Milliseconds ();
    while (1)
    {
        pool =[[NSAutoreleasePool alloc] init];

        if (++frame > 10)
            moncontrol(1);// profile only while we do each Quake frame

		t = Sys_Milliseconds ();
        Qcommon_Frame (t - oldtime);
		oldtime = t;
        moncontrol(0);

        [pool release];
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区精品在线观看| 亚洲精品视频在线看| 亚洲精品免费视频| 美女任你摸久久| 色综合天天综合| 欧美激情在线一区二区| 奇米亚洲午夜久久精品| 91精彩视频在线| 国产午夜精品一区二区三区四区| 亚洲.国产.中文慕字在线| 99视频热这里只有精品免费| 久久先锋资源网| 日韩av一级电影| 欧美日韩免费高清一区色橹橹| 亚洲欧洲无码一区二区三区| 国产精品一区二区黑丝| 欧美电影免费提供在线观看| 午夜日韩在线电影| 欧洲国产伦久久久久久久| 亚洲色图都市小说| av在线一区二区三区| 国产精品三级视频| 国产成人一区二区精品非洲| 欧美xingq一区二区| 免费视频最近日韩| 日韩一区二区三区四区| 蜜臀av性久久久久蜜臀av麻豆| 日本韩国精品在线| 亚洲免费观看高清完整版在线观看熊| 成人av在线电影| 欧美国产精品中文字幕| 成人av免费观看| 久久久精品中文字幕麻豆发布| 国产真实乱对白精彩久久| 亚洲精品一线二线三线无人区| 激情六月婷婷久久| 久久久久国产免费免费| 成人av电影观看| 亚洲欧美偷拍另类a∨色屁股| www.欧美亚洲| 亚洲精品大片www| 欧美日韩在线播| 日韩电影在线免费| 久久综合国产精品| 成人午夜看片网址| 国产精品美女久久久久久久网站| 成人18精品视频| 一区二区三区四区中文字幕| 欧美三级一区二区| 麻豆精品国产传媒mv男同| 在线观看网站黄不卡| 天天操天天色综合| 精品国产精品网麻豆系列| 国产suv一区二区三区88区| 亚洲欧美日韩电影| 777欧美精品| 国产乱码一区二区三区| 国产精品久久久久久久久免费丝袜| 91免费版pro下载短视频| 亚洲国产精品麻豆| 久久久久久久久久久久久女国产乱 | 亚洲私人影院在线观看| 欧美羞羞免费网站| 黄色日韩三级电影| 中文字幕一区二区三区四区不卡 | 国产成人在线电影| 一区二区三区四区激情| 欧美va天堂va视频va在线| 成人精品免费看| 午夜亚洲国产au精品一区二区| 亚洲精品一区二区三区福利| voyeur盗摄精品| 麻豆精品视频在线观看免费 | 国产精品麻豆一区二区| 欧美性感一类影片在线播放| 老司机午夜精品99久久| 亚洲少妇最新在线视频| 日韩美女视频一区二区在线观看| 91丨九色丨尤物| 日韩不卡手机在线v区| 自拍偷自拍亚洲精品播放| 日韩视频一区在线观看| av在线播放一区二区三区| 六月丁香综合在线视频| 亚洲国产一区视频| 国产精品国产三级国产| 精品盗摄一区二区三区| 精品视频色一区| 成人免费毛片app| 偷拍一区二区三区| 亚洲欧美日韩国产另类专区| 国产日产欧美一区| 日韩欧美一区二区视频| 欧美日韩国产一级片| 色又黄又爽网站www久久| 福利视频网站一区二区三区| 精品一区二区三区免费视频| 青青草国产精品97视觉盛宴 | 国产精品国模大尺度视频| 2014亚洲片线观看视频免费| 日韩一级成人av| 91首页免费视频| 不卡的电视剧免费网站有什么| 国产最新精品精品你懂的| 日韩成人一级片| 偷拍与自拍一区| 亚州成人在线电影| 亚洲v中文字幕| 午夜精品福利一区二区蜜股av | 在线观看免费亚洲| 91影视在线播放| 波多野结衣的一区二区三区| 成人免费视频播放| 不卡av免费在线观看| 成人国产视频在线观看| va亚洲va日韩不卡在线观看| eeuss鲁片一区二区三区在线观看| 成人午夜伦理影院| 91在线国产观看| 91美女片黄在线观看| 91精品1区2区| 正在播放亚洲一区| 精品国产麻豆免费人成网站| 欧美精品一区二区三区蜜桃视频| 欧美成人在线直播| 久久精品亚洲精品国产欧美| 日本一区二区三区四区在线视频 | 日韩激情视频在线观看| 午夜激情久久久| 日本vs亚洲vs韩国一区三区二区| 久久激情五月激情| 丁香啪啪综合成人亚洲小说| 色综合久久久网| 欧美精品色综合| 精品剧情v国产在线观看在线| 久久久国产午夜精品| 中文字幕一区二区三区色视频| 亚洲激情成人在线| 免费成人小视频| 高清av一区二区| 欧美在线观看视频一区二区| 日韩欧美亚洲国产另类| 欧美韩国日本一区| 亚洲成人精品在线观看| 久久精品国产精品亚洲精品| 成人高清视频在线观看| 欧美日韩卡一卡二| 久久噜噜亚洲综合| 亚洲精品国产高清久久伦理二区| 美腿丝袜亚洲色图| 99久久国产免费看| 91精品福利在线一区二区三区 | 欧美日韩免费视频| 久久影院午夜论| 一区二区三区日韩在线观看| 老司机午夜精品| 在线观看视频一区二区| 久久久精品免费网站| 丝瓜av网站精品一区二区| 成人一级片在线观看| 91麻豆精品国产91久久久久久久久| 欧美国产精品中文字幕| 蜜臀av亚洲一区中文字幕| 91福利在线播放| 欧美国产欧美综合| 美脚の诱脚舐め脚责91| 欧美伊人久久久久久久久影院 | 99国产欧美久久久精品| 2019国产精品| 日韩电影在线一区| 欧美三级电影在线看| 国产精品久久毛片| 精品综合免费视频观看| 欧美日本国产一区| 亚洲精品国产无套在线观| www.欧美.com| 精品国产一区二区三区四区四| 亚洲综合视频在线观看| 91亚洲精品乱码久久久久久蜜桃| 精品国产亚洲在线| 日日摸夜夜添夜夜添国产精品| 91精品办公室少妇高潮对白| 中文字幕一区三区| 粉嫩aⅴ一区二区三区四区五区 | 亚洲精品国产一区二区精华液| 国产成人超碰人人澡人人澡| 日韩欧美你懂的| 日本不卡高清视频| 欧美精品1区2区| 亚洲国产三级在线| 在线免费观看一区| 综合婷婷亚洲小说| 色综合中文综合网| 欧美视频精品在线| 一区二区三区四区国产精品| 91原创在线视频| 亚洲欧美日韩久久| 91福利社在线观看| 亚洲一区成人在线| 欧美另类高清zo欧美|