T3D图形库(三)

原创 2008年09月29日 17:09:00

 T3D图形库DMusic&&DSound头文件部分

 

  1. /*2008.10.3
  2. T3D图形库
  3. ——<<windows游戏
  4. 编程大师技巧>>
  5. */
  6. // DirectSound && DirectMusic
  7. #ifndef DS_DM_LIB
  8. #define DS_DM_LIB
  9. #define DM_NUM_SEGMENTS 64 // 内存中可以被捕获到的MIDI音乐段
  10. // midi对象状态
  11. #define MIDI_NULL     0   // 没有被加载
  12. #define MIDI_LOADED   1   // 被加载
  13. #define MIDI_PLAYING  2   // 在播放
  14. #define MIDI_STOPPED  3   // 被加载后停止
  15. #define MAX_SOUNDS     256 // 声音数量
  16. // 数字声音状态
  17. #define SOUND_NULL     0  //同上
  18. #define SOUND_LOADED   1
  19. #define SOUND_PLAYING  2
  20. #define SOUND_STOPPED  3
  21. // 以下宏使其兼容 directx 7.0
  22. #ifndef DSBCAPS_CTRLDEFAULT
  23. #define DSBCAPS_CTRLDEFAULT (DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME )
  24. #endif
  25. // 转换为微软分贝单位 volume为100则声音最大
  26. #define DSVOLUME_TO_DB(volume) ((DWORD)(-30*(100 - volume)))
  27. // 多子节字符转换为宽字符串
  28. #define MULTI_TO_WIDE( x,y )  MultiByteToWideChar( CP_ACP,MB_PRECOMPOSED, y,-1,x,_MAX_PATH);
  29. // 初始化结构体
  30. #define DD_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }
  31. // 类型 //////////////////////////////////////////////////
  32. // 存储单一的声音文件
  33. typedef struct pcm_sound_typ
  34.     {
  35.     LPDIRECTSOUNDBUFFER dsbuffer;   // DS 的后备缓冲
  36.     int state;                      // 声音状态
  37.     int rate;                       // 回放速率
  38.     int size;                       // 声音大小
  39.     int id;                         // 声音ID
  40.     } pcm_sound, *pcm_sound_ptr;
  41. // DM midi段 结构
  42. typedef struct DMUSIC_MIDI_TYP
  43. {
  44. IDirectMusicSegment        *dm_segment;  // the directmusic segment
  45. IDirectMusicSegmentState   *dm_segstate; // the state of the segment
  46. int                        id;           // the id of this segment               
  47. int                        state;        // state of midi song
  48. } DMUSIC_MIDI, *DMUSIC_MIDI_PTR;
  49. // 函数接口 /////////////////////////////////////////////
  50. // directsound
  51. int DSound_Load_WAV(char *filename, int control_flags = DSBCAPS_CTRLDEFAULT);
  52. int DSound_Replicate_Sound(int source_id);
  53. int DSound_Play(int id, int flags=0, int volume=0, int rate=0, int pan=0);
  54. int DSound_Stop_Sound(int id);
  55. int DSound_Stop_All_Sounds(void);
  56. int DSound_Init(void);
  57. int DSound_Shutdown(void);
  58. int DSound_Delete_Sound(int id);
  59. int DSound_Delete_All_Sounds(void);
  60. int DSound_Status_Sound(int id);
  61. int DSound_Set_Volume(int id,int vol);
  62. int DSound_Set_Freq(int id,int freq);
  63. int DSound_Set_Pan(int id,int pan);
  64. // directmusic
  65. int DMusic_Load_MIDI(char *filename);
  66. int DMusic_Play(int id);
  67. int DMusic_Stop(int id);
  68. int DMusic_Shutdown(void);
  69. int DMusic_Delete_MIDI(int id);
  70. int DMusic_Delete_All_MIDI(void);
  71. int DMusic_Status_MIDI(int id);
  72. int DMusic_Init(void);
  73. // GLOBALS ////////////////////////////////////////////////
  74. // EXTERNALS //////////////////////////////////////////////
  75. extern HWND main_window_handle; // save the window handle
  76. extern HINSTANCE main_instance; // save the instance
  77. extern LPDIRECTSOUND        lpds;           // directsound interface pointer
  78. extern DSBUFFERDESC         dsbd;           // directsound description
  79. extern DSCAPS               dscaps;         // directsound caps
  80. extern HRESULT              dsresult;       // general directsound result
  81. extern DSBCAPS              dsbcaps;        // directsound buffer caps
  82. extern LPDIRECTSOUNDBUFFER  lpdsbprimary;   // the primary mixing buffer
  83. extern pcm_sound            sound_fx[MAX_SOUNDS];    // the array of secondary sound buffers
  84. extern WAVEFORMATEX         pcmwf;          // generic waveformat structure
  85. // direct music globals
  86. extern IDirectMusicPerformance    *dm_perf ;    // the directmusic performance manager 
  87. extern IDirectMusicLoader         *dm_loader;  // the directmusic loader
  88. // this hold all the directmusic midi objects
  89. extern DMUSIC_MIDI                dm_midi[DM_NUM_SEGMENTS];
  90. extern int dm_active_id;                               // currently active midi segment
  91. #endif

 

 

