d3d.cpp 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. #define WIN32_LEAN_AND_MEAN
  2. #include <windows.h>
  3. #include "d3d9types.h"
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. extern "C" {
  7. D3DPRESENT_PARAMETERS * bmx_directx_D3DPRESENT_PARAMETERS_new();
  8. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferWidth(D3DPRESENT_PARAMETERS * params, int BackBufferWidth);
  9. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferWidth(D3DPRESENT_PARAMETERS * params);
  10. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferHeight(D3DPRESENT_PARAMETERS * params, int BackBufferHeight);
  11. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferHeight(D3DPRESENT_PARAMETERS * params);
  12. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferFormat(D3DPRESENT_PARAMETERS * params, int BackBufferFormat);
  13. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferFormat(D3DPRESENT_PARAMETERS * params);
  14. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferCount(D3DPRESENT_PARAMETERS * params, int BackBufferCount);
  15. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferCount(D3DPRESENT_PARAMETERS * params);
  16. void bmx_directx_D3DPRESENT_PARAMETERS_SetMultiSampleType(D3DPRESENT_PARAMETERS * params, int MultiSampleType);
  17. int bmx_directx_D3DPRESENT_PARAMETERS_GetMultiSampleType(D3DPRESENT_PARAMETERS * params);
  18. void bmx_directx_D3DPRESENT_PARAMETERS_SetMultiSampleQuality(D3DPRESENT_PARAMETERS * params, int MultiSampleQuality);
  19. int bmx_directx_D3DPRESENT_PARAMETERS_GetMultiSampleQuality(D3DPRESENT_PARAMETERS * params);
  20. void bmx_directx_D3DPRESENT_PARAMETERS_SetSwapEffect(D3DPRESENT_PARAMETERS * params, int SwapEffect);
  21. int bmx_directx_D3DPRESENT_PARAMETERS_GetSwapEffect(D3DPRESENT_PARAMETERS * params);
  22. void bmx_directx_D3DPRESENT_PARAMETERS_SethDeviceWindow(D3DPRESENT_PARAMETERS * params, HWND hDeviceWindow);
  23. HWND bmx_directx_D3DPRESENT_PARAMETERS_GethDeviceWindow(D3DPRESENT_PARAMETERS * params);
  24. void bmx_directx_D3DPRESENT_PARAMETERS_SetWindowed(D3DPRESENT_PARAMETERS * params, int Windowed);
  25. int bmx_directx_D3DPRESENT_PARAMETERS_GetWindowed(D3DPRESENT_PARAMETERS * params);
  26. void bmx_directx_D3DPRESENT_PARAMETERS_SetEnableAutoDepthStencil(D3DPRESENT_PARAMETERS * params, int EnableAutoDepthStencil);
  27. int bmx_directx_D3DPRESENT_PARAMETERS_GetEnableAutoDepthStencil(D3DPRESENT_PARAMETERS * params);
  28. void bmx_directx_D3DPRESENT_PARAMETERS_SetAutoDepthStencilFormat(D3DPRESENT_PARAMETERS * params, int AutoDepthStencilFormat);
  29. int bmx_directx_D3DPRESENT_PARAMETERS_GetAutoDepthStencilFormat(D3DPRESENT_PARAMETERS * params);
  30. void bmx_directx_D3DPRESENT_PARAMETERS_SetFlags(D3DPRESENT_PARAMETERS * params, int Flags);
  31. int bmx_directx_D3DPRESENT_PARAMETERS_GetFlags(D3DPRESENT_PARAMETERS * params);
  32. void bmx_directx_D3DPRESENT_PARAMETERS_SetFullScreen_RefreshRateInHz(D3DPRESENT_PARAMETERS * params, int FullScreen_RefreshRateInHz);
  33. int bmx_directx_D3DPRESENT_PARAMETERS_GetFullScreen_RefreshRateInHz(D3DPRESENT_PARAMETERS * params);
  34. void bmx_directx_D3DPRESENT_PARAMETERS_SetPresentationInterval(D3DPRESENT_PARAMETERS * params, int PresentationInterval);
  35. int bmx_directx_D3DPRESENT_PARAMETERS_GetPresentationInterval(D3DPRESENT_PARAMETERS * params);
  36. void bmx_directx_D3DPRESENT_PARAMETERS_free(D3DPRESENT_PARAMETERS * params);
  37. D3DDISPLAYMODE * bmx_directx_D3DDISPLAYMODE_new();
  38. void bmx_directx_D3DDISPLAYMODE_free(D3DDISPLAYMODE * mode);
  39. int bmx_directx_D3DDISPLAYMODE_GetWidth(D3DDISPLAYMODE * mode);
  40. int bmx_directx_D3DDISPLAYMODE_GetHeight(D3DDISPLAYMODE * mode);
  41. int bmx_directx_D3DDISPLAYMODE_GetRefreshRate(D3DDISPLAYMODE * mode);
  42. int bmx_directx_D3DDISPLAYMODE_GetFormat(D3DDISPLAYMODE * mode);
  43. D3DSURFACE_DESC * bmx_directx_D3DSURFACE_DESC_new();
  44. void bmx_directx_D3DSURFACE_DESC_free(D3DSURFACE_DESC * desc);
  45. }
  46. D3DPRESENT_PARAMETERS * bmx_directx_D3DPRESENT_PARAMETERS_new() {
  47. return (D3DPRESENT_PARAMETERS *)malloc(sizeof(D3DPRESENT_PARAMETERS));
  48. }
  49. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferWidth(D3DPRESENT_PARAMETERS * params, int BackBufferWidth) {
  50. params->BackBufferWidth = BackBufferWidth;
  51. }
  52. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferWidth(D3DPRESENT_PARAMETERS * params) {
  53. return params->BackBufferWidth;
  54. }
  55. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferHeight(D3DPRESENT_PARAMETERS * params, int BackBufferHeight) {
  56. params->BackBufferHeight = BackBufferHeight;
  57. }
  58. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferHeight(D3DPRESENT_PARAMETERS * params) {
  59. return params->BackBufferHeight;
  60. }
  61. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferFormat(D3DPRESENT_PARAMETERS * params, int BackBufferFormat) {
  62. params->BackBufferFormat = static_cast<D3DFORMAT>(BackBufferFormat);
  63. }
  64. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferFormat(D3DPRESENT_PARAMETERS * params) {
  65. return params->BackBufferFormat;
  66. }
  67. void bmx_directx_D3DPRESENT_PARAMETERS_SetBackBufferCount(D3DPRESENT_PARAMETERS * params, int BackBufferCount) {
  68. params->BackBufferCount = BackBufferCount;
  69. }
  70. int bmx_directx_D3DPRESENT_PARAMETERS_GetBackBufferCount(D3DPRESENT_PARAMETERS * params) {
  71. return params->BackBufferCount;
  72. }
  73. void bmx_directx_D3DPRESENT_PARAMETERS_SetMultiSampleType(D3DPRESENT_PARAMETERS * params, int MultiSampleType) {
  74. params->MultiSampleType = static_cast<D3DMULTISAMPLE_TYPE>(MultiSampleType);
  75. }
  76. int bmx_directx_D3DPRESENT_PARAMETERS_GetMultiSampleType(D3DPRESENT_PARAMETERS * params) {
  77. return params->MultiSampleType;
  78. }
  79. void bmx_directx_D3DPRESENT_PARAMETERS_SetMultiSampleQuality(D3DPRESENT_PARAMETERS * params, int MultiSampleQuality) {
  80. params->MultiSampleQuality = MultiSampleQuality;
  81. }
  82. int bmx_directx_D3DPRESENT_PARAMETERS_GetMultiSampleQuality(D3DPRESENT_PARAMETERS * params) {
  83. return params->MultiSampleQuality;
  84. }
  85. void bmx_directx_D3DPRESENT_PARAMETERS_SetSwapEffect(D3DPRESENT_PARAMETERS * params, int SwapEffect) {
  86. params->SwapEffect = static_cast<D3DSWAPEFFECT>(SwapEffect);
  87. }
  88. int bmx_directx_D3DPRESENT_PARAMETERS_GetSwapEffect(D3DPRESENT_PARAMETERS * params) {
  89. return params->SwapEffect;
  90. }
  91. void bmx_directx_D3DPRESENT_PARAMETERS_SethDeviceWindow(D3DPRESENT_PARAMETERS * params, HWND hDeviceWindow) {
  92. params->hDeviceWindow = hDeviceWindow;
  93. }
  94. HWND bmx_directx_D3DPRESENT_PARAMETERS_GethDeviceWindow(D3DPRESENT_PARAMETERS * params) {
  95. return params->hDeviceWindow;
  96. }
  97. void bmx_directx_D3DPRESENT_PARAMETERS_SetWindowed(D3DPRESENT_PARAMETERS * params, int Windowed) {
  98. params->Windowed = Windowed;
  99. }
  100. int bmx_directx_D3DPRESENT_PARAMETERS_GetWindowed(D3DPRESENT_PARAMETERS * params) {
  101. return params->Windowed;
  102. }
  103. void bmx_directx_D3DPRESENT_PARAMETERS_SetEnableAutoDepthStencil(D3DPRESENT_PARAMETERS * params, int EnableAutoDepthStencil) {
  104. params->EnableAutoDepthStencil = EnableAutoDepthStencil;
  105. }
  106. int bmx_directx_D3DPRESENT_PARAMETERS_GetEnableAutoDepthStencil(D3DPRESENT_PARAMETERS * params) {
  107. return params->EnableAutoDepthStencil;
  108. }
  109. void bmx_directx_D3DPRESENT_PARAMETERS_SetAutoDepthStencilFormat(D3DPRESENT_PARAMETERS * params, int AutoDepthStencilFormat) {
  110. params->AutoDepthStencilFormat = static_cast<D3DFORMAT>(AutoDepthStencilFormat);
  111. }
  112. int bmx_directx_D3DPRESENT_PARAMETERS_GetAutoDepthStencilFormat(D3DPRESENT_PARAMETERS * params) {
  113. return params->AutoDepthStencilFormat;
  114. }
  115. void bmx_directx_D3DPRESENT_PARAMETERS_SetFlags(D3DPRESENT_PARAMETERS * params, int Flags) {
  116. params->Flags = Flags;
  117. }
  118. int bmx_directx_D3DPRESENT_PARAMETERS_GetFlags(D3DPRESENT_PARAMETERS * params) {
  119. return params->Flags;
  120. }
  121. void bmx_directx_D3DPRESENT_PARAMETERS_SetFullScreen_RefreshRateInHz(D3DPRESENT_PARAMETERS * params, int FullScreen_RefreshRateInHz) {
  122. params->FullScreen_RefreshRateInHz = FullScreen_RefreshRateInHz;
  123. }
  124. int bmx_directx_D3DPRESENT_PARAMETERS_GetFullScreen_RefreshRateInHz(D3DPRESENT_PARAMETERS * params) {
  125. return params->FullScreen_RefreshRateInHz;
  126. }
  127. void bmx_directx_D3DPRESENT_PARAMETERS_SetPresentationInterval(D3DPRESENT_PARAMETERS * params, int PresentationInterval) {
  128. params->PresentationInterval = PresentationInterval;
  129. }
  130. int bmx_directx_D3DPRESENT_PARAMETERS_GetPresentationInterval(D3DPRESENT_PARAMETERS * params) {
  131. return params->PresentationInterval;
  132. }
  133. void bmx_directx_D3DPRESENT_PARAMETERS_free(D3DPRESENT_PARAMETERS * params) {
  134. free(params);
  135. }
  136. // ********************************************************
  137. D3DDISPLAYMODE * bmx_directx_D3DDISPLAYMODE_new() {
  138. return (D3DDISPLAYMODE *)malloc(sizeof(D3DDISPLAYMODE));
  139. }
  140. void bmx_directx_D3DDISPLAYMODE_free(D3DDISPLAYMODE * mode) {
  141. free(mode);
  142. }
  143. int bmx_directx_D3DDISPLAYMODE_GetWidth(D3DDISPLAYMODE * mode) {
  144. return mode->Width;
  145. }
  146. int bmx_directx_D3DDISPLAYMODE_GetHeight(D3DDISPLAYMODE * mode) {
  147. return mode->Height;
  148. }
  149. int bmx_directx_D3DDISPLAYMODE_GetRefreshRate(D3DDISPLAYMODE * mode) {
  150. return mode->RefreshRate;
  151. }
  152. int bmx_directx_D3DDISPLAYMODE_GetFormat(D3DDISPLAYMODE * mode) {
  153. return mode->Format;
  154. }
  155. // ********************************************************
  156. D3DSURFACE_DESC * bmx_directx_D3DSURFACE_DESC_new() {
  157. return (D3DSURFACE_DESC *)malloc(sizeof(D3DSURFACE_DESC));
  158. }
  159. void bmx_directx_D3DSURFACE_DESC_free(D3DSURFACE_DESC * desc) {
  160. free(desc);
  161. }