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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? demo10_3.cpp

?? 一本外國(guó)人寫的關(guān)于3D游戲編程的書的源碼
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// DEMO10_3.CPP - Loading and playing a wav file
// with real-time manipulation

// INCLUDES ///////////////////////////////////////////////
#define WIN32_LEAN_AND_MEAN  

#include <windows.h>   // include important windows stuff
#include <windowsx.h> 
#include <mmsystem.h>
#include <iostream.h> // include important C/C++ stuff
#include <conio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <math.h>
#include <io.h>
#include <fcntl.h>

#include <ddraw.h>  // directX includes
#include <dsound.h>

// directx 7.0 compatibility

#ifndef DSBCAPS_CTRLDEFAULT
#define DSBCAPS_CTRLDEFAULT (DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME )
#endif

// DEFINES ////////////////////////////////////////////////

// defines for windows 
#define WINDOW_CLASS_NAME "WINCLASS1"  // class name

#define WINDOW_WIDTH  400              // size of window
#define WINDOW_HEIGHT 300
#define SCREEN_WIDTH  640              // size of screen
#define SCREEN_HEIGHT 480
#define SCREEN_BPP    8                // bits per pixel

#define MAX_SOUNDS     256 // max number of sounds in system at once 

// digital sound object state defines
#define SOUND_NULL     0 // " "
#define SOUND_LOADED   1
#define SOUND_PLAYING  2
#define SOUND_STOPPED  3


// MACROS /////////////////////////////////////////////////

// these read the keyboard asynchronously
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEY_UP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

// TYPES //////////////////////////////////////////////////

typedef unsigned short USHORT;
typedef unsigned short WORD;
typedef unsigned char  UCHAR;
typedef unsigned char  BYTE;

// this holds a single sound
typedef struct pcm_sound_typ
	{
	LPDIRECTSOUNDBUFFER dsbuffer;   // the ds buffer containing the sound
	int state;                      // state of the sound
	int rate;                       // playback rate
	int size;                       // size of sound
	int id;                         // id number of the sound
	} pcm_sound, *pcm_sound_ptr;

// PROTOTYPES /////////////////////////////////////////////

int Game_Init(void *parms=NULL);
int Game_Shutdown(void *parms=NULL);
int Game_Main(void *parms=NULL);
int DSound_Load_WAV(char *filename, int control_flags = DSBCAPS_CTRLDEFAULT);

// GLOBALS ////////////////////////////////////////////////

HWND main_window_handle = NULL; // save the window handle
HINSTANCE main_instance = NULL; // save the instance
char buffer[80];                // used to print text

LPDIRECTSOUND		lpds;           // directsound interface pointer
DSBUFFERDESC		dsbd;           // directsound description
DSCAPS				dscaps;         // directsound caps
HRESULT				dsresult;       // general directsound result
DSBCAPS             dsbcaps;        // directsound buffer caps

LPDIRECTSOUNDBUFFER	lpdsbprimary,    // you won't need this normally
                    lpdsbsecondary;  // the sound buffers

WAVEFORMATEX        pcmwf;          // generic waveformat structure

pcm_sound			sound_fx[MAX_SOUNDS];    // the array of secondary sound buffers


HWND                freq_hwnd,      // window handles for controls
                    volume_hwnd,
                    pan_hwnd;


int                 sound_id = -1;  // id of sound we load for demo

// FUNCTIONS //////////////////////////////////////////////

