*/}}

ourpaint.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #include "la_5.h"
  2. #define OUR_AT_CROP_CENTER 0
  3. #define OUR_AT_CROP_L 1
  4. #define OUR_AT_CROP_R 2
  5. #define OUR_AT_CROP_U 3
  6. #define OUR_AT_CROP_B 4
  7. #define OUR_AT_CROP_UL 5
  8. #define OUR_AT_CROP_UR 6
  9. #define OUR_AT_CROP_BL 7
  10. #define OUR_AT_CROP_BR 8
  11. STRUCTURE(OurCanvasDraw){
  12. laCanvasExtra Base;
  13. int ShowTiles;
  14. int AtCrop;
  15. real CanvasLastX,CanvasLastY;
  16. real CanvasDownX,CanvasDownY;
  17. real LastPressure;
  18. };
  19. #define OUR_TILE_W 64
  20. #define OUR_TEX_TILE_W 1024
  21. #define OUR_TEX_TILES_PER_ROW 100
  22. #define OUR_TILES_PER_ROW (OUR_TEX_TILES_PER_ROW*(OUR_TEX_TILE_W/OUR_TILE_W))
  23. #define OUR_TEX_TILE_CTR (OUR_TEX_TILES_PER_ROW/2)
  24. #define OUR_TEX_TILE_SEAM 12
  25. #define OUR_TEX_TILE_W_USE (OUR_TEX_TILE_W-OUR_TEX_TILE_SEAM*2)
  26. STRUCTURE(OurTexTile){
  27. tnsTexture* Texture;
  28. uint16_t* Data;
  29. int row,col;
  30. };
  31. STRUCTURE(OurLayer){
  32. laListItem Item;
  33. laSafeString Name;
  34. int OffsetX,OffsetY;
  35. OurTexTile** TexTiles[OUR_TEX_TILES_PER_ROW];
  36. };
  37. STRUCTURE(OurLayerWrite){
  38. unsigned char* data;
  39. size_t NextData, MaxData;
  40. };
  41. STRUCTURE(OurLayerRead){
  42. unsigned char* data;
  43. size_t NextData;
  44. };
  45. STRUCTURE(OurBrush){
  46. laListItem Item;
  47. laSafeString Name;
  48. real Size;
  49. real DabsPerSize;
  50. real Hardness;
  51. real Transparency;
  52. real Smudge;
  53. real SmudgeResampleLength; real SmudgeAccum; int SmudgeRestart;
  54. real BrushRemainingDist;
  55. int UseNodes; // the flexible way
  56. int PressureSize,PressureHardness,PressureTransparency,PressureSmudge; // the simple way
  57. };
  58. STRUCTURE(OurDab){
  59. float X,Y;
  60. float Size;
  61. float Hardness;
  62. float Smudge; int ResampleSmudge;
  63. float Color[4];
  64. };
  65. #define OUR_TOOL_PAINT 0
  66. #define OUR_TOOL_CROP 1
  67. STRUCTURE(OurPaint){
  68. real pad;
  69. laListHandle CanvasSaverDummyList;
  70. laProp* CanvasSaverDummyProp;
  71. laListHandle Layers;
  72. OurLayer* CurrentLayer;
  73. laListHandle Brushes;
  74. OurBrush* CurrentBrush;
  75. OurDab* Dabs; int NextDab,MaxDab;
  76. int Tool,ActiveTool;
  77. int X,Y,W,H; //border
  78. int ShowBorder,UseBorder;
  79. tnsTexture* SmudgeTexture;
  80. GLuint CanvasShader;
  81. GLuint CanvasProgram;
  82. GLint uBrushCorner;
  83. GLint uBrushCenter;
  84. GLint uBrushSize;
  85. GLint uBrushHardness;
  86. GLint uBrushSmudge;
  87. GLint uBrushColor;
  88. GLint uBrushRoutineSelection;
  89. GLint RoutineDoDabs;
  90. GLint RoutineDoSample;
  91. real CurrentColor[3];
  92. real BackgroundColor[3];
  93. uint16_t BColorU16[4];
  94. real BorderAlpha;
  95. uint16_t *ImageBuffer;
  96. int ImageW,ImageH,ImageX,ImageY,LoadX,LoadY,TempLoadX,TempLoadY;
  97. void* icc_LinearsRGB; int iccsize_LinearsRGB;
  98. void* icc_sRGB; int iccsize_sRGB;
  99. };
  100. void ourInit();