*/}}

ourpaint.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. };
  30. STRUCTURE(OurLayer){
  31. laListItem Item;
  32. laSafeString Name;
  33. int OffsetX,OffsetY;
  34. OurTexTile** TexTiles[OUR_TEX_TILES_PER_ROW];
  35. };
  36. STRUCTURE(OurBrush){
  37. laListItem Item;
  38. laSafeString Name;
  39. real Size;
  40. real DabsPerSize;
  41. real Hardness;
  42. real Transparency;
  43. real Smudge;
  44. real SmudgeResampleLength; real SmudgeAccum; int SmudgeRestart;
  45. real BrushRemainingDist;
  46. int UseNodes; // the flexible way
  47. int PressureSize,PressureHardness,PressureTransparency,PressureSmudge; // the simple way
  48. };
  49. STRUCTURE(OurDab){
  50. float X,Y;
  51. float Size;
  52. float Hardness;
  53. float Smudge; int ResampleSmudge;
  54. float Color[4];
  55. };
  56. #define OUR_TOOL_PAINT 0
  57. #define OUR_TOOL_CROP 1
  58. STRUCTURE(OurPaint){
  59. real pad;
  60. laListHandle Layers;
  61. OurLayer* CurrentLayer;
  62. laListHandle Brushes;
  63. OurBrush* CurrentBrush;
  64. OurDab* Dabs; int NextDab,MaxDab;
  65. int Tool,ActiveTool;
  66. int X,Y,W,H; //border
  67. int ShowBorder,UseBorder;
  68. tnsTexture* SmudgeTexture;
  69. GLuint CanvasShader;
  70. GLuint CanvasProgram;
  71. GLint uBrushCorner;
  72. GLint uBrushCenter;
  73. GLint uBrushSize;
  74. GLint uBrushHardness;
  75. GLint uBrushSmudge;
  76. GLint uBrushColor;
  77. GLint uBrushRoutineSelection;
  78. GLint RoutineDoDabs;
  79. GLint RoutineDoSample;
  80. real CurrentColor[4];
  81. real BackgroundColor[3];
  82. real BorderAlpha;
  83. uint16_t *ImageBuffer;
  84. int ImageW,ImageH,ImageX,ImageY;
  85. void* icc_LinearsRGB; int iccsize_LinearsRGB;
  86. void* icc_sRGB; int iccsize_sRGB;
  87. };
  88. void ourInit();