home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / program / code / desklib / DeskLib / !DeskLib / h / Sprite < prev    next >
Encoding:
Text File  |  1995-09-02  |  4.7 KB  |  134 lines

  1.  
  2. #ifndef __dl_sprite_h
  3. #define __dl_sprite_h
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #ifndef __dl_core_h
  8. #include "Core.h"
  9. #endif
  10. #ifndef __dl_wimp_h
  11. #include "Wimp.h"
  12. #endif
  13. #ifndef __dl_coord_h
  14. #include "Coord.h"
  15. #endif
  16. #include <stdarg.h>
  17. #define sprite_MAXNAME 12
  18. #define spritepool_SYSTEM 0
  19. #define spritepool_WIMP 1
  20. typedef struct {
  21. unsigned int areasize ;
  22. unsigned int numsprites ;
  23. unsigned int firstoffset ;
  24. unsigned int freeoffset ;
  25. } sprite_areainfo ;
  26. typedef sprite_areainfo *sprite_area;
  27. typedef struct {
  28. unsigned int width ;
  29. unsigned int height ;
  30. unsigned int maskstatus ;
  31. unsigned int mode ;
  32. } sprite_info ;
  33. typedef sprite_info *sprite;
  34. typedef struct {
  35. int callno ;
  36. sprite_area spritearea ;
  37. sprite sprite ;
  38. void *savearea ;
  39. } sprite_outputstate ;
  40. typedef struct
  41. {
  42. int offset_next;
  43. char name[sprite_MAXNAME];
  44. int width;
  45. int height;
  46. int leftbit;
  47. int rightbit;
  48. int imageoffset;
  49. int maskoffset;
  50. int screenmode;
  51. } sprite_header;
  52. typedef struct
  53. {
  54. wimp_point multiply;
  55. wimp_point divide;
  56. } sprite_scalefactors;
  57. extern os_error *Sprite_ScreenSave(char *filename, BOOL savepalette);
  58. extern os_error *Sprite_ScreenLoad(char *filename);
  59. extern os_error *Sprite_InitArea(sprite_area area);
  60. extern os_error *Sprite_Load(sprite_area area, char *filename) ;
  61. extern os_error *Sprite_Merge(sprite_area area, char *filename);
  62. extern os_error *Sprite_Save(sprite_area area, char *filename);
  63. extern os_error *Sprite_Create(sprite_area area, char *name, int haspalette,
  64. int width, int height, int screenmode);
  65. extern os_error *Sprite_Select(sprite_area area, char *name,
  66. sprite_header **spriteptr);
  67. extern os_error *Sprite_Delete(sprite_area area, char *name);
  68. extern os_error *Sprite_Rename(sprite_area area, char *oldname, char *newname);
  69. extern os_error *Sprite_Copy(sprite_area area, char *oldname, char *newname);
  70. extern os_error *Sprite_Get(sprite_area area, char *name, int with_palette,
  71. int left, int bottom, int right, int top,
  72. sprite *sprite_ptr);
  73. extern os_error *Sprite_Plot(sprite_area area, char *name, 
  74. int x, int y, int plot_action);
  75. extern os_error *Sprite_ReadInfo(sprite_area area, char *name,
  76. sprite_info *info);
  77. extern os_error *Sprite_Redirect(sprite_area area, char *name,
  78. void *savearea, sprite_outputstate *oldstate);
  79. extern os_error *Sprite_UnRedirect(sprite_outputstate *oldstate);
  80. extern os_error *Sprite_ReadSaveAreaSize(sprite_area area, char *name,
  81. int *saveareasize);
  82. extern int Sprite_ReadControl(sprite_area area, int *size, sprite *firstsprite,
  83. void *firstfree);
  84. extern int Sprite_GetName(sprite_area area, char *name, int spritenumber);
  85. extern os_error *Sprite_CreateMask(sprite_area area, char *name);
  86. extern os_error *Sprite_RemoveMask(sprite_area area, char *name);
  87. extern os_error *Sprite_InsertRow(sprite_area area, char *name, int pos);
  88. extern os_error *Sprite_DeleteRow(sprite_area area, char *name, int pos);
  89. extern os_error *Sprite_FlipX(sprite_area area, char *name);
  90. extern os_error *Sprite_Append(sprite_area area, char *name1, char *name2,
  91. int dir);
  92. extern int Sprite_CreatePalette(sprite_area area, char *name, BOOL big);
  93. extern os_error *Sprite_RemovePalette(sprite_area area, char *name);
  94. extern int Sprite_ReadPixel(sprite_area area, char *name, wimp_point *pos);
  95. extern os_error *Sprite_WritePixel(sprite_area area, char *name,
  96. wimp_point *pos, int colour, int tint);
  97. extern BOOL Sprite_ReadMask(sprite_area area, char *name, wimp_point *pos);
  98. extern os_error *Sprite_WriteMask(sprite_area area, char *name, wimp_point *pos,
  99. BOOL solid);
  100. extern os_error *Sprite_InsertColumn(sprite_area area, char *name, int pos);
  101. extern os_error *Sprite_DeleteColumn(sprite_area area, char *name, int pos);
  102. extern os_error *Sprite_FlipY(sprite_area area, char *name);
  103. extern os_error *Sprite_PlotMask(sprite_area area, char *name, wimp_point *pos);
  104. extern os_error *Sprite_PlotMaskScaled(sprite_area area, char *name,
  105. wimp_point *pos, sprite_scalefactors sc);
  106. extern os_error *Sprite_PlotScaled(sprite_area area, char *name,
  107. wimp_point *pos, sprite_scalefactors *scale,
  108. void *pixtrans);
  109. extern os_error *Sprite_PlotGrey(sprite_area area, char *name,
  110. wimp_point *pos, sprite_scalefactors scale,
  111. void *pixtrans);
  112. extern os_error *Sprite_WimpPlot(sprite_area area, char *name, wimp_point *pos,
  113. convert_block *convert, int plot_action);
  114. typedef enum
  115. {
  116. sprite_HASNOMASKPAL = 0x00, 
  117. sprite_HASNOPALMASK = 0x00,
  118. sprite_HASMASK = 0x01, 
  119. sprite_HASPAL = 0x02, 
  120. sprite_HASMASKPAL = 0x03, 
  121. sprite_HASPALMASK = 0x03
  122. } spritemem_flags;
  123. extern int Sprite_MemorySize(int width, int height, int mode,
  124. spritemem_flags flags);
  125. extern int Sprite_IconMemorySize(window_block *pWinBlock, icon_handle icon,
  126. int mode, spritemem_flags flags,
  127. wimp_point *dimensions);
  128. extern sprite_area Sprite_LoadFile(char *filename);
  129. extern sprite_area Sprite_LoadFiles(int nooffiles,...);
  130. #ifdef __cplusplus
  131. }
  132. #endif
  133. #endif
  134.