Bild.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef Bild_H
  2. #define Bild_H
  3. #include "Array.h"
  4. #include "Objekt.h"
  5. namespace Framework
  6. {
  7. class Farbe; // Farbe.h
  8. class Text; // Text.h
  9. class Punkt; // Punkt.h
  10. class LRahmen; // Rahmen.h
  11. struct MausEreignis; // Mausereignis.h
  12. class Bild; // aus dieser Datei
  13. class Bild
  14. {
  15. private:
  16. int *fc;
  17. Punkt *größe;
  18. Text *pfad;
  19. int ref;
  20. TArray< Punkt > *dPosA;
  21. TArray< Punkt > *dGrößeA;
  22. CRITICAL_SECTION threadSave;
  23. public:
  24. // Konstruktor
  25. Bild();
  26. // Destruktor
  27. ~Bild();
  28. // nicht constant
  29. void lock();
  30. void unlock();
  31. void neuBild( Punkt *größe, Farbe *füllFarbe ); // erzeugt ein neues Bild mit der Größe größe und der Hintergrundfarbe füllFarbe
  32. void setPixel( Punkt *p, Farbe *f ); // setzt die Farbe eines bestimmten Pixels
  33. void alphaPixel( Punkt *p, Farbe *f );
  34. void alphaPixel( int x, int y, int f );
  35. void alphaPixel( int i, int f ); // setzt die Farbe eines bestimmten Pixels
  36. void füllRegion( Punkt *p, Punkt *gr, Farbe *f ); // setzt die Farbe einer bestimmten Region
  37. void füllRegion( int x, int y, int b, int h, int fc );
  38. void alphaRegion( int x, int y, int b, int h, int fc );
  39. void drawLinie( Punkt *pos, Punkt *pos2, Farbe *f ); // zeichnet eine Linie von pos zu pos2
  40. void drawLinieAlpha( Punkt *pos, Punkt *pos2, Farbe *f ); // zeichnet eine Linie von pos zu pos2
  41. void drawLinieH( Punkt *pos, int län, Farbe *f ); // zeichnet eine horizontale Linie
  42. void drawLinieV( Punkt *pos, int län, Farbe *f ); // zeichnet eine vertikale Linie
  43. void drawLinieH( int x, int y, int län, int fc ); // zeichnet eine horizontale Linie
  44. void drawLinieV( int x, int y, int län, int fc ); // zeichnet eine vertikale Linie
  45. void drawLinieHAlpha( Punkt *pos, int län, Farbe *f ); // zeichnet eine horizontale Linie
  46. void drawLinieVAlpha( Punkt *pos, int län, Farbe *f ); // zeichnet eine vertikale Linie
  47. void drawLinieHAlpha( int x, int y, int län, int fc ); // zeichnet eine horizontale Linie
  48. void drawLinieVAlpha( int x, int y, int län, int fc ); // zeichnet eine vertikale Linie
  49. void drawLinie( Punkt *pos1, Punkt *pos2, int län, Farbe *f ); // Zeichnet eine Linie von pos1 bis pos2 mit länge län
  50. void drawLinie( int x1, int y1, int x2, int y2, int fc ); // zeichnet eine Linie von Punkt( x1, y1 ) nach Punke( x2, y2 )
  51. void Bild::drawLinieAlpha( int x1, int y1, int x2, int y2, int fc );
  52. void setDrawOptions( int x, int y, int xb, int yh ); // setzt die Drawoptionen
  53. void drawBild( int x, int y, int br, int hö, Bild *zBild ); // zeichet zBild
  54. void alphaBild( int x, int y, int br, int hö, Bild *zBild );
  55. // constant
  56. int *getBuffer()const; // gibt buffer zurück
  57. Farbe *getPixel( Punkt *p ) const; // gibt die Farbe des Pixels(x, y) zurück
  58. Punkt *getGröße() const; // gibt die Größe zurück
  59. int getBreite() const; // gibt die Breite zurück
  60. int getHöhe() const; // gibt die Höhe zurück
  61. int getDOX() const;
  62. int getDOY() const;
  63. int getDOBX() const;
  64. int getDOHY() const;
  65. // Reference Counting
  66. Bild *getThis();
  67. Bild *release();
  68. };
  69. }
  70. #endif