diff --git a/headers/private/servers/app/LayerData.h b/headers/private/servers/app/LayerData.h index b0719768ca..746192bc43 100644 --- a/headers/private/servers/app/LayerData.h +++ b/headers/private/servers/app/LayerData.h @@ -4,51 +4,97 @@ #include #include #include "RGBColor.h" -//#include "FontServer.h" +#include "FontServer.h" #include "ServerFont.h" +#include "PatternHandler.h" +#include "GraphicsDefs.h" +#include "InterfaceDefs.h" class ServerBitmap; +class ServerFont; class LayerData { public: LayerData(void) { - pensize=1.0; penlocation.Set(0,0); - draw_mode=B_OP_COPY; - blending_mode=B_ALPHA_OVERLAY; - alpha_mode=B_CONSTANT_ALPHA; - background=NULL; - overlay=NULL; - highcolor.SetColor(0,0,0,255); - lowcolor.SetColor(255,255,255,255); - viewcolor.SetColor(255,255,255,255); -// font=fontserver->GetSystemPlain(); - font=NULL; - scale=1.0; - edelta.space=0; - edelta.nonspace=0; + pensize = 1.0; + highcolor.SetColor(0, 0, 0, 255); + lowcolor.SetColor(255, 255, 255, 255); + viewcolor.SetColor(255, 255, 255, 255); + patt = pat_solidhigh; + draw_mode = B_OP_COPY; + coordOrigin.Set(0.0, 0.0); + + lineCap = B_BUTT_CAP; + lineJoin = B_BEVEL_JOIN; + miterLimit = B_DEFAULT_MITER_LIMIT; + + alphaSrcMode = B_PIXEL_ALPHA; + alphaFncMode = B_ALPHA_OVERLAY; + scale = 1.0; + fontAliasing = true; + font = fontserver->GetSystemPlain(); + //font = NULL; + + clippReg = NULL; + + // NOTE: read below! + //background = NULL; + //overlay = NULL; + image = NULL; + isOverlay = false; + + edelta.space = 0; + edelta.nonspace = 0; } ~LayerData(void) { - if(font) - { - delete font; - font=NULL; + if(font) { + delete font; + font = NULL; + } + if (image){ + /* NOTE: I don't know yet how bitmap allocation/deallocation + is managed by server. I tend to think it's a reference + count type, so a 'delete' it's NOT good here. + Maybe a image.Release()? + + TODO: tell 'image' we're finished with it! :-) + */ } } - float pensize; - BPoint penlocation; - drawing_mode draw_mode; - source_alpha alpha_mode; - alpha_function blending_mode; - ServerBitmap *background; - ServerBitmap *overlay; - RGBColor highcolor, lowcolor, viewcolor; - ServerFont *font; - float scale; - escapement_delta edelta; + // BView related + BPoint penlocation; + float pensize; + RGBColor highcolor, + lowcolor, + viewcolor; + Pattern patt; + drawing_mode draw_mode; + BPoint coordOrigin; + + cap_mode lineCap; + join_mode lineJoin; + float miterLimit; + + source_alpha alphaSrcMode; + alpha_function alphaFncMode; + float scale; + bool fontAliasing; + ServerFont *font; + + BRegion *clippReg; + + // server related + // NOTE: only one image is needed. It's a bitmap OR an overlay! + ServerBitmap *image; + bool isOverlay; + //ServerBitmap *background; + //ServerBitmap *overlay; + + escapement_delta edelta; }; #endif