⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvdsubber-format.h

📁 DVD工具dvdsynth的源码
💻 H
字号:
struct DrawingBuf {
	unsigned char* ptr;
	int width, height;
	int xstride, ystride;
	int left, right, top, bottom;	// updated to reflect area drawn in
};

class Drawable {
public:
	virtual int GetAscent() const = 0;
	virtual int GetHeight() const = 0;
	virtual int GetWidth() const = 0;
	virtual int GetOnTime() const = 0;
	virtual int GetOffTime() const = 0;

	// the reason for the "times_2" is to avoid cascading roundoff errors when centering text
	virtual void DrawSelf(int time, DrawingBuf* buf, int left_times_2, int top) const = 0;

        // the lower two bits of each event time indicate the type of event:
        // 0 -> new subtitle on; 1 -> alpha change (fade), 2 -> subtitle off
        virtual unsigned* GetEventTimes(unsigned* buf, unsigned* bufend) const = 0;

        virtual bool NothingToDraw(int time) const = 0;

        virtual char* GetPrintableText(char* buf, char* bufend) const = 0;

	virtual int* GetSpaces(int left, int* buf, int* bufend) const = 0;
	virtual Drawable* BreakAt(int x) = 0;

        virtual ~Drawable() {}
};

struct FontInfo;


Drawable* new_Text(wchar_t* text, FontInfo* font, unsigned char textcolor, unsigned char halocolor, int spacing, int time0, int time1, int time2, int time3);
Drawable* new_TextLine(Drawable* l, Drawable* r);
Drawable* new_TextLines(Drawable* t, Drawable* b, int align);
Drawable* new_TextBox(Drawable* lines, int left, int top, int right, int bottom, int linealign, int boxalign, bool vertical);
Drawable* new_TextBoxen(Drawable* a, Drawable* b);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -