*/}}

ourpaint.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "la_5.h"
  2. STRUCTURE(OurCanvasDraw){
  3. laCanvasExtra Base;
  4. int ShowTiles;
  5. real CanvasLastX,CanvasLastY;
  6. real LastPressure;
  7. };
  8. #define OUR_TILE_W 64
  9. #define OUR_TEX_TILE_W 1024
  10. #define OUR_TEX_TILES_PER_ROW 100
  11. #define OUR_TILES_PER_ROW (OUR_TEX_TILES_PER_ROW*(OUR_TEX_TILE_W/OUR_TILE_W))
  12. #define OUR_TEX_TILE_CTR (OUR_TEX_TILES_PER_ROW/2)
  13. #define OUR_TEX_TILE_SEAM 12
  14. #define OUR_TEX_TILE_W_USE (OUR_TEX_TILE_W-OUR_TEX_TILE_SEAM*2)
  15. STRUCTURE(OurTile){
  16. int X,Y; // with offset so not neccessarily n*OUR_TILE_W
  17. void* Data;
  18. };
  19. STRUCTURE(OurTexTile){
  20. tnsTexture* Texture;
  21. };
  22. STRUCTURE(OurLayer){
  23. laListItem Item;
  24. laSafeString Name;
  25. int OffsetX,OffsetY;
  26. OurTexTile** TexTiles[OUR_TEX_TILES_PER_ROW];
  27. };
  28. STRUCTURE(OurBrush){
  29. laListItem Item;
  30. laSafeString Name;
  31. real Size;
  32. real DabsPerSize;
  33. real Hardness;
  34. real Transparency;
  35. real Smudge;
  36. real SmudgeResampleLength; real SmudgeAccum;
  37. real BrushRemainingDist;
  38. int UseNodes; // the flexible way
  39. int PressureSize,PressureHardness,PressureTransparency,PressureSmudge; // the simple way
  40. };
  41. STRUCTURE(OurDab){
  42. float X,Y;
  43. float Size;
  44. float Hardness;
  45. float Smudge; int ResampleSmudge;
  46. float Color[4];
  47. };
  48. STRUCTURE(OurPaint){
  49. real pad;
  50. laListHandle Layers;
  51. OurLayer* CurrentLayer;
  52. laListHandle Brushes;
  53. OurBrush* CurrentBrush;
  54. OurDab* Dabs; int NextDab,MaxDab;
  55. tnsTexture* SmudgeTexture;
  56. GLuint CanvasShader;
  57. GLuint CanvasProgram;
  58. GLint uBrushCorner;
  59. GLint uBrushCenter;
  60. GLint uBrushSize;
  61. GLint uBrushHardness;
  62. GLint uBrushSmudge;
  63. GLint uBrushColor;
  64. GLint uBrushRoutineSelection;
  65. GLint RoutineDoDabs;
  66. GLint RoutineDoSample;
  67. real CurrentColor[4];
  68. real BackgroundColor[3];
  69. };
  70. void ourInit();