T3D图形库(五)

 DInput库文件部分 /*2008.10.1T3D图形库——编程大师技巧>>*/// DI_lib.cpp // INCLUDES ////////////////////////////////...
  • lingang_
  • lingang_
  • 2008年10月04日 10:23
  • 544

T3D图形库(六)

 DirectSound && DirectMusic 库文件部分 /*2008.10.4T3D图形库——编程大师技巧>>*/// INCLUDES /////////////////////////...
  • lingang_
  • lingang_
  • 2008年10月04日 10:24
  • 829

T3D图形库(一)

T3D图形库DDraw及图形算法头文件部分 /*2008.9.15T3D图形库——编程大师技巧>>*///DDraw_lib.h #ifndef DDraw_lib #define DDraw_lib...
  • lingang_
  • lingang_
  • 2008年09月29日 16:57
  • 1446

T3D图形库(七)

 T3D控制台程序,仅显示一个16位色的空白窗口程序,以Esc或Space关闭程序。 /*2008.9.29T3D图形库——编程大师技巧>>*///T3Dconsole.cpp // INCLUDES...
  • lingang_
  • lingang_
  • 2008年10月04日 10:26
  • 675

T3D图形库(二)

 T3D图形库DInput 头文件部分 /*2008.10.1T3D图形库——编程大师技巧>>*/#ifndef DI_LIB #define DI_LIB // DI_LIB.H int DInpu...
  • lingang_
  • lingang_
  • 2008年09月29日 17:03
  • 599

T3D图形库(四)

 DDraw及图形算法库文件部分 /*2008.9.16T3D图形库——编程大师技巧>>*///DDraw_lib.cpp // INCLUDES //////////////////////////...
  • lingang_
  • lingang_
  • 2008年10月04日 10:17
  • 1695

《Windows游戏编程大师技巧》 T3D游戏控制台程序实例及第一部分总结

现在我们要创建一个Windows外壳程序,将单调的Windows运行细节隐藏, Win32/DirectX编程就变得类似于32位DOS的编程过程。在构建好的代码结构下, 我们只需关心Game_*几...
  • dc_726
  • dc_726
  • 2012年04月22日 15:20
  • 2737

学习curses图形库(三)

现在实际使用curses图形库。 主要用到move()和addch()函数。 move()函数用于设置光标位置,以完成在终端的各个位置输出数据。 addch()函数是curses的核心输出函数,...
  • qq_15345805
  • qq_15345805
  • 2017年05月14日 22:15
  • 107

VS2015配置EGE图形库

对于新手来说,配置图形库这种东西,完全一年懵逼好吗? 网上一番查找成功后,分享记录一波。 首先下载图形库: http://mooc.study.163.com/course/attachment...
  • PYPARA
  • PYPARA
  • 2016年09月02日 21:46
  • 2602

几种开源图形相关的库的总结

一、            ORGE(http://www.ogre3d.org/)1 - 什么是OgreOgre是一款开源的图形渲染引擎,它的全名叫(Object-orientedGraphics ...
  • coy_wang
  • coy_wang
  • 2010年01月17日 14:56
  • 1735
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:T3D图形库(三)
举报原因:
原因补充:

(最多只允许输入30个字)