LRESULT CALLBACK WindowProc(HWND hwnd, 
						    UINT msg, 
                            WPARAM wparam, 
                            LPARAM lparam)
{
// this is the main message handler of the system
PAINTSTRUCT	ps;		   // used in WM_PAINT
HDC			hdc;	   // handle to a device context

// what is the message 
switch(msg)
	{	
	case WM_CREATE: 
        {
		// do initialization stuff here
		return(0);
		} break;

    case WM_PAINT:
         {
         // start painting
         hdc = BeginPaint(hwnd,&ps);
        
         // first the static text
         // set the color
         SetTextColor(hdc,RGB(0,255,0));
         SetBkColor(hdc,RGB(0,0,0));
         SetBkMode(hdc,OPAQUE);

         TextOut(hdc,160-5*7,40-20,"VOLUME        ",         strlen("VOLUME        "));
         TextOut(hdc,160-5*13,100-20,"PLAYBACK RATE        ",strlen("PLAYBACK RATE        "));
         TextOut(hdc,160-5*14,160-20,"STEREO PANNING        ",strlen("STEREO PANNING        "));
         
         // end painting
         EndPaint(hwnd,&ps);
         return(0);
        } break;

///////////////////////////////////////////////////////////

    case WM_HSCROLL:
    case WM_VSCROLL:
        {
        int nscrollcode    = (int)LOWORD(wparam); // scroll bar value 
        int npos           = (int)HIWORD(wparam); // scroll box position 
        HWND hwndscrollbar = (HWND)lparam;        // handle of scroll bar 

        // get teh dc for printing
        hdc = GetDC(hwnd);
        
        // set the color
        SetTextColor(hdc,RGB(0,255,0));
        SetBkColor(hdc,RGB(0,0,0));
        SetBkMode(hdc,OPAQUE);
                
        // make sure that the scroll bar is being tracked
        if (nscrollcode==SB_THUMBPOSITION || 
            nscrollcode==SB_THUMBTRACK) 
        {
        // what scroll bar sent message
        if (hwndscrollbar==volume_hwnd)
           {
           // re-position scroll bar
           SetScrollPos(volume_hwnd, SB_CTL,npos,TRUE);
           sprintf(buffer,"VOLUME=%d       ",-npos);
           
           // output text
           TextOut(hdc,160-5*7,40-20,buffer,strlen(buffer)); 

           // set the volume
           sound_fx[sound_id].dsbuffer->SetVolume(-npos);

           } // end if
        else
        if (hwndscrollbar==freq_hwnd)
           {
           // re-position scroll bar
           SetScrollPos(freq_hwnd, SB_CTL,npos,TRUE);
           sprintf(buffer,"PLAYBACK RATE=%d      ",npos);
     
           // output text
           TextOut(hdc,160-5*13,100-20,buffer,strlen(buffer));

           // set the frequency
           sound_fx[sound_id].dsbuffer->SetFrequency(npos);
           } // end if
        // what scroll bar sent message
        else
        if (hwndscrollbar==pan_hwnd)
           {
           // re-position scroll bar
           SetScrollPos(pan_hwnd, SB_CTL,npos,TRUE);
           sprintf(buffer,"STEREO PANNING=%d      ",-(npos-10000));
           
           // output text
           TextOut(hdc,160-5*14,160-20,buffer,strlen(buffer));
 
           // set the stereo panning
           sound_fx[sound_id].dsbuffer->SetPan(-(npos-10000));
           } // end if
        
        } // end if

        // release the dc
        ReleaseDC(hwnd,hdc);

        // message has been processed
        return(0);

        } break;

///////////////////////////////////////////////////////////

	case WM_DESTROY: 
		{
		// kill the application			
		PostQuitMessage(0);
		return(0);
		} break;

	default:break;

    } // end switch

// process any messages that we didn't take care of 
return (DefWindowProc(hwnd, msg, wparam, lparam));

} // end WinProc

// WINMAIN ////////////////////////////////////////////////

