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

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

?? thintest.cpp

?? DC上的GB模擬器源代碼
?? CPP
字號:
/*
** thinlib (c) 2001 Matthew Conte (matt@conte.com)
**
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of version 2 of the GNU Library General 
** Public License as published by the Free Software Foundation.
**
** This program is distributed in the hope that it will be useful, 
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
** Library General Public License for more details.  To obtain a 
** copy of the GNU Library General Public License, write to the Free 
** Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**
** Any permitted reproduction of these routines, in whole or in part,
** must bear this legend.
**
**
** thintest.cpp
**
** thinlib test
** $Id: thintest.cpp,v 1.3 2001/03/12 06:06:55 matt Exp $
*/

#include <stdio.h>
#include <string.h>
#include <math.h>
#include "thinlib.h"

//#define  TEST_STEREO
#define  TEST_DPP

class test
{
public:
   test();
   ~test();
   void  run();

private:
   enum
   {
      SAMPLE_RATE = 44100,
      FRAGSIZE    = 256,
      VID_WIDTH   = 320,
      VID_HEIGHT  = 240,
      VID_BPP     = 8
   };

   int testSound();
   int testVideo();
   int testTimer();
   int testEvents();
};

test::test()
{
   int ret = thin_init(THIN_KEY | THIN_MOUSE | THIN_TIMER
                       | THIN_VIDEO | THIN_SOUND);
   THIN_ASSERT(-1 != ret);
}

test::~test()
{
   thin_shutdown();
}

static void fillbuf(void *user_data, void *buf, int size)
{
   static int pos = 0;
   UNUSED(user_data);

   while (size--)
   {
      *((uint8 *) buf)++ = 127 + (int8)(127.0 * sin(2 * PI * pos / 128));
#ifdef TEST_STEREO
      *((uint8 *) buf)++ = 127 + (int8)(127.0 * cos(2 * PI * pos / 128));
#endif
      pos = (pos + 1) & 1023;
   }
}

int test::testSound()
{
   thinsound_t params;

   params.sample_rate = SAMPLE_RATE;
   params.frag_size = FRAGSIZE;
#ifdef TEST_STEREO
   params.format = THIN_SOUND_STEREO | THIN_SOUND_8BIT;
#else
   params.format = THIN_SOUND_MONO | THIN_SOUND_8BIT;
#endif
   params.callback = fillbuf;
   params.user_data = NULL;

   if (thin_sound_init(&params))
      return -1;

   thin_sound_start();
   thin_sound_stop();

   return 0;
}

int test::testVideo()
{
   int i, x, y;
   bitmap_t *screen;
   bitmap_t *buffer;

   /* set up video */
   if (thin_vid_init(VID_WIDTH, VID_HEIGHT, VID_BPP, 0/*THIN_VIDEO_HWSURFACE*/))
      return -1;

   buffer = thin_bmp_create(VID_WIDTH, VID_HEIGHT, VID_BPP, 0);
   if (NULL == buffer)
      return -1;

   /* fill it up with something interesting */
   for (y = 0; y < buffer->height; y++)
      for (x = 0; x < buffer->width; x++)
         buffer->line[y][x] = x ^ y;

   /* blit it out 1000 times */
   for (i = 0; i < 1000; i++)
   {
      screen = thin_vid_lockwrite();
      if (NULL == screen)
         return -1;

      for (y = 0; y < screen->height; y++)
         memcpy(screen->line[y], buffer->line[y], screen->width);
         
      thin_vid_freewrite(-1, NULL);
   }

   thin_vid_shutdown();

   if (1000 != i)
      return -1;

   return 0;
}

static volatile int timer_ticks = 0;
static void timer_handler(void *param)
{
   (void) param;
   timer_ticks++;
}
THIN_LOCKED_STATIC_FUNC(timer_handler)

int test::testTimer()
{
   int last_ticks;

   THIN_LOCK_FUNC(timer_handler);
   THIN_LOCK_VAR(timer_ticks);

   /* one second intervals... */
   if (thin_timer_init(60, timer_handler, NULL))
      return -1;

   timer_ticks = last_ticks = 0;
   while (timer_ticks <= 60)
   {
      if (last_ticks != timer_ticks)
      {
         last_ticks = timer_ticks;
         thin_printf("%d 60 hz tick\n", last_ticks);
      }
   }

   thin_timer_shutdown();

   return 0;
}

