drawing ellipses antialiased with Cairo

This commit is contained in:
louis
2014-12-03 18:12:37 +01:00
parent def1b3cc30
commit 7ce445025e
12 changed files with 304 additions and 15 deletions

View File

@@ -250,6 +250,8 @@ void cTemplate::CachePixmapImages(cTemplatePixmap *pix) {
while(func = pix->GetNextFunction()) {
if (func->GetType() == ftDrawImage) {
CacheImage(func);
} else if (func->GetType() == ftDrawEllipse) {
CacheEllipse(func);
}
}
}
@@ -279,3 +281,12 @@ void cTemplate::CacheImage(cTemplateFunction *func) {
break;
}
}
void cTemplate::CacheEllipse(cTemplateFunction *func) {
int id = func->GetId();
int w = func->GetNumericParameter(ptWidth);
int h = func->GetNumericParameter(ptHeight);
tColor clr = func->GetColorParameter(ptColor);
int quadrant = func->GetNumericParameter(ptQuadrant);
imgCache->CacheEllipse(id, w, h, clr, quadrant);
}

View File

@@ -34,6 +34,7 @@ private:
eViewType viewType;
void CachePixmapImages(cTemplatePixmap *pix);
void CacheImage(cTemplateFunction *func);
void CacheEllipse(cTemplateFunction *func);
protected:
cGlobals *globals;
cTemplateView *rootView;

View File

@@ -6,7 +6,10 @@ using namespace std;
// --- cTemplateFunction -------------------------------------------------------------
cTemplateFunction::cTemplateFunction(eFuncType type) {
int cTemplateFunction::nextId = 0;
cTemplateFunction::cTemplateFunction(eFuncType type) {
id = nextId++;
this->type = type;
debug = false;
containerX = 0;

View File

@@ -102,7 +102,10 @@ enum eOverflowType {
};
class cTemplateFunction {
private:
static int nextId;
protected:
int id;
eFuncType type;
bool debug;
int containerX; //X of parent container
@@ -185,6 +188,7 @@ public:
//Parse parameters with dynamically set Tokens
bool ParseParameters(void);
//Getter Functions
int GetId(void) { return id; };
eFuncType GetType(void) { return type; };
bool DoDebug(void) { return debug; };
string GetParameter(eParamType type);