int WINAPI WinMain(	HINSTANCE hinstance,
					HINSTANCE hprevinstance,
					LPSTR lpcmdline,
					int ncmdshow)
{

WNDCLASS winclass;	// this will hold the class we create
HWND	 hwnd;		// generic window handle
MSG		 msg;		// generic message
HDC      hdc;       // generic dc
PAINTSTRUCT ps;     // generic paintstruct

// first fill in the window class stucture
winclass.style			= CS_DBLCLKS | CS_OWNDC | 
                          CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc	= WindowProc;
winclass.cbClsExtra		= 0;
winclass.cbWndExtra		= 0;
winclass.hInstance		= hinstance;
winclass.hIcon			= LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor		= LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground	= (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName	= NULL; 
winclass.lpszClassName	= WINDOW_CLASS_NAME;

// register the window class
if (!RegisterClass(&winclass))
	return(0);

// create the window, note the use of WS_POPUP
if (!(hwnd = CreateWindow(WINDOW_CLASS_NAME, // class
						  "DirectSound WAV File Loading DEMO",	 // title
						  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
					 	  0,0,	   // x,y
						  WINDOW_WIDTH,  // width
                          WINDOW_HEIGHT, // height
						  NULL,	   // handle to parent 
						  NULL,	   // handle to menu
						  hinstance,// instance
						  NULL)))	// creation parms
return(0);

// save the window handle and instance in a global
main_window_handle = hwnd;
main_instance      = hinstance;

// create some scroll controls to change volume, frequency
// and panning

// create the volume control scroller
volume_hwnd = CreateWindow("SCROLLBAR", // class
						  "",	    // title
						  WS_CHILD | WS_VISIBLE,
					 	  80,40,	    // x,y
						  160,       // width
                          16,      // height
						  hwnd,	    // handle to parent 
						  NULL,	    // handle to menu
						  hinstance,// instance
						  NULL);    // creation parms

// create the frequency control scroller
freq_hwnd = CreateWindow("SCROLLBAR", // class
						  "",	    // title
						  WS_CHILD | WS_VISIBLE,
					 	  80,100,	    // x,y
						  160,       // width
                          16,      // height
						  hwnd,	    // handle to parent 
						  NULL,	    // handle to menu
						  hinstance,// instance
						  NULL);    // creation parms

// create the stereo panning control scroller
pan_hwnd = CreateWindow("SCROLLBAR", // class
						  "",	    // title
						  WS_CHILD | WS_VISIBLE,
					 	  80,160,	// x,y
						  160,      // width
                          16,       // height
						  hwnd,	    // handle to parent 
						  NULL,	    // handle to menu
						  hinstance,// instance
						  NULL);    // creation parms


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情亚洲综合在线| 色综合久久99| 一二三区精品视频| 欧美大肚乱孕交hd孕妇| 一本久久精品一区二区| 亚洲线精品一区二区三区| 欧美mv日韩mv国产网站| 99久久免费国产| 国产美女久久久久| 日本va欧美va瓶| 亚洲精品成人精品456| 精品国产髙清在线看国产毛片| 成人永久看片免费视频天堂| 亚洲欧美一区二区不卡| 欧美成人国产一区二区| 在线视频中文字幕一区二区| 久久av中文字幕片| 丝瓜av网站精品一区二区| 国产精品日产欧美久久久久| 欧美日韩一级二级三级| 91欧美一区二区| 成人ar影院免费观看视频| 美国av一区二区| 日韩av电影一区| 天天操天天色综合| 亚洲成人高清在线| 亚洲在线观看免费| 亚洲专区一二三| 一区二区理论电影在线观看| 精品国产91洋老外米糕| 在线成人高清不卡| 欧美蜜桃一区二区三区| 在线视频综合导航| 欧美亚洲综合久久| 欧美视频一区在线| 欧美日韩国产天堂| 欧美精品亚洲一区二区在线播放| 91丨porny丨户外露出| 成人免费视频网站在线观看| 美女网站在线免费欧美精品| 亚洲精品视频一区| 一区二区三区丝袜| 调教+趴+乳夹+国产+精品| 亚洲一级二级三级在线免费观看| 中文一区二区在线观看| 精品国产一区a| 2022国产精品视频| 国产精品区一区二区三| 国产欧美一区二区精品性| 精品国产一区二区精华| 亚洲精品一区二区三区香蕉 | 国产精品一二三区| 国产电影一区在线| 91色九色蝌蚪| 欧美日韩国产电影| 日韩免费性生活视频播放| 日韩午夜激情视频| 久久久www免费人成精品| 久久久99久久| 亚洲免费看黄网站| 视频一区二区国产| 国产精品一区在线观看你懂的| 精品一区二区三区久久| 国产一区91精品张津瑜| 成人app网站| 欧美日韩亚洲不卡| 久久亚洲综合色一区二区三区 | 欧美a级一区二区| 日本成人在线不卡视频| 久久69国产一区二区蜜臀| 国产一区久久久| 91在线精品秘密一区二区| 色94色欧美sute亚洲线路一ni| 欧美亚洲图片小说| 欧美r级在线观看| 最新日韩av在线| 美女精品自拍一二三四| 国产精品一二二区| 欧美日韩不卡在线| 国产女人水真多18毛片18精品视频 | 久久99久久99小草精品免视看| 国内精品免费**视频| 成人高清视频在线| 91精品国产91久久久久久一区二区 | 日本少妇一区二区| 成人av资源在线| 欧美一区二区视频网站| 国产女人水真多18毛片18精品视频 | 国产欧美一区二区精品秋霞影院| 国产精品久久久久一区| 亚洲成在人线在线播放| 国产91精品欧美| 日韩欧美国产三级| 一区二区三区av电影| 国产一区91精品张津瑜| 欧美日韩在线一区二区| 久久久久久电影| 日韩电影网1区2区| 日本黄色一区二区| 欧美国产成人精品| 久久99精品久久久久婷婷| 91色porny蝌蚪| 中文字幕欧美三区| 老司机午夜精品99久久| 欧美在线一区二区三区| 国产欧美日产一区| 国产一区二区三区在线观看免费| 色999日韩国产欧美一区二区| 精品福利av导航| 日本三级亚洲精品| 欧美影片第一页| 亚洲欧美另类小说视频| 国产精品538一区二区在线| 欧美日韩国产影片| 亚洲最大色网站| 日本久久精品电影| 亚洲欧美日韩国产中文在线| 久久99久久99精品免视看婷婷 | 国产成人午夜精品影院观看视频| 欧美日韩免费电影| 亚洲一区二区黄色| 99精品国产热久久91蜜凸| 国产丝袜欧美中文另类| 日韩成人伦理电影在线观看| 成人小视频免费在线观看| 精品成a人在线观看| 日韩中文字幕av电影| 日本高清无吗v一区| 中文字幕一区视频| 99久久精品国产网站| 国产精品久久久久久亚洲毛片| 国产乱码精品一区二区三区忘忧草| 欧美精三区欧美精三区| 亚洲一区电影777| 欧美无乱码久久久免费午夜一区| 亚洲欧洲日产国码二区| 99v久久综合狠狠综合久久| 亚洲国产岛国毛片在线| 成人免费精品视频| 亚洲三级在线看| 欧洲亚洲国产日韩| 亚洲成人av电影在线| 欧美少妇xxx| 青娱乐精品视频在线| 56国语精品自产拍在线观看| 国产一区999| 中文字幕巨乱亚洲| 色悠悠久久综合| 亚洲国产精品综合小说图片区| 欧美性色黄大片| 日韩精品一二三| 久久亚洲精品小早川怜子| 国产精品一区免费在线观看| 日韩欧美在线一区二区三区| 香蕉av福利精品导航| 欧美精品色一区二区三区| 日韩国产高清在线| 2019国产精品| 成人性生交大合| 亚洲国产精品视频| 日韩一级二级三级精品视频| 日本美女一区二区三区视频| 欧美一区二区成人6969| 久久99在线观看| 欧美激情一区二区三区全黄| 国产iv一区二区三区| 亚洲视频狠狠干| 7777精品伊人久久久大香线蕉 | 国产精品成人在线观看| 91麻豆自制传媒国产之光| 日日夜夜免费精品视频| 国产欧美中文在线| 欧美日本精品一区二区三区| 日韩国产在线观看| 中文子幕无线码一区tr| 欧美日韩在线播放三区| 免费成人美女在线观看.| 欧美国产日本视频| 在线成人午夜影院| 99综合影院在线| 日本最新不卡在线| 综合激情网...| 精品少妇一区二区三区在线播放| 高清国产一区二区| 亚洲电影你懂得| 亚洲国产精品黑人久久久 | 欧美激情综合网| 欧美日韩在线播| 不卡电影一区二区三区| 午夜欧美一区二区三区在线播放| 久久综合网色—综合色88| 色综合中文字幕| 国产一区二区女| 国v精品久久久网| 日韩 欧美一区二区三区| 中文字幕日韩一区二区| 日韩丝袜情趣美女图片| 色综合色综合色综合| 国产伦精品一区二区三区在线观看 | 精品国产免费一区二区三区四区|