/src/Core/objects/RWOps.xs

http://github.com/PerlGameDev/SDL · Unknown · 127 lines · 106 code · 21 blank · 0 comment · 0 complexity · 06dcf593c7ce3f815954b3ce7e33d82b MD5 · raw file

  1. #include "EXTERN.h"
  2. #include "perl.h"
  3. #include "XSUB.h"
  4. #include "ppport.h"
  5. #ifndef aTHX_
  6. #define aTHX_
  7. #endif
  8. #include <SDL.h>
  9. MODULE = SDL::RWOps PACKAGE = SDL::RWOps PREFIX = rwops_
  10. =for documentation
  11. SDL_RWops -- Direct memory read write.
  12. =cut
  13. SDL_RWops*
  14. rwops_alloc (CLASS)
  15. char* CLASS
  16. CODE:
  17. RETVAL = SDL_AllocRW();
  18. OUTPUT:
  19. RETVAL
  20. SDL_RWops*
  21. rwops_new_file ( CLASS, file, mode )
  22. char* CLASS
  23. char* file
  24. char * mode
  25. CODE:
  26. RETVAL = SDL_RWFromFile(file,mode);
  27. OUTPUT:
  28. RETVAL
  29. SDL_RWops*
  30. rwops_new_FP ( CLASS, fp, autoclose )
  31. char* CLASS
  32. FILE* fp
  33. int autoclose
  34. CODE:
  35. RETVAL = SDL_RWFromFP(fp,autoclose);
  36. OUTPUT:
  37. RETVAL
  38. SDL_RWops*
  39. rwops_new_mem ( CLASS, mem, size )
  40. char* CLASS
  41. char* mem
  42. int size
  43. CODE:
  44. RETVAL = SDL_RWFromMem((void*)mem,size);
  45. OUTPUT:
  46. RETVAL
  47. SDL_RWops *
  48. rwops_new_const_mem (CLASS, mem, ... )
  49. char* CLASS
  50. SV* mem
  51. CODE:
  52. STRLEN len;
  53. unsigned char *text = SvPV(mem, len);
  54. if(items > 2 && SvIOK(ST(2)))
  55. len = SvIV(ST(2));
  56. RETVAL = SDL_RWFromConstMem((const void*)text, len);
  57. OUTPUT:
  58. RETVAL
  59. int
  60. rwops_seek ( rw, off, whence )
  61. SDL_RWops* rw
  62. int off
  63. int whence
  64. CODE:
  65. RETVAL = SDL_RWseek(rw,off,whence);
  66. OUTPUT:
  67. RETVAL
  68. int
  69. rwops_tell ( rw )
  70. SDL_RWops* rw
  71. CODE:
  72. RETVAL = SDL_RWtell(rw);
  73. OUTPUT:
  74. RETVAL
  75. int
  76. rwops_read ( rw, mem, size, n )
  77. SDL_RWops* rw
  78. char* mem
  79. int size
  80. int n
  81. CODE:
  82. RETVAL = SDL_RWread(rw,mem,size,n);
  83. OUTPUT:
  84. RETVAL
  85. int
  86. rwops_write ( rw, mem, size, n )
  87. SDL_RWops* rw
  88. char* mem
  89. int size
  90. int n
  91. CODE:
  92. RETVAL = SDL_RWwrite(rw,mem,size,n);
  93. OUTPUT:
  94. RETVAL
  95. int
  96. rwops_close ( rw )
  97. SDL_RWops* rw
  98. CODE:
  99. RETVAL = SDL_RWclose(rw);
  100. OUTPUT:
  101. RETVAL
  102. void
  103. rwops_free ( rw )
  104. SDL_RWops* rw
  105. CODE:
  106. SDL_FreeRW(rw);