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

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

?? thinlib.c

?? 十七種模擬器源代碼 非常有用的作課程設計不可缺少的
?? C
字號:
#include <stdlib.h>#include <string.h>#include "fb.h"#include "input.h"#include "rc.h"#include "pcm.h"#include "thinlib.h"struct pcm pcm;static byte *backbuf;static volatile int audio_int;static int samplerate = 44100;static int sound = 1;static int stereo = 0;struct fb fb;static bitmap_t *screen = NULL;static int vmode[3] = { 320, 200, 8 };rcvar_t vid_exports[] = {	RCV_VECTOR("vmode", vmode, 3),	RCV_END};rcvar_t pcm_exports[] ={	RCV_BOOL("sound", &sound),	RCV_INT("samplerate", &samplerate),	RCV_INT("stereo", &stereo),	RCV_END};/* hardware audio buffer fill */static void _audio_callback(void *buf, int len){	memcpy(buf, backbuf, len);	audio_int = 1;}void pcm_init(){	thinsound_t params;	if (!sound)	{		pcm.hz = 11025;		pcm.len = 4096;		pcm.buf = (byte *) malloc(pcm.len);		pcm.pos = 0;		pcm.stereo = stereo;		return;	}	params.sample_rate = samplerate;	params.frag_size = samplerate / 60;	params.format = THIN_SOUND_8BIT;	if (stereo)		params.format |= THIN_SOUND_STEREO;	else		params.format |= THIN_SOUND_MONO;	params.callback = _audio_callback;	if (thin_sound_init(&params))	{		sound = 0;		return;	}	pcm.hz = params.sample_rate;	pcm.len = params.frag_size;	pcm.stereo = (params.format & THIN_SOUND_STEREO) ? 1 : 0;	pcm.buf = (byte *) malloc(pcm.len);	if (!pcm.buf)		die("failed to allocate sound buffer\n");	memset(pcm.buf, 0, pcm.len);	pcm.pos = 0;	backbuf = (byte *) malloc(pcm.len);	if (!backbuf)		die("failed to allocate sound backbuffer\n");	memset(backbuf, 0, pcm.len);	thin_sound_start();}void pcm_close(){	if (sound)	{		thin_sound_stop();		thin_shutdown();	}	if (pcm.buf)		free(pcm.buf);	if (backbuf)		free(backbuf);	backbuf = 0;	memset(&pcm, 0, sizeof pcm);}int pcm_submit(){	if (!sound)	{		pcm.pos = 0;		return 0;	}	if (pcm.pos < pcm.len)		return 1;	while (!audio_int)		; /* spin */	memcpy(backbuf, pcm.buf, pcm.len);	audio_int = 0;	pcm.pos = 0;	return 1;}/* keyboard stuff... *//* keymap - mappings of the form { scancode, localcode } - from keymap.c */extern int keymap[][2];/* TODO: this is terrible. */static int mapscancode(int scan){	int i;	for (i = 0; keymap[i][0]; i++)		if (keymap[i][0] == scan)			return keymap[i][1];	return 0;}void ev_poll(){	int i;	keydata_t *key;	event_t ev;		key = thin_key_dequeue();	while (key)	{		ev.type = key->signal ? EV_PRESS : EV_RELEASE;		ev.code = mapscancode(key->key);		ev_postevent(&ev);		key = thin_key_dequeue();	}}void vid_preinit(){}void vid_init(){	int red_length, green_length, blue_length;	int red_offset, green_offset, blue_offset;	int gotmask = thin_init(THIN_VIDEO | THIN_SOUND | THIN_KEY);	if ((THIN_VIDEO | THIN_KEY) != (gotmask & (THIN_VIDEO | THIN_KEY)))		die("thinlib initialization failed.");	thin_key_set_repeat(false);	/* don't spam the graphics screen if we don't have soundcard */	thin_setlogfunc(NULL);	if (thin_vid_init(vmode[0], vmode[1], vmode[2]))		die("could not set video mode");	screen = thin_vid_lockwrite();	if (NULL == screen)		die("could not get ahold of video surface");	fb.w = screen->width;	fb.h = screen->height;	fb.pitch = screen->pitch;	fb.ptr = screen->data;	fb.pelsize = (screen->bpp + 7) / 8;	fb.indexed = (screen->bpp == 8) ? 1 : 0;	switch (screen->bpp)	{	case 8:		red_length = 0;		green_length = 0;		blue_length = 0;		red_offset = 0;		green_offset = 0;		blue_offset = 0;		break;	case 16:		red_length = 5;		green_length = 6;		blue_length = 5;		red_offset = 11;		green_offset = 5;		blue_offset = 0;		break;	case 32:		red_length = 8;		green_length = 8;		blue_length = 8;		red_offset = 16;		green_offset = 8;		blue_offset = 0;		break;	case 15:	case 24:	default:		die("i don't know what to do with %dbpp mode", screen->bpp);		break;	}	fb.cc[0].r = 8 - red_length;	fb.cc[1].r = 8 - green_length;	fb.cc[2].r = 8 - blue_length;	fb.cc[0].l = red_offset;	fb.cc[1].l = green_offset;	fb.cc[2].l = blue_offset;	fb.enabled = 1;	fb.dirty = 0;}void vid_close(){	fb.enabled = 0;	thin_shutdown();}void vid_settitle(char *title){}void vid_setpal(int i, int r, int g, int b){	rgb_t color;	color.r = r;	color.g = g;	color.b = b;	thin_vid_setpalette(&color, i, 1);}void vid_begin(){	screen = thin_vid_lockwrite();	fb.ptr = screen->data;	fb.pitch = screen->pitch;	fb.w = screen->width;	fb.h = screen->height;}void vid_end(){	thin_vid_freewrite(-1, NULL);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久网| 免费欧美在线视频| 久久久久久久久久久99999| 欧美一卡二卡三卡| 日韩三级免费观看| 日韩视频中午一区| 精品国产精品网麻豆系列| 26uuu另类欧美亚洲曰本| 久久影音资源网| 亚洲国产高清不卡| 亚洲欧洲综合另类在线| 一区二区三区中文字幕| 亚洲超碰精品一区二区| 日韩二区在线观看| 国产最新精品免费| 成人高清伦理免费影院在线观看| bt欧美亚洲午夜电影天堂| 91久久精品一区二区二区| 欧美亚一区二区| 精品免费国产二区三区 | 免费成人在线视频观看| 麻豆一区二区三| 国产乱子伦视频一区二区三区| 丁香婷婷综合色啪| 欧美视频在线播放| 日韩视频中午一区| 自拍偷自拍亚洲精品播放| 亚洲超碰97人人做人人爱| 韩国三级电影一区二区| 91啪亚洲精品| 日韩视频一区二区| 中文字幕在线一区免费| 天天操天天色综合| 成人晚上爱看视频| 6080日韩午夜伦伦午夜伦| 国产亚洲一区二区在线观看| 亚洲夂夂婷婷色拍ww47| 激情成人综合网| 欧美亚洲精品一区| 久久精品男人天堂av| 天堂久久一区二区三区| 不卡的av网站| 久久精品在这里| 日韩国产欧美视频| 一本大道综合伊人精品热热| 26uuu国产在线精品一区二区| 1区2区3区精品视频| 精彩视频一区二区| 911精品国产一区二区在线| 国产精品蜜臀在线观看| 精品一区二区综合| 欧美丝袜第三区| 国产精品久久福利| 国产精品亚洲第一| 精品日韩欧美一区二区| 首页国产欧美日韩丝袜| 欧美在线免费视屏| 国产精品国产精品国产专区不蜜| 久久99精品一区二区三区三区| 欧美日韩精品一区二区三区四区 | 91亚洲国产成人精品一区二区三| 日韩三级视频在线观看| 亚洲最新在线观看| 99久久精品免费看国产| 国产精品沙发午睡系列990531| 麻豆久久久久久久| 欧美一区二区三区四区五区| 亚洲成av人片一区二区| 欧美日精品一区视频| 一区二区日韩电影| 欧美色精品在线视频| 亚洲成人av在线电影| 精品视频一区二区不卡| 亚洲成av人片一区二区梦乃| 欧美性大战xxxxx久久久| 一片黄亚洲嫩模| 欧美日韩国产小视频在线观看| 亚洲午夜激情av| 欧美一级欧美三级在线观看| 蜜桃久久久久久| 精品国产亚洲在线| 国产乱码精品一区二区三区忘忧草 | 亚洲五码中文字幕| 欧美色视频在线观看| 天堂av在线一区| 日韩欧美中文字幕精品| 国产老肥熟一区二区三区| 国产农村妇女精品| 91浏览器打开| 亚洲国产精品久久不卡毛片 | 波多野结衣在线一区| 国产精品网站一区| 91久久精品一区二区| 视频一区中文字幕国产| 久久综合久久鬼色中文字| 成人深夜视频在线观看| 亚洲一区二区三区爽爽爽爽爽| 欧美蜜桃一区二区三区 | 亚洲国产精品精华液2区45| av一二三不卡影片| 五月开心婷婷久久| 久久婷婷国产综合精品青草| 99精品一区二区| 麻豆91在线播放| 中文无字幕一区二区三区| 色老汉一区二区三区| 毛片av一区二区| 国产精品国产三级国产有无不卡| 欧美视频一区二| 国产精品一区二区久久精品爱涩| 亚洲女爱视频在线| 精品久久久久一区二区国产| 99久久精品一区二区| 精品在线免费视频| 亚洲一区二区三区影院| 国产欧美精品在线观看| 欧美精品丝袜中出| av资源网一区| 国产真实乱偷精品视频免| 夜夜操天天操亚洲| 国产精品网曝门| 精品美女在线播放| 欧美日韩日日夜夜| 91日韩精品一区| 国产福利电影一区二区三区| 午夜精品福利视频网站| 亚洲图片欧美激情| 国产三级欧美三级日产三级99| 欧美视频三区在线播放| 风流少妇一区二区| 精品一区二区免费看| 日韩中文欧美在线| 伊人夜夜躁av伊人久久| 欧美国产精品中文字幕| 久久精品视频免费观看| 久久亚洲二区三区| 日韩欧美一区二区在线视频| 91福利资源站| 欧美在线制服丝袜| 在线精品视频免费播放| 99国产欧美另类久久久精品| 成人午夜看片网址| 国产a久久麻豆| 成人综合在线网站| 成人性生交大合| 成人免费精品视频| 菠萝蜜视频在线观看一区| 成人动漫精品一区二区| 福利一区福利二区| 成人精品视频一区| jlzzjlzz亚洲女人18| 成人高清av在线| 色婷婷精品大在线视频| 在线观看免费一区| 8x8x8国产精品| 日韩欧美你懂的| 2017欧美狠狠色| 国产精品毛片a∨一区二区三区 | 亚洲免费av在线| 亚洲精品精品亚洲| 亚洲一区二区三区四区五区中文 | 国产xxx精品视频大全| 国产精品自产自拍| 成人a免费在线看| 91麻豆精品在线观看| 欧美无人高清视频在线观看| 欧美日韩在线观看一区二区| 欧美裸体一区二区三区| 精品国产一二三| 中文字幕日韩精品一区| 夜夜嗨av一区二区三区四季av| 日欧美一区二区| 国产91清纯白嫩初高中在线观看| 99久久免费国产| 欧美一区二区三区视频在线| 久久久亚洲午夜电影| 一区二区三区四区不卡视频| 三级亚洲高清视频| 成人性生交大片| 在线播放国产精品二区一二区四区| 欧美大度的电影原声| 国产精品理伦片| 日韩av网站免费在线| 波多野结衣亚洲一区| 日韩欧美资源站| 亚洲激情第一区| 韩国欧美国产1区| 欧美日韩精品欧美日韩精品一综合| 日韩免费一区二区| 亚洲欧美日韩精品久久久久| 青青青爽久久午夜综合久久午夜 | 亚洲成av人片一区二区三区| 国产一区视频导航| 欧美日韩专区在线| 国产精品久久久久9999吃药| 精品夜夜嗨av一区二区三区| 欧美中文字幕一区二区三区| 久久亚洲二区三区| 肉肉av福利一精品导航| 色婷婷亚洲婷婷|