T3D图形库(三)
来源:互联网 发布:python中文文档 编辑:程序博客网 时间:2024/05/18 07:22
T3D图形库DMusic&&DSound头文件部分
- /*2008.10.3
- T3D图形库
- ——<<windows游戏
- 编程大师技巧>>
- */
- // DirectSound && DirectMusic
- #ifndef DS_DM_LIB
- #define DS_DM_LIB
- #define DM_NUM_SEGMENTS 64 // 内存中可以被捕获到的MIDI音乐段
- // midi对象状态
- #define MIDI_NULL 0 // 没有被加载
- #define MIDI_LOADED 1 // 被加载
- #define MIDI_PLAYING 2 // 在播放
- #define MIDI_STOPPED 3 // 被加载后停止
- #define MAX_SOUNDS 256 // 声音数量
- // 数字声音状态
- #define SOUND_NULL 0 //同上
- #define SOUND_LOADED 1
- #define SOUND_PLAYING 2
- #define SOUND_STOPPED 3
- // 以下宏使其兼容 directx 7.0
- #ifndef DSBCAPS_CTRLDEFAULT
- #define DSBCAPS_CTRLDEFAULT (DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME )
- #endif
- // 转换为微软分贝单位 volume为100则声音最大
- #define DSVOLUME_TO_DB(volume) ((DWORD)(-30*(100 - volume)))
- // 多子节字符转换为宽字符串
- #define MULTI_TO_WIDE( x,y ) MultiByteToWideChar( CP_ACP,MB_PRECOMPOSED, y,-1,x,_MAX_PATH);
- // 初始化结构体
- #define DD_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }
- // 类型 //////////////////////////////////////////////////
- // 存储单一的声音文件
- typedef struct pcm_sound_typ
- {
- LPDIRECTSOUNDBUFFER dsbuffer; // DS 的后备缓冲
- int state; // 声音状态
- int rate; // 回放速率
- int size; // 声音大小
- int id; // 声音ID
- } pcm_sound, *pcm_sound_ptr;
- // DM midi段 结构
- typedef struct DMUSIC_MIDI_TYP
- {
- IDirectMusicSegment *dm_segment; // the directmusic segment
- IDirectMusicSegmentState *dm_segstate; // the state of the segment
- int id; // the id of this segment
- int state; // state of midi song
- } DMUSIC_MIDI, *DMUSIC_MIDI_PTR;
- // 函数接口 /////////////////////////////////////////////
- // directsound
- int DSound_Load_WAV(char *filename, int control_flags = DSBCAPS_CTRLDEFAULT);
- int DSound_Replicate_Sound(int source_id);
- int DSound_Play(int id, int flags=0, int volume=0, int rate=0, int pan=0);
- int DSound_Stop_Sound(int id);
- int DSound_Stop_All_Sounds(void);
- int DSound_Init(void);
- int DSound_Shutdown(void);
- int DSound_Delete_Sound(int id);
- int DSound_Delete_All_Sounds(void);
- int DSound_Status_Sound(int id);
- int DSound_Set_Volume(int id,int vol);
- int DSound_Set_Freq(int id,int freq);
- int DSound_Set_Pan(int id,int pan);
- // directmusic
- int DMusic_Load_MIDI(char *filename);
- int DMusic_Play(int id);
- int DMusic_Stop(int id);
- int DMusic_Shutdown(void);
- int DMusic_Delete_MIDI(int id);
- int DMusic_Delete_All_MIDI(void);
- int DMusic_Status_MIDI(int id);
- int DMusic_Init(void);
- // GLOBALS ////////////////////////////////////////////////
- // EXTERNALS //////////////////////////////////////////////
- extern HWND main_window_handle; // save the window handle
- extern HINSTANCE main_instance; // save the instance
- extern LPDIRECTSOUND lpds; // directsound interface pointer
- extern DSBUFFERDESC dsbd; // directsound description
- extern DSCAPS dscaps; // directsound caps
- extern HRESULT dsresult; // general directsound result
- extern DSBCAPS dsbcaps; // directsound buffer caps
- extern LPDIRECTSOUNDBUFFER lpdsbprimary; // the primary mixing buffer
- extern pcm_sound sound_fx[MAX_SOUNDS]; // the array of secondary sound buffers
- extern WAVEFORMATEX pcmwf; // generic waveformat structure
- // direct music globals
- extern IDirectMusicPerformance *dm_perf ; // the directmusic performance manager
- extern IDirectMusicLoader *dm_loader; // the directmusic loader
- // this hold all the directmusic midi objects
- extern DMUSIC_MIDI dm_midi[DM_NUM_SEGMENTS];
- extern int dm_active_id; // currently active midi segment
- #endif
- T3D图形库(三)
- T3D图形库(一)
- T3D图形库(二)
- T3D图形库(四)
- T3D图形库(五)
- T3D图形库(六)
- T3D图形库(七)
- T3D 数据格式
- T3D游戏控制程序
- 学习curses图形库(三)
- Android图形库Skia(三)-结合Freetype显示文字
- Android图形---OpenGL(三)
- 什么是图形加速卡(三)
- WindowsAPI笔记(三)---绘制图形
- Quartz2D绘图<三>绘制图形
- QT5 OPenGL(三, 图形旋转)
- 图形库
- wxWidgets学习笔记(三):静态编译wxWidgets图形库及其应用程序
- 以编程方式指定Gridview的HyperLinkField的属性DataNavigateUrlFormatString
- 谷歌金山词霸1.8新版推出
- 电信CDMA十一起放号 首期瞄准后付费用户
- centOS5.2 ---如何配置DNS
- 博客变味:从一方净土沦落为企业枪手
- T3D图形库(三)
- Create table Text_Test([id] int identity(1, 1) not null, [article] text collate Chinese_PRC_CI_AS not null) text, collate
- 牛顿法求方程
- Microsoft Windows帮助图形处理堆溢出漏洞(网上拷贝的)
- C++中const总结
- 邮件服务器基础知识详细讲解
- 某农业产品贸易网挂马Trojan.DL.Win32.Mnless.bes/Trojan-Dropper.Win32.Agent.xdu
- 游戏杆,摇杆,joystick,游戏手柄的一个.NET库
- 自动设置Java变量