/usr/include/tuxcap/MemoryImage.h is in libtuxcap-dev 1.4.0.dfsg2-2.3+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #ifndef __MEMORYIMAGE_H__
#define __MEMORYIMAGE_H__
#include "Image.h"
#define OPTIMIZE_SOFTWARE_DRAWING
#ifdef OPTIMIZE_SOFTWARE_DRAWING
extern bool gOptimizeSoftwareDrawing;
#endif
namespace Sexy
{
const uint32_t MEMORYCHECK_ID = 0x4BEEFADE;
class NativeDisplay;
class SexyAppBase;
class MemoryImage : public Image
{
public:
uint32_t* mBits;
int mBitsChangedCount;
void* mD3DData;
uint32_t mD3DFlags; // see D3DInterface.h for possible values
uint32_t* mColorTable;
uchar* mColorIndices;
bool mForcedMode;
bool mHasTrans;
bool mHasAlpha;
bool mIsVolatile;
bool mPurgeBits;
bool mWantPal;
uint32_t* mNativeAlphaData;
uchar* mRLAlphaData;
uchar* mRLAdditiveData;
bool mBitsChanged;
SexyAppBase* mApp;
private:
void Init();
public:
virtual void* GetNativeAlphaData(NativeDisplay *theNative);
virtual uchar* GetRLAlphaData();
virtual uchar* GetRLAdditiveData(NativeDisplay *theNative);
virtual void PurgeBits();
virtual void DeleteSWBuffers();
virtual void Delete3DBuffers();
virtual void DeleteExtraBuffers();
virtual void ReInit();
virtual void BitsChanged();
virtual void CommitBits();
virtual void DeleteNativeData();
void NormalBlt(Image* theImage, int theX, int theY, const Rect& theSrcRect, const Color& theColor);
void AdditiveBlt(Image* theImage, int theX, int theY, const Rect& theSrcRect, const Color& theColor);
void NormalDrawLine(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor);
void AdditiveDrawLine(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor);
void NormalDrawLineAA(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor);
void AdditiveDrawLineAA(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor);
void SlowStretchBlt(Image* theImage, const Rect& theDestRect, const FRect& theSrcRect, const Color& theColor, int theDrawMode);
void FastStretchBlt(Image* theImage, const Rect& theDestRect, const FRect& theSrcRect, const Color& theColor, int theDrawMode);
bool BltRotatedClipHelper(float &theX, float &theY, const Rect &theSrcRect, const Rect &theClipRect, double theRot, FRect &theDestRect, float theRotCenterX, float theRotCenterY);
bool StretchBltClipHelper(const Rect &theSrcRect, const Rect &theClipRect, const Rect &theDestRect, FRect &theSrcRectOut, Rect &theDestRectOut);
bool StretchBltMirrorClipHelper(const Rect &theSrcRect, const Rect &theClipRect, const Rect &theDestRect, FRect &theSrcRectOut, Rect &theDestRectOut);
void BltMatrixHelper(Image* theImage, float x, float y, const SexyMatrix3 &theMatrix, const Rect& theClipRect, const Color& theColor, int theDrawMode, const Rect &theSrcRect, void *theSurface, int theBytePitch, int thePixelFormat, bool blend);
void BltTrianglesTexHelper(Image *theTexture, const TriVertex theVertices[][3], int theNumTriangles, const Rect &theClipRect, const Color &theColor, int theDrawMode, void *theSurface, int theBytePitch, int thePixelFormat, float tx, float ty, bool blend);
void FillScanLinesWithCoverage(Span* theSpans, int theSpanCount, const Color& theColor, int theDrawMode,
const unsigned char* theCoverage, int theCoverX, int theCoverY, int theCoverWidth, int theCoverHeight);
public:
MemoryImage();
MemoryImage(SexyAppBase* theApp);
MemoryImage(const MemoryImage& theMemoryImage);
virtual ~MemoryImage();
virtual void Clear();
virtual void SetBits(uint32_t* theBits, int theWidth, int theHeight, bool commitBits = true);
virtual void Create(int theWidth, int theHeight);
virtual uint32_t* GetBits();
virtual void FillRect(const Rect& theRect, const Color& theColor, int theDrawMode);
virtual void ClearRect(const Rect& theRect);
virtual void DrawLine(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor, int theDrawMode);
virtual void DrawLineAA(double theStartX, double theStartY, double theEndX, double theEndY, const Color& theColor, int theDrawMode);
virtual void Blt(Image* theImage, int theX, int theY, const Rect& theSrcRect, const Color& theColor, int theDrawMode);
virtual void BltF(Image* theImage, float theX, float theY, const Rect& theSrcRect, const Rect &theClipRect, const Color& theColor, int theDrawMode);
virtual void BltRotated(Image* theImage, float theX, float theY, const Rect &theSrcRect, const Rect& theClipRect, const Color& theColor, int theDrawMode, double theRot, float theRotCenterX, float theRotCenterY);
virtual void StretchBlt(Image* theImage, const Rect& theDestRect, const Rect& theSrcRect, const Rect& theClipRect, const Color& theColor, int theDrawMode, bool fastStretch);
virtual void BltMatrix(Image* theImage, float x, float y, const SexyMatrix3 &theMatrix, const Rect& theClipRect, const Color& theColor, int theDrawMode, const Rect &theSrcRect, bool blend);
virtual void BltTrianglesTex(Image *theTexture, const TriVertex theVertices[][3], int theNumTriangles, const Rect& theClipRect, const Color &theColor, int theDrawMode, float tx, float ty, bool blend);
virtual void SetImageMode(bool hasTrans, bool hasAlpha);
virtual void SetVolatile(bool isVolatile);
virtual bool Palletize();
};
}
#endif //__MEMORYIMAGE_H__
|