int test::testEvents()
{
   thin_event_t event;
   bool done = false;

   thin_mouse_init(80, 20, 1);
   thin_joy_init();
   thin_dpp_init();
   thin_dpp_add(0x378, 0);

   thin_printf("event test: press ESC...");

   while (!done)
   {
      thin_event_gather();

      while (thin_event_get(&event))
      {
         switch (event.type)
         {
         case THIN_KEY_PRESS:
            if (event.data.keysym == THIN_KEY_ESC)
               done = true;
            thin_printf("key press\n");
            break;

         case THIN_KEY_RELEASE:
            thin_printf("key release\n");
            break;

         case THIN_MOUSE_MOTION:
            thin_printf("mouse motion\n");
            break;

         case THIN_MOUSE_BUTTON_PRESS:
            thin_printf("mouse button press\n");
            break;

         case THIN_MOUSE_BUTTON_RELEASE:
            thin_printf("mouse button release\n");
            break;

         case THIN_JOY_MOTION:
            thin_printf("joy motion\n");
            break;

         case THIN_JOY_BUTTON_PRESS:
            thin_printf("joy button press\n");
            break;

         case THIN_JOY_BUTTON_RELEASE:
            thin_printf("joy button release\n");
            break;

         default:
            break;
         }
      }
   }

   thin_dpp_shutdown();
   thin_joy_shutdown();
   thin_mouse_shutdown();

   return 0;
}

void test::run()
{
   if (testSound())
      return;

   if (testVideo())
      return;

   if (testTimer())
      return;

   if (testEvents())
      return;

   thin_printf("\ntest complete.\n");
}

int main(void)
{
   test *pTest = new test;

   pTest->run();

   delete pTest;

   return 0;
}

