lua_SpriteBatch.cpp 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380
  1. #include "Base.h"
  2. #include "ScriptController.h"
  3. #include "SpriteBatch.h"
  4. #include "lua_SpriteBatch.h"
  5. #include "lua_Global.h"
  6. namespace gameplay
  7. {
  8. void luaRegister_SpriteBatch()
  9. {
  10. ScriptController* sc = ScriptController::getInstance();
  11. const luaL_Reg lua_members[] =
  12. {
  13. {"begin", lua_SpriteBatch_begin},
  14. {"draw", lua_SpriteBatch_draw},
  15. {"end", lua_SpriteBatch_end},
  16. {"getMaterial", lua_SpriteBatch_getMaterial},
  17. {"getProjectionMatrix", lua_SpriteBatch_getProjectionMatrix},
  18. {"getStateBlock", lua_SpriteBatch_getStateBlock},
  19. {"setProjectionMatrix", lua_SpriteBatch_setProjectionMatrix},
  20. {NULL, NULL}
  21. };
  22. const luaL_Reg lua_statics[] =
  23. {
  24. {"create", lua_SpriteBatch_static_create},
  25. {NULL, NULL}
  26. };
  27. std::vector<std::string> scopePath;
  28. sc->registerClass("SpriteBatch", lua_members, NULL, lua_SpriteBatch__gc, lua_statics, scopePath);
  29. }
  30. static SpriteBatch* getInstance(lua_State* state)
  31. {
  32. void* userdata = luaL_checkudata(state, 1, "SpriteBatch");
  33. luaL_argcheck(state, userdata != NULL, 1, "'SpriteBatch' expected.");
  34. return (SpriteBatch*)((ScriptController::LuaObject*)userdata)->instance;
  35. }
  36. int lua_SpriteBatch__gc(lua_State* state)
  37. {
  38. // Get the number of parameters.
  39. int paramCount = lua_gettop(state);
  40. // Attempt to match the parameters to a valid binding.
  41. switch (paramCount)
  42. {
  43. case 1:
  44. {
  45. if (lua_type(state, 1) == LUA_TUSERDATA)
  46. {
  47. void* userdata = luaL_checkudata(state, 1, "SpriteBatch");
  48. luaL_argcheck(state, userdata != NULL, 1, "'SpriteBatch' expected.");
  49. ScriptController::LuaObject* object = (ScriptController::LuaObject*)userdata;
  50. if (object->owns)
  51. {
  52. SpriteBatch* instance = (SpriteBatch*)object->instance;
  53. SAFE_DELETE(instance);
  54. }
  55. return 0;
  56. }
  57. else
  58. {
  59. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  60. lua_error(state);
  61. }
  62. break;
  63. }
  64. default:
  65. {
  66. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  67. lua_error(state);
  68. break;
  69. }
  70. }
  71. return 0;
  72. }
  73. int lua_SpriteBatch_begin(lua_State* state)
  74. {
  75. // Get the number of parameters.
  76. int paramCount = lua_gettop(state);
  77. // Attempt to match the parameters to a valid binding.
  78. switch (paramCount)
  79. {
  80. case 1:
  81. {
  82. if (lua_type(state, 1) == LUA_TUSERDATA)
  83. {
  84. SpriteBatch* instance = getInstance(state);
  85. instance->begin();
  86. return 0;
  87. }
  88. else
  89. {
  90. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  91. lua_error(state);
  92. }
  93. break;
  94. }
  95. default:
  96. {
  97. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  98. lua_error(state);
  99. break;
  100. }
  101. }
  102. return 0;
  103. }
  104. int lua_SpriteBatch_draw(lua_State* state)
  105. {
  106. // Get the number of parameters.
  107. int paramCount = lua_gettop(state);
  108. // Attempt to match the parameters to a valid binding.
  109. switch (paramCount)
  110. {
  111. case 3:
  112. {
  113. if (lua_type(state, 1) == LUA_TUSERDATA &&
  114. lua_type(state, 2) == LUA_TUSERDATA &&
  115. lua_type(state, 3) == LUA_TUSERDATA)
  116. {
  117. // Get parameter 1 off the stack.
  118. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Rectangle");
  119. if (!userdata2)
  120. {
  121. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 2.");
  122. lua_error(state);
  123. }
  124. Rectangle* param1 = (Rectangle*)((ScriptController::LuaObject*)userdata2)->instance;
  125. // Get parameter 2 off the stack.
  126. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Rectangle");
  127. if (!userdata3)
  128. {
  129. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 3.");
  130. lua_error(state);
  131. }
  132. Rectangle* param2 = (Rectangle*)((ScriptController::LuaObject*)userdata3)->instance;
  133. SpriteBatch* instance = getInstance(state);
  134. instance->draw(*param1, *param2);
  135. return 0;
  136. }
  137. else
  138. {
  139. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  140. lua_error(state);
  141. }
  142. break;
  143. }
  144. case 4:
  145. {
  146. if (lua_type(state, 1) == LUA_TUSERDATA &&
  147. lua_type(state, 2) == LUA_TUSERDATA &&
  148. lua_type(state, 3) == LUA_TUSERDATA &&
  149. lua_type(state, 4) == LUA_TUSERDATA)
  150. {
  151. // Get parameter 1 off the stack.
  152. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Rectangle");
  153. if (!userdata2)
  154. {
  155. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 2.");
  156. lua_error(state);
  157. }
  158. Rectangle* param1 = (Rectangle*)((ScriptController::LuaObject*)userdata2)->instance;
  159. // Get parameter 2 off the stack.
  160. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Rectangle");
  161. if (!userdata3)
  162. {
  163. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 3.");
  164. lua_error(state);
  165. }
  166. Rectangle* param2 = (Rectangle*)((ScriptController::LuaObject*)userdata3)->instance;
  167. // Get parameter 3 off the stack.
  168. void* userdata4 = ScriptController::getInstance()->getObjectPointer(4, "Vector4");
  169. if (!userdata4)
  170. {
  171. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 4.");
  172. lua_error(state);
  173. }
  174. Vector4* param3 = (Vector4*)((ScriptController::LuaObject*)userdata4)->instance;
  175. SpriteBatch* instance = getInstance(state);
  176. instance->draw(*param1, *param2, *param3);
  177. return 0;
  178. }
  179. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  180. lua_type(state, 2) == LUA_TUSERDATA &&
  181. lua_type(state, 3) == LUA_TUSERDATA &&
  182. lua_type(state, 4) == LUA_TUSERDATA)
  183. {
  184. // Get parameter 1 off the stack.
  185. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  186. if (!userdata2)
  187. {
  188. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  189. lua_error(state);
  190. }
  191. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  192. // Get parameter 2 off the stack.
  193. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Rectangle");
  194. if (!userdata3)
  195. {
  196. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 3.");
  197. lua_error(state);
  198. }
  199. Rectangle* param2 = (Rectangle*)((ScriptController::LuaObject*)userdata3)->instance;
  200. // Get parameter 3 off the stack.
  201. void* userdata4 = ScriptController::getInstance()->getObjectPointer(4, "Vector2");
  202. if (!userdata4)
  203. {
  204. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 4.");
  205. lua_error(state);
  206. }
  207. Vector2* param3 = (Vector2*)((ScriptController::LuaObject*)userdata4)->instance;
  208. SpriteBatch* instance = getInstance(state);
  209. instance->draw(*param1, *param2, *param3);
  210. return 0;
  211. }
  212. else
  213. {
  214. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  215. lua_error(state);
  216. }
  217. break;
  218. }
  219. case 5:
  220. {
  221. if (lua_type(state, 1) == LUA_TUSERDATA &&
  222. lua_type(state, 2) == LUA_TUSERDATA &&
  223. lua_type(state, 3) == LUA_TUSERDATA &&
  224. lua_type(state, 4) == LUA_TUSERDATA &&
  225. lua_type(state, 5) == LUA_TUSERDATA)
  226. {
  227. // Get parameter 1 off the stack.
  228. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  229. if (!userdata2)
  230. {
  231. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  232. lua_error(state);
  233. }
  234. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  235. // Get parameter 2 off the stack.
  236. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Rectangle");
  237. if (!userdata3)
  238. {
  239. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 3.");
  240. lua_error(state);
  241. }
  242. Rectangle* param2 = (Rectangle*)((ScriptController::LuaObject*)userdata3)->instance;
  243. // Get parameter 3 off the stack.
  244. void* userdata4 = ScriptController::getInstance()->getObjectPointer(4, "Vector2");
  245. if (!userdata4)
  246. {
  247. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 4.");
  248. lua_error(state);
  249. }
  250. Vector2* param3 = (Vector2*)((ScriptController::LuaObject*)userdata4)->instance;
  251. // Get parameter 4 off the stack.
  252. void* userdata5 = ScriptController::getInstance()->getObjectPointer(5, "Vector4");
  253. if (!userdata5)
  254. {
  255. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 5.");
  256. lua_error(state);
  257. }
  258. Vector4* param4 = (Vector4*)((ScriptController::LuaObject*)userdata5)->instance;
  259. SpriteBatch* instance = getInstance(state);
  260. instance->draw(*param1, *param2, *param3, *param4);
  261. return 0;
  262. }
  263. else
  264. {
  265. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  266. lua_error(state);
  267. }
  268. break;
  269. }
  270. case 7:
  271. {
  272. if (lua_type(state, 1) == LUA_TUSERDATA &&
  273. lua_type(state, 2) == LUA_TUSERDATA &&
  274. lua_type(state, 3) == LUA_TUSERDATA &&
  275. lua_type(state, 4) == LUA_TUSERDATA &&
  276. lua_type(state, 5) == LUA_TUSERDATA &&
  277. lua_type(state, 6) == LUA_TUSERDATA &&
  278. lua_type(state, 7) == LUA_TNUMBER)
  279. {
  280. // Get parameter 1 off the stack.
  281. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  282. if (!userdata2)
  283. {
  284. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  285. lua_error(state);
  286. }
  287. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  288. // Get parameter 2 off the stack.
  289. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Rectangle");
  290. if (!userdata3)
  291. {
  292. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 3.");
  293. lua_error(state);
  294. }
  295. Rectangle* param2 = (Rectangle*)((ScriptController::LuaObject*)userdata3)->instance;
  296. // Get parameter 3 off the stack.
  297. void* userdata4 = ScriptController::getInstance()->getObjectPointer(4, "Vector2");
  298. if (!userdata4)
  299. {
  300. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 4.");
  301. lua_error(state);
  302. }
  303. Vector2* param3 = (Vector2*)((ScriptController::LuaObject*)userdata4)->instance;
  304. // Get parameter 4 off the stack.
  305. void* userdata5 = ScriptController::getInstance()->getObjectPointer(5, "Vector4");
  306. if (!userdata5)
  307. {
  308. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 5.");
  309. lua_error(state);
  310. }
  311. Vector4* param4 = (Vector4*)((ScriptController::LuaObject*)userdata5)->instance;
  312. // Get parameter 5 off the stack.
  313. void* userdata6 = ScriptController::getInstance()->getObjectPointer(6, "Vector2");
  314. if (!userdata6)
  315. {
  316. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 6.");
  317. lua_error(state);
  318. }
  319. Vector2* param5 = (Vector2*)((ScriptController::LuaObject*)userdata6)->instance;
  320. // Get parameter 6 off the stack.
  321. float param6 = (float)luaL_checknumber(state, 7);
  322. SpriteBatch* instance = getInstance(state);
  323. instance->draw(*param1, *param2, *param3, *param4, *param5, param6);
  324. return 0;
  325. }
  326. else
  327. {
  328. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  329. lua_error(state);
  330. }
  331. break;
  332. }
  333. case 10:
  334. {
  335. if (lua_type(state, 1) == LUA_TUSERDATA &&
  336. lua_type(state, 2) == LUA_TNUMBER &&
  337. lua_type(state, 3) == LUA_TNUMBER &&
  338. lua_type(state, 4) == LUA_TNUMBER &&
  339. lua_type(state, 5) == LUA_TNUMBER &&
  340. lua_type(state, 6) == LUA_TNUMBER &&
  341. lua_type(state, 7) == LUA_TNUMBER &&
  342. lua_type(state, 8) == LUA_TNUMBER &&
  343. lua_type(state, 9) == LUA_TNUMBER &&
  344. lua_type(state, 10) == LUA_TUSERDATA)
  345. {
  346. // Get parameter 1 off the stack.
  347. float param1 = (float)luaL_checknumber(state, 2);
  348. // Get parameter 2 off the stack.
  349. float param2 = (float)luaL_checknumber(state, 3);
  350. // Get parameter 3 off the stack.
  351. float param3 = (float)luaL_checknumber(state, 4);
  352. // Get parameter 4 off the stack.
  353. float param4 = (float)luaL_checknumber(state, 5);
  354. // Get parameter 5 off the stack.
  355. float param5 = (float)luaL_checknumber(state, 6);
  356. // Get parameter 6 off the stack.
  357. float param6 = (float)luaL_checknumber(state, 7);
  358. // Get parameter 7 off the stack.
  359. float param7 = (float)luaL_checknumber(state, 8);
  360. // Get parameter 8 off the stack.
  361. float param8 = (float)luaL_checknumber(state, 9);
  362. // Get parameter 9 off the stack.
  363. void* userdata10 = ScriptController::getInstance()->getObjectPointer(10, "Vector4");
  364. if (!userdata10)
  365. {
  366. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 10.");
  367. lua_error(state);
  368. }
  369. Vector4* param9 = (Vector4*)((ScriptController::LuaObject*)userdata10)->instance;
  370. SpriteBatch* instance = getInstance(state);
  371. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, *param9);
  372. return 0;
  373. }
  374. else
  375. {
  376. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  377. lua_error(state);
  378. }
  379. break;
  380. }
  381. case 11:
  382. {
  383. if (lua_type(state, 1) == LUA_TUSERDATA &&
  384. lua_type(state, 2) == LUA_TUSERDATA &&
  385. lua_type(state, 3) == LUA_TNUMBER &&
  386. lua_type(state, 4) == LUA_TNUMBER &&
  387. lua_type(state, 5) == LUA_TNUMBER &&
  388. lua_type(state, 6) == LUA_TNUMBER &&
  389. lua_type(state, 7) == LUA_TNUMBER &&
  390. lua_type(state, 8) == LUA_TNUMBER &&
  391. lua_type(state, 9) == LUA_TUSERDATA &&
  392. lua_type(state, 10) == LUA_TUSERDATA &&
  393. lua_type(state, 11) == LUA_TNUMBER)
  394. {
  395. // Get parameter 1 off the stack.
  396. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  397. if (!userdata2)
  398. {
  399. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  400. lua_error(state);
  401. }
  402. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  403. // Get parameter 2 off the stack.
  404. float param2 = (float)luaL_checknumber(state, 3);
  405. // Get parameter 3 off the stack.
  406. float param3 = (float)luaL_checknumber(state, 4);
  407. // Get parameter 4 off the stack.
  408. float param4 = (float)luaL_checknumber(state, 5);
  409. // Get parameter 5 off the stack.
  410. float param5 = (float)luaL_checknumber(state, 6);
  411. // Get parameter 6 off the stack.
  412. float param6 = (float)luaL_checknumber(state, 7);
  413. // Get parameter 7 off the stack.
  414. float param7 = (float)luaL_checknumber(state, 8);
  415. // Get parameter 8 off the stack.
  416. void* userdata9 = ScriptController::getInstance()->getObjectPointer(9, "Vector4");
  417. if (!userdata9)
  418. {
  419. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 9.");
  420. lua_error(state);
  421. }
  422. Vector4* param8 = (Vector4*)((ScriptController::LuaObject*)userdata9)->instance;
  423. // Get parameter 9 off the stack.
  424. void* userdata10 = ScriptController::getInstance()->getObjectPointer(10, "Vector2");
  425. if (!userdata10)
  426. {
  427. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 10.");
  428. lua_error(state);
  429. }
  430. Vector2* param9 = (Vector2*)((ScriptController::LuaObject*)userdata10)->instance;
  431. // Get parameter 10 off the stack.
  432. float param10 = (float)luaL_checknumber(state, 11);
  433. SpriteBatch* instance = getInstance(state);
  434. instance->draw(*param1, param2, param3, param4, param5, param6, param7, *param8, *param9, param10);
  435. return 0;
  436. }
  437. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  438. lua_type(state, 2) == LUA_TNUMBER &&
  439. lua_type(state, 3) == LUA_TNUMBER &&
  440. lua_type(state, 4) == LUA_TNUMBER &&
  441. lua_type(state, 5) == LUA_TNUMBER &&
  442. lua_type(state, 6) == LUA_TNUMBER &&
  443. lua_type(state, 7) == LUA_TNUMBER &&
  444. lua_type(state, 8) == LUA_TNUMBER &&
  445. lua_type(state, 9) == LUA_TNUMBER &&
  446. lua_type(state, 10) == LUA_TUSERDATA &&
  447. lua_type(state, 11) == LUA_TUSERDATA)
  448. {
  449. // Get parameter 1 off the stack.
  450. float param1 = (float)luaL_checknumber(state, 2);
  451. // Get parameter 2 off the stack.
  452. float param2 = (float)luaL_checknumber(state, 3);
  453. // Get parameter 3 off the stack.
  454. float param3 = (float)luaL_checknumber(state, 4);
  455. // Get parameter 4 off the stack.
  456. float param4 = (float)luaL_checknumber(state, 5);
  457. // Get parameter 5 off the stack.
  458. float param5 = (float)luaL_checknumber(state, 6);
  459. // Get parameter 6 off the stack.
  460. float param6 = (float)luaL_checknumber(state, 7);
  461. // Get parameter 7 off the stack.
  462. float param7 = (float)luaL_checknumber(state, 8);
  463. // Get parameter 8 off the stack.
  464. float param8 = (float)luaL_checknumber(state, 9);
  465. // Get parameter 9 off the stack.
  466. void* userdata10 = ScriptController::getInstance()->getObjectPointer(10, "Vector4");
  467. if (!userdata10)
  468. {
  469. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 10.");
  470. lua_error(state);
  471. }
  472. Vector4* param9 = (Vector4*)((ScriptController::LuaObject*)userdata10)->instance;
  473. // Get parameter 10 off the stack.
  474. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Rectangle");
  475. if (!userdata11)
  476. {
  477. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Rectangle' for parameter 11.");
  478. lua_error(state);
  479. }
  480. Rectangle* param10 = (Rectangle*)((ScriptController::LuaObject*)userdata11)->instance;
  481. SpriteBatch* instance = getInstance(state);
  482. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, *param9, *param10);
  483. return 0;
  484. }
  485. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  486. lua_type(state, 2) == LUA_TNUMBER &&
  487. lua_type(state, 3) == LUA_TNUMBER &&
  488. lua_type(state, 4) == LUA_TNUMBER &&
  489. lua_type(state, 5) == LUA_TNUMBER &&
  490. lua_type(state, 6) == LUA_TNUMBER &&
  491. lua_type(state, 7) == LUA_TNUMBER &&
  492. lua_type(state, 8) == LUA_TNUMBER &&
  493. lua_type(state, 9) == LUA_TNUMBER &&
  494. lua_type(state, 10) == LUA_TNUMBER &&
  495. lua_type(state, 11) == LUA_TUSERDATA)
  496. {
  497. // Get parameter 1 off the stack.
  498. float param1 = (float)luaL_checknumber(state, 2);
  499. // Get parameter 2 off the stack.
  500. float param2 = (float)luaL_checknumber(state, 3);
  501. // Get parameter 3 off the stack.
  502. float param3 = (float)luaL_checknumber(state, 4);
  503. // Get parameter 4 off the stack.
  504. float param4 = (float)luaL_checknumber(state, 5);
  505. // Get parameter 5 off the stack.
  506. float param5 = (float)luaL_checknumber(state, 6);
  507. // Get parameter 6 off the stack.
  508. float param6 = (float)luaL_checknumber(state, 7);
  509. // Get parameter 7 off the stack.
  510. float param7 = (float)luaL_checknumber(state, 8);
  511. // Get parameter 8 off the stack.
  512. float param8 = (float)luaL_checknumber(state, 9);
  513. // Get parameter 9 off the stack.
  514. float param9 = (float)luaL_checknumber(state, 10);
  515. // Get parameter 10 off the stack.
  516. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Vector4");
  517. if (!userdata11)
  518. {
  519. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 11.");
  520. lua_error(state);
  521. }
  522. Vector4* param10 = (Vector4*)((ScriptController::LuaObject*)userdata11)->instance;
  523. SpriteBatch* instance = getInstance(state);
  524. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, param9, *param10);
  525. return 0;
  526. }
  527. else
  528. {
  529. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  530. lua_error(state);
  531. }
  532. break;
  533. }
  534. case 12:
  535. {
  536. if (lua_type(state, 1) == LUA_TUSERDATA &&
  537. lua_type(state, 2) == LUA_TUSERDATA &&
  538. lua_type(state, 3) == LUA_TNUMBER &&
  539. lua_type(state, 4) == LUA_TNUMBER &&
  540. lua_type(state, 5) == LUA_TNUMBER &&
  541. lua_type(state, 6) == LUA_TNUMBER &&
  542. lua_type(state, 7) == LUA_TNUMBER &&
  543. lua_type(state, 8) == LUA_TNUMBER &&
  544. lua_type(state, 9) == LUA_TUSERDATA &&
  545. lua_type(state, 10) == LUA_TUSERDATA &&
  546. lua_type(state, 11) == LUA_TNUMBER &&
  547. lua_type(state, 12) == LUA_TBOOLEAN)
  548. {
  549. // Get parameter 1 off the stack.
  550. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  551. if (!userdata2)
  552. {
  553. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  554. lua_error(state);
  555. }
  556. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  557. // Get parameter 2 off the stack.
  558. float param2 = (float)luaL_checknumber(state, 3);
  559. // Get parameter 3 off the stack.
  560. float param3 = (float)luaL_checknumber(state, 4);
  561. // Get parameter 4 off the stack.
  562. float param4 = (float)luaL_checknumber(state, 5);
  563. // Get parameter 5 off the stack.
  564. float param5 = (float)luaL_checknumber(state, 6);
  565. // Get parameter 6 off the stack.
  566. float param6 = (float)luaL_checknumber(state, 7);
  567. // Get parameter 7 off the stack.
  568. float param7 = (float)luaL_checknumber(state, 8);
  569. // Get parameter 8 off the stack.
  570. void* userdata9 = ScriptController::getInstance()->getObjectPointer(9, "Vector4");
  571. if (!userdata9)
  572. {
  573. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 9.");
  574. lua_error(state);
  575. }
  576. Vector4* param8 = (Vector4*)((ScriptController::LuaObject*)userdata9)->instance;
  577. // Get parameter 9 off the stack.
  578. void* userdata10 = ScriptController::getInstance()->getObjectPointer(10, "Vector2");
  579. if (!userdata10)
  580. {
  581. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 10.");
  582. lua_error(state);
  583. }
  584. Vector2* param9 = (Vector2*)((ScriptController::LuaObject*)userdata10)->instance;
  585. // Get parameter 10 off the stack.
  586. float param10 = (float)luaL_checknumber(state, 11);
  587. // Get parameter 11 off the stack.
  588. bool param11 = (luaL_checkint(state, 12) != 0);
  589. SpriteBatch* instance = getInstance(state);
  590. instance->draw(*param1, param2, param3, param4, param5, param6, param7, *param8, *param9, param10, param11);
  591. return 0;
  592. }
  593. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  594. lua_type(state, 2) == LUA_TNUMBER &&
  595. lua_type(state, 3) == LUA_TNUMBER &&
  596. lua_type(state, 4) == LUA_TNUMBER &&
  597. lua_type(state, 5) == LUA_TNUMBER &&
  598. lua_type(state, 6) == LUA_TNUMBER &&
  599. lua_type(state, 7) == LUA_TNUMBER &&
  600. lua_type(state, 8) == LUA_TNUMBER &&
  601. lua_type(state, 9) == LUA_TNUMBER &&
  602. lua_type(state, 10) == LUA_TNUMBER &&
  603. lua_type(state, 11) == LUA_TUSERDATA &&
  604. lua_type(state, 12) == LUA_TBOOLEAN)
  605. {
  606. // Get parameter 1 off the stack.
  607. float param1 = (float)luaL_checknumber(state, 2);
  608. // Get parameter 2 off the stack.
  609. float param2 = (float)luaL_checknumber(state, 3);
  610. // Get parameter 3 off the stack.
  611. float param3 = (float)luaL_checknumber(state, 4);
  612. // Get parameter 4 off the stack.
  613. float param4 = (float)luaL_checknumber(state, 5);
  614. // Get parameter 5 off the stack.
  615. float param5 = (float)luaL_checknumber(state, 6);
  616. // Get parameter 6 off the stack.
  617. float param6 = (float)luaL_checknumber(state, 7);
  618. // Get parameter 7 off the stack.
  619. float param7 = (float)luaL_checknumber(state, 8);
  620. // Get parameter 8 off the stack.
  621. float param8 = (float)luaL_checknumber(state, 9);
  622. // Get parameter 9 off the stack.
  623. float param9 = (float)luaL_checknumber(state, 10);
  624. // Get parameter 10 off the stack.
  625. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Vector4");
  626. if (!userdata11)
  627. {
  628. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 11.");
  629. lua_error(state);
  630. }
  631. Vector4* param10 = (Vector4*)((ScriptController::LuaObject*)userdata11)->instance;
  632. // Get parameter 11 off the stack.
  633. bool param11 = (luaL_checkint(state, 12) != 0);
  634. SpriteBatch* instance = getInstance(state);
  635. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, param9, *param10, param11);
  636. return 0;
  637. }
  638. else
  639. {
  640. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  641. lua_error(state);
  642. }
  643. break;
  644. }
  645. case 13:
  646. {
  647. if (lua_type(state, 1) == LUA_TUSERDATA &&
  648. lua_type(state, 2) == LUA_TNUMBER &&
  649. lua_type(state, 3) == LUA_TNUMBER &&
  650. lua_type(state, 4) == LUA_TNUMBER &&
  651. lua_type(state, 5) == LUA_TNUMBER &&
  652. lua_type(state, 6) == LUA_TNUMBER &&
  653. lua_type(state, 7) == LUA_TNUMBER &&
  654. lua_type(state, 8) == LUA_TNUMBER &&
  655. lua_type(state, 9) == LUA_TNUMBER &&
  656. lua_type(state, 10) == LUA_TNUMBER &&
  657. lua_type(state, 11) == LUA_TUSERDATA &&
  658. lua_type(state, 12) == LUA_TUSERDATA &&
  659. lua_type(state, 13) == LUA_TNUMBER)
  660. {
  661. // Get parameter 1 off the stack.
  662. float param1 = (float)luaL_checknumber(state, 2);
  663. // Get parameter 2 off the stack.
  664. float param2 = (float)luaL_checknumber(state, 3);
  665. // Get parameter 3 off the stack.
  666. float param3 = (float)luaL_checknumber(state, 4);
  667. // Get parameter 4 off the stack.
  668. float param4 = (float)luaL_checknumber(state, 5);
  669. // Get parameter 5 off the stack.
  670. float param5 = (float)luaL_checknumber(state, 6);
  671. // Get parameter 6 off the stack.
  672. float param6 = (float)luaL_checknumber(state, 7);
  673. // Get parameter 7 off the stack.
  674. float param7 = (float)luaL_checknumber(state, 8);
  675. // Get parameter 8 off the stack.
  676. float param8 = (float)luaL_checknumber(state, 9);
  677. // Get parameter 9 off the stack.
  678. float param9 = (float)luaL_checknumber(state, 10);
  679. // Get parameter 10 off the stack.
  680. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Vector4");
  681. if (!userdata11)
  682. {
  683. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 11.");
  684. lua_error(state);
  685. }
  686. Vector4* param10 = (Vector4*)((ScriptController::LuaObject*)userdata11)->instance;
  687. // Get parameter 11 off the stack.
  688. void* userdata12 = ScriptController::getInstance()->getObjectPointer(12, "Vector2");
  689. if (!userdata12)
  690. {
  691. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 12.");
  692. lua_error(state);
  693. }
  694. Vector2* param11 = (Vector2*)((ScriptController::LuaObject*)userdata12)->instance;
  695. // Get parameter 12 off the stack.
  696. float param12 = (float)luaL_checknumber(state, 13);
  697. SpriteBatch* instance = getInstance(state);
  698. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, param9, *param10, *param11, param12);
  699. return 0;
  700. }
  701. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  702. lua_type(state, 2) == LUA_TUSERDATA &&
  703. lua_type(state, 3) == LUA_TUSERDATA &&
  704. lua_type(state, 4) == LUA_TUSERDATA &&
  705. lua_type(state, 5) == LUA_TNUMBER &&
  706. lua_type(state, 6) == LUA_TNUMBER &&
  707. lua_type(state, 7) == LUA_TNUMBER &&
  708. lua_type(state, 8) == LUA_TNUMBER &&
  709. lua_type(state, 9) == LUA_TNUMBER &&
  710. lua_type(state, 10) == LUA_TNUMBER &&
  711. lua_type(state, 11) == LUA_TUSERDATA &&
  712. lua_type(state, 12) == LUA_TUSERDATA &&
  713. lua_type(state, 13) == LUA_TNUMBER)
  714. {
  715. // Get parameter 1 off the stack.
  716. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Vector3");
  717. if (!userdata2)
  718. {
  719. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 2.");
  720. lua_error(state);
  721. }
  722. Vector3* param1 = (Vector3*)((ScriptController::LuaObject*)userdata2)->instance;
  723. // Get parameter 2 off the stack.
  724. void* userdata3 = ScriptController::getInstance()->getObjectPointer(3, "Vector3");
  725. if (!userdata3)
  726. {
  727. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 3.");
  728. lua_error(state);
  729. }
  730. Vector3* param2 = (Vector3*)((ScriptController::LuaObject*)userdata3)->instance;
  731. // Get parameter 3 off the stack.
  732. void* userdata4 = ScriptController::getInstance()->getObjectPointer(4, "Vector3");
  733. if (!userdata4)
  734. {
  735. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector3' for parameter 4.");
  736. lua_error(state);
  737. }
  738. Vector3* param3 = (Vector3*)((ScriptController::LuaObject*)userdata4)->instance;
  739. // Get parameter 4 off the stack.
  740. float param4 = (float)luaL_checknumber(state, 5);
  741. // Get parameter 5 off the stack.
  742. float param5 = (float)luaL_checknumber(state, 6);
  743. // Get parameter 6 off the stack.
  744. float param6 = (float)luaL_checknumber(state, 7);
  745. // Get parameter 7 off the stack.
  746. float param7 = (float)luaL_checknumber(state, 8);
  747. // Get parameter 8 off the stack.
  748. float param8 = (float)luaL_checknumber(state, 9);
  749. // Get parameter 9 off the stack.
  750. float param9 = (float)luaL_checknumber(state, 10);
  751. // Get parameter 10 off the stack.
  752. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Vector4");
  753. if (!userdata11)
  754. {
  755. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 11.");
  756. lua_error(state);
  757. }
  758. Vector4* param10 = (Vector4*)((ScriptController::LuaObject*)userdata11)->instance;
  759. // Get parameter 11 off the stack.
  760. void* userdata12 = ScriptController::getInstance()->getObjectPointer(12, "Vector2");
  761. if (!userdata12)
  762. {
  763. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 12.");
  764. lua_error(state);
  765. }
  766. Vector2* param11 = (Vector2*)((ScriptController::LuaObject*)userdata12)->instance;
  767. // Get parameter 12 off the stack.
  768. float param12 = (float)luaL_checknumber(state, 13);
  769. SpriteBatch* instance = getInstance(state);
  770. instance->draw(*param1, *param2, *param3, param4, param5, param6, param7, param8, param9, *param10, *param11, param12);
  771. return 0;
  772. }
  773. else
  774. {
  775. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  776. lua_error(state);
  777. }
  778. break;
  779. }
  780. case 14:
  781. {
  782. if (lua_type(state, 1) == LUA_TUSERDATA &&
  783. lua_type(state, 2) == LUA_TNUMBER &&
  784. lua_type(state, 3) == LUA_TNUMBER &&
  785. lua_type(state, 4) == LUA_TNUMBER &&
  786. lua_type(state, 5) == LUA_TNUMBER &&
  787. lua_type(state, 6) == LUA_TNUMBER &&
  788. lua_type(state, 7) == LUA_TNUMBER &&
  789. lua_type(state, 8) == LUA_TNUMBER &&
  790. lua_type(state, 9) == LUA_TNUMBER &&
  791. lua_type(state, 10) == LUA_TNUMBER &&
  792. lua_type(state, 11) == LUA_TUSERDATA &&
  793. lua_type(state, 12) == LUA_TUSERDATA &&
  794. lua_type(state, 13) == LUA_TNUMBER &&
  795. lua_type(state, 14) == LUA_TBOOLEAN)
  796. {
  797. // Get parameter 1 off the stack.
  798. float param1 = (float)luaL_checknumber(state, 2);
  799. // Get parameter 2 off the stack.
  800. float param2 = (float)luaL_checknumber(state, 3);
  801. // Get parameter 3 off the stack.
  802. float param3 = (float)luaL_checknumber(state, 4);
  803. // Get parameter 4 off the stack.
  804. float param4 = (float)luaL_checknumber(state, 5);
  805. // Get parameter 5 off the stack.
  806. float param5 = (float)luaL_checknumber(state, 6);
  807. // Get parameter 6 off the stack.
  808. float param6 = (float)luaL_checknumber(state, 7);
  809. // Get parameter 7 off the stack.
  810. float param7 = (float)luaL_checknumber(state, 8);
  811. // Get parameter 8 off the stack.
  812. float param8 = (float)luaL_checknumber(state, 9);
  813. // Get parameter 9 off the stack.
  814. float param9 = (float)luaL_checknumber(state, 10);
  815. // Get parameter 10 off the stack.
  816. void* userdata11 = ScriptController::getInstance()->getObjectPointer(11, "Vector4");
  817. if (!userdata11)
  818. {
  819. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector4' for parameter 11.");
  820. lua_error(state);
  821. }
  822. Vector4* param10 = (Vector4*)((ScriptController::LuaObject*)userdata11)->instance;
  823. // Get parameter 11 off the stack.
  824. void* userdata12 = ScriptController::getInstance()->getObjectPointer(12, "Vector2");
  825. if (!userdata12)
  826. {
  827. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Vector2' for parameter 12.");
  828. lua_error(state);
  829. }
  830. Vector2* param11 = (Vector2*)((ScriptController::LuaObject*)userdata12)->instance;
  831. // Get parameter 12 off the stack.
  832. float param12 = (float)luaL_checknumber(state, 13);
  833. // Get parameter 13 off the stack.
  834. bool param13 = (luaL_checkint(state, 14) != 0);
  835. SpriteBatch* instance = getInstance(state);
  836. instance->draw(param1, param2, param3, param4, param5, param6, param7, param8, param9, *param10, *param11, param12, param13);
  837. return 0;
  838. }
  839. else
  840. {
  841. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  842. lua_error(state);
  843. }
  844. break;
  845. }
  846. default:
  847. {
  848. lua_pushstring(state, "Invalid number of parameters (expected 3, 4, 5, 7, 10, 11, 12, 13 or 14).");
  849. lua_error(state);
  850. break;
  851. }
  852. }
  853. return 0;
  854. }
  855. int lua_SpriteBatch_end(lua_State* state)
  856. {
  857. // Get the number of parameters.
  858. int paramCount = lua_gettop(state);
  859. // Attempt to match the parameters to a valid binding.
  860. switch (paramCount)
  861. {
  862. case 1:
  863. {
  864. if (lua_type(state, 1) == LUA_TUSERDATA)
  865. {
  866. SpriteBatch* instance = getInstance(state);
  867. instance->end();
  868. return 0;
  869. }
  870. else
  871. {
  872. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  873. lua_error(state);
  874. }
  875. break;
  876. }
  877. default:
  878. {
  879. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  880. lua_error(state);
  881. break;
  882. }
  883. }
  884. return 0;
  885. }
  886. int lua_SpriteBatch_getMaterial(lua_State* state)
  887. {
  888. // Get the number of parameters.
  889. int paramCount = lua_gettop(state);
  890. // Attempt to match the parameters to a valid binding.
  891. switch (paramCount)
  892. {
  893. case 1:
  894. {
  895. if (lua_type(state, 1) == LUA_TUSERDATA)
  896. {
  897. SpriteBatch* instance = getInstance(state);
  898. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  899. object->instance = (void*)instance->getMaterial();
  900. object->owns = false;
  901. luaL_getmetatable(state, "Material");
  902. lua_setmetatable(state, -2);
  903. return 1;
  904. }
  905. else
  906. {
  907. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  908. lua_error(state);
  909. }
  910. break;
  911. }
  912. default:
  913. {
  914. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  915. lua_error(state);
  916. break;
  917. }
  918. }
  919. return 0;
  920. }
  921. int lua_SpriteBatch_getProjectionMatrix(lua_State* state)
  922. {
  923. // Get the number of parameters.
  924. int paramCount = lua_gettop(state);
  925. // Attempt to match the parameters to a valid binding.
  926. switch (paramCount)
  927. {
  928. case 1:
  929. {
  930. if (lua_type(state, 1) == LUA_TUSERDATA)
  931. {
  932. SpriteBatch* instance = getInstance(state);
  933. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  934. object->instance = (void*)&(instance->getProjectionMatrix());
  935. object->owns = false;
  936. luaL_getmetatable(state, "Matrix");
  937. lua_setmetatable(state, -2);
  938. return 1;
  939. }
  940. else
  941. {
  942. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  943. lua_error(state);
  944. }
  945. break;
  946. }
  947. default:
  948. {
  949. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  950. lua_error(state);
  951. break;
  952. }
  953. }
  954. return 0;
  955. }
  956. int lua_SpriteBatch_getStateBlock(lua_State* state)
  957. {
  958. // Get the number of parameters.
  959. int paramCount = lua_gettop(state);
  960. // Attempt to match the parameters to a valid binding.
  961. switch (paramCount)
  962. {
  963. case 1:
  964. {
  965. if (lua_type(state, 1) == LUA_TUSERDATA)
  966. {
  967. SpriteBatch* instance = getInstance(state);
  968. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  969. object->instance = (void*)instance->getStateBlock();
  970. object->owns = false;
  971. luaL_getmetatable(state, "RenderStateStateBlock");
  972. lua_setmetatable(state, -2);
  973. return 1;
  974. }
  975. else
  976. {
  977. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  978. lua_error(state);
  979. }
  980. break;
  981. }
  982. default:
  983. {
  984. lua_pushstring(state, "Invalid number of parameters (expected 1).");
  985. lua_error(state);
  986. break;
  987. }
  988. }
  989. return 0;
  990. }
  991. int lua_SpriteBatch_setProjectionMatrix(lua_State* state)
  992. {
  993. // Get the number of parameters.
  994. int paramCount = lua_gettop(state);
  995. // Attempt to match the parameters to a valid binding.
  996. switch (paramCount)
  997. {
  998. case 2:
  999. {
  1000. if (lua_type(state, 1) == LUA_TUSERDATA &&
  1001. lua_type(state, 2) == LUA_TUSERDATA)
  1002. {
  1003. // Get parameter 1 off the stack.
  1004. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Matrix");
  1005. if (!userdata2)
  1006. {
  1007. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Matrix' for parameter 2.");
  1008. lua_error(state);
  1009. }
  1010. Matrix* param1 = (Matrix*)((ScriptController::LuaObject*)userdata2)->instance;
  1011. SpriteBatch* instance = getInstance(state);
  1012. instance->setProjectionMatrix(*param1);
  1013. return 0;
  1014. }
  1015. else
  1016. {
  1017. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  1018. lua_error(state);
  1019. }
  1020. break;
  1021. }
  1022. default:
  1023. {
  1024. lua_pushstring(state, "Invalid number of parameters (expected 2).");
  1025. lua_error(state);
  1026. break;
  1027. }
  1028. }
  1029. return 0;
  1030. }
  1031. int lua_SpriteBatch_static_create(lua_State* state)
  1032. {
  1033. // Get the number of parameters.
  1034. int paramCount = lua_gettop(state);
  1035. // Attempt to match the parameters to a valid binding.
  1036. switch (paramCount)
  1037. {
  1038. case 1:
  1039. {
  1040. if (lua_type(state, 1) == LUA_TSTRING)
  1041. {
  1042. // Get parameter 1 off the stack.
  1043. const char* param1 = luaL_checkstring(state, 1);
  1044. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1045. object->instance = (void*)SpriteBatch::create(param1);
  1046. object->owns = false;
  1047. luaL_getmetatable(state, "SpriteBatch");
  1048. lua_setmetatable(state, -2);
  1049. return 1;
  1050. }
  1051. else if (lua_type(state, 1) == LUA_TUSERDATA)
  1052. {
  1053. // Get parameter 1 off the stack.
  1054. void* userdata1 = ScriptController::getInstance()->getObjectPointer(1, "Texture");
  1055. if (!userdata1)
  1056. {
  1057. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Texture' for parameter 1.");
  1058. lua_error(state);
  1059. }
  1060. Texture* param1 = (Texture*)((ScriptController::LuaObject*)userdata1)->instance;
  1061. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1062. object->instance = (void*)SpriteBatch::create(param1);
  1063. object->owns = false;
  1064. luaL_getmetatable(state, "SpriteBatch");
  1065. lua_setmetatable(state, -2);
  1066. return 1;
  1067. }
  1068. else
  1069. {
  1070. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  1071. lua_error(state);
  1072. }
  1073. break;
  1074. }
  1075. case 2:
  1076. {
  1077. if (lua_type(state, 1) == LUA_TSTRING &&
  1078. lua_type(state, 2) == LUA_TUSERDATA)
  1079. {
  1080. // Get parameter 1 off the stack.
  1081. const char* param1 = luaL_checkstring(state, 1);
  1082. // Get parameter 2 off the stack.
  1083. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Effect");
  1084. if (!userdata2)
  1085. {
  1086. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Effect' for parameter 2.");
  1087. lua_error(state);
  1088. }
  1089. Effect* param2 = (Effect*)((ScriptController::LuaObject*)userdata2)->instance;
  1090. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1091. object->instance = (void*)SpriteBatch::create(param1, param2);
  1092. object->owns = false;
  1093. luaL_getmetatable(state, "SpriteBatch");
  1094. lua_setmetatable(state, -2);
  1095. return 1;
  1096. }
  1097. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  1098. lua_type(state, 2) == LUA_TUSERDATA)
  1099. {
  1100. // Get parameter 1 off the stack.
  1101. void* userdata1 = ScriptController::getInstance()->getObjectPointer(1, "Texture");
  1102. if (!userdata1)
  1103. {
  1104. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Texture' for parameter 1.");
  1105. lua_error(state);
  1106. }
  1107. Texture* param1 = (Texture*)((ScriptController::LuaObject*)userdata1)->instance;
  1108. // Get parameter 2 off the stack.
  1109. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Effect");
  1110. if (!userdata2)
  1111. {
  1112. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Effect' for parameter 2.");
  1113. lua_error(state);
  1114. }
  1115. Effect* param2 = (Effect*)((ScriptController::LuaObject*)userdata2)->instance;
  1116. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1117. object->instance = (void*)SpriteBatch::create(param1, param2);
  1118. object->owns = false;
  1119. luaL_getmetatable(state, "SpriteBatch");
  1120. lua_setmetatable(state, -2);
  1121. return 1;
  1122. }
  1123. else
  1124. {
  1125. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  1126. lua_error(state);
  1127. }
  1128. break;
  1129. }
  1130. case 3:
  1131. {
  1132. if (lua_type(state, 1) == LUA_TSTRING &&
  1133. lua_type(state, 2) == LUA_TUSERDATA &&
  1134. lua_type(state, 3) == LUA_TNUMBER)
  1135. {
  1136. // Get parameter 1 off the stack.
  1137. const char* param1 = luaL_checkstring(state, 1);
  1138. // Get parameter 2 off the stack.
  1139. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Effect");
  1140. if (!userdata2)
  1141. {
  1142. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Effect' for parameter 2.");
  1143. lua_error(state);
  1144. }
  1145. Effect* param2 = (Effect*)((ScriptController::LuaObject*)userdata2)->instance;
  1146. // Get parameter 3 off the stack.
  1147. unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 3);
  1148. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1149. object->instance = (void*)SpriteBatch::create(param1, param2, param3);
  1150. object->owns = false;
  1151. luaL_getmetatable(state, "SpriteBatch");
  1152. lua_setmetatable(state, -2);
  1153. return 1;
  1154. }
  1155. else if (lua_type(state, 1) == LUA_TUSERDATA &&
  1156. lua_type(state, 2) == LUA_TUSERDATA &&
  1157. lua_type(state, 3) == LUA_TNUMBER)
  1158. {
  1159. // Get parameter 1 off the stack.
  1160. void* userdata1 = ScriptController::getInstance()->getObjectPointer(1, "Texture");
  1161. if (!userdata1)
  1162. {
  1163. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Texture' for parameter 1.");
  1164. lua_error(state);
  1165. }
  1166. Texture* param1 = (Texture*)((ScriptController::LuaObject*)userdata1)->instance;
  1167. // Get parameter 2 off the stack.
  1168. void* userdata2 = ScriptController::getInstance()->getObjectPointer(2, "Effect");
  1169. if (!userdata2)
  1170. {
  1171. lua_pushstring(state, "Failed to retrieve a valid object pointer of type 'Effect' for parameter 2.");
  1172. lua_error(state);
  1173. }
  1174. Effect* param2 = (Effect*)((ScriptController::LuaObject*)userdata2)->instance;
  1175. // Get parameter 3 off the stack.
  1176. unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 3);
  1177. ScriptController::LuaObject* object = (ScriptController::LuaObject*)lua_newuserdata(state, sizeof(ScriptController::LuaObject));
  1178. object->instance = (void*)SpriteBatch::create(param1, param2, param3);
  1179. object->owns = false;
  1180. luaL_getmetatable(state, "SpriteBatch");
  1181. lua_setmetatable(state, -2);
  1182. return 1;
  1183. }
  1184. else
  1185. {
  1186. lua_pushstring(state, "Failed to match the given parameters to a valid function signature.");
  1187. lua_error(state);
  1188. }
  1189. break;
  1190. }
  1191. default:
  1192. {
  1193. lua_pushstring(state, "Invalid number of parameters (expected 1, 2 or 3).");
  1194. lua_error(state);
  1195. break;
  1196. }
  1197. }
  1198. return 0;
  1199. }
  1200. }