/*
** $Log: thintest.cpp,v $
** Revision 1.3  2001/03/12 06:06:55  matt
** better keyboard driver, support for bit depths other than 8bpp
**
** Revision 1.2  2001/02/01 06:28:26  matt
** thinlib now works under NT/2000
**
** Revision 1.1  2001/01/15 05:27:43  matt
** initial revision
**
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久97超碰国产精品超碰| 欧美精品一区二区三区蜜桃| 视频一区二区中文字幕| 欧美一区二区大片| 国产v综合v亚洲欧| 亚洲自拍偷拍图区| 久久亚洲综合色| 色天天综合色天天久久| 亚洲va在线va天堂| 久久精品夜色噜噜亚洲aⅴ| 91官网在线免费观看| 麻豆成人在线观看| 最新国产の精品合集bt伙计| 91黄色激情网站| av不卡免费电影| 美女久久久精品| 亚洲欧美视频在线观看| 精品久久久久久无| 99精品热视频| 国产一区二区三区四| 亚洲一区二区三区影院| 久久久不卡影院| 欧美人xxxx| 99久久久无码国产精品| 激情综合网av| 亚洲sss视频在线视频| 国产精品久久久久久久久快鸭| 91精品国产手机| 色8久久人人97超碰香蕉987| 国产精品888| 免费看黄色91| 午夜欧美一区二区三区在线播放| 国产精品电影一区二区三区| 精品国产一二三区| 在线不卡一区二区| 91美女福利视频| www.日韩在线| 美女视频黄 久久| 日韩和的一区二区| 一区二区三区欧美久久| 国产精品天天摸av网| 精品免费一区二区三区| 欧美剧在线免费观看网站 | 日本不卡一区二区三区高清视频| 日韩伦理av电影| 欧美国产日产图区| 久久亚区不卡日本| 精品美女一区二区三区| 欧美疯狂性受xxxxx喷水图片| av动漫一区二区| 高清不卡一二三区| 国产jizzjizz一区二区| 国产老妇另类xxxxx| 亚洲桃色在线一区| 综合亚洲深深色噜噜狠狠网站| 中文一区在线播放| 中文天堂在线一区| 国产日韩欧美精品一区| 国产亚洲欧美激情| 国产色91在线| 中文字幕第一区第二区| 国产亚洲污的网站| 欧美激情一区二区在线| 国产精品每日更新在线播放网址| 中文字幕第一页久久| 国产精品美女久久久久aⅴ| 中文字幕五月欧美| 亚洲视频一区二区在线| 免费观看日韩电影| 蜜臀99久久精品久久久久久软件 | 日韩欧美精品三级| 日韩一区二区三区免费看| 91精品免费在线| 欧美卡1卡2卡| 欧美精品一区视频| 国产视频在线观看一区二区三区 | 国产色91在线| 综合激情成人伊人| 亚洲亚洲人成综合网络| 亚洲蜜臀av乱码久久精品| 亚洲精品免费在线| 亚瑟在线精品视频| 精品影视av免费| 国产精品影音先锋| 久久精品国产亚洲高清剧情介绍 | 欧美日韩免费在线视频| 欧美本精品男人aⅴ天堂| 国产精品日韩精品欧美在线| 日韩精品乱码免费| av一区二区三区| 精品国产乱子伦一区| 亚洲一区二区精品视频| 精品在线视频一区| 欧美天堂一区二区三区| 国产三级欧美三级日产三级99| 亚洲国产欧美日韩另类综合| 国产高清不卡一区二区| 欧美日韩电影一区| 国产精品久久久久毛片软件| 麻豆91在线观看| 欧美调教femdomvk| 最好看的中文字幕久久| 国产伦精一区二区三区| 欧美欧美午夜aⅴ在线观看| 国产精品丝袜久久久久久app| 蜜臀91精品一区二区三区| 中文字幕欧美激情一区| 卡一卡二国产精品| 久久奇米777| 欧美日韩精品一区二区在线播放| 亚洲图片欧美一区| 精品sm捆绑视频| 成人av网址在线| 1区2区3区欧美| 国产精品久久综合| 欧美日韩一区二区三区在线看| 欧美优质美女网站| 国产精品久久久久久久久快鸭 | 经典一区二区三区| 欧美日韩成人高清| 亚洲一区在线观看免费观看电影高清 | 午夜精品aaa| 欧美艳星brazzers| 亚洲色图欧美偷拍| 色综合天天综合狠狠| 中文字幕一区二区三区乱码在线| 国产精品自产自拍| 久久久99精品免费观看| 精品一区二区在线免费观看| 91精品婷婷国产综合久久性色| 亚洲不卡在线观看| 欧美日韩激情一区二区| 亚洲高清中文字幕| 欧美日韩极品在线观看一区| 午夜视频在线观看一区二区| 91精品久久久久久久久99蜜臂| 午夜在线成人av| 欧美嫩在线观看| 日本亚洲一区二区| 欧美一级二级三级乱码| 免费成人在线视频观看| 欧美xingq一区二区| 国产毛片一区二区| 国产人妖乱国产精品人妖| 成人午夜电影小说| 国产精品麻豆一区二区| 日本高清不卡一区| 亚洲国产成人av| 日韩欧美在线观看一区二区三区| 美女网站在线免费欧美精品| 精品成人免费观看| 成人深夜福利app| 一区二区三区中文字幕电影| 欧美日韩国产一级二级| 九九热在线视频观看这里只有精品| 精品国产青草久久久久福利| 国产成人亚洲综合a∨婷婷图片| 中文字幕第一区二区| 色av成人天堂桃色av| 无码av中文一区二区三区桃花岛| 欧美一区二区网站| 国产99久久精品| 亚洲视频一二三区| 制服丝袜日韩国产| 激情图区综合网| 亚洲免费色视频| 欧美一区二区三区视频在线| 国产精品12区| 亚洲精选视频在线| 精品乱人伦小说| 99精品在线免费| 久久不见久久见中文字幕免费| 国产精品久久三区| 欧美视频一区二区在线观看| 秋霞影院一区二区| 国产精品―色哟哟| 欧美精品高清视频| 成人免费视频播放| 亚洲777理论| 国产精品二三区| 日韩欧美国产不卡| 色婷婷av一区二区| 激情久久五月天| 亚洲国产一区二区三区青草影视| 精品福利av导航| 91传媒视频在线播放| 国产伦理精品不卡| 午夜久久久久久久久久一区二区| 欧美激情艳妇裸体舞| 欧美顶级少妇做爰| www.视频一区| 国内精品国产成人| 亚洲高清三级视频| 国产精品的网站| 精品女同一区二区| 欧美电影在哪看比较好| 99免费精品视频| 激情六月婷婷久久| 日日噜噜夜夜狠狠视频欧美人| 亚洲欧洲av一区二区三区久久|