Fresco/Berlin/modules/Drawing/libArt DrawingKit.cc,1.50,1.51 DrawingKit.hh,1.31,1.32

Tobias Hunger <[email protected]> Mon, 29 Dec 2003 09:12:23 +0100
Newsgroups gmane.comp.video.fresco.cvs
Message-ID <[email protected]>
Update of /cvs/fresco/Fresco/Berlin/modules/Drawing/libArt
In directory purcel:/tmp/cvs-serv30213/modules/Drawing/libArt

Modified Files:
	DrawingKit.cc DrawingKit.hh 
Log Message:
 * Styleguidify Berlin
 * Add namespace Berlin
Both patches are mixed into one since I did not want to commit two such
large and disruptive patches.


Index: DrawingKit.cc
===================================================================
RCS file: /cvs/fresco/Fresco/Berlin/modules/Drawing/libArt/DrawingKit.cc,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- DrawingKit.cc	27 May 2003 23:12:45 -0000	1.50
+++ DrawingKit.cc	29 Dec 2003 08:03:23 -0000	1.51
@@ -46,523 +46,554 @@
 using namespace Fresco;
 using namespace Berlin::DrawingKit;
 
-libArt::DrawingKit::~DrawingKit() {}
+libArt::DrawingKit::~DrawingKit() { }
 
 libArt::DrawingKit::DrawingKit(const std::string &id,
                                const Fresco::Kit::PropertySeq &p,
-			       ServerContextImpl *c)
-  : KitImpl(id, p, c),
-    _drawable(0),
-    _xres(1.),
-    _yres(1.),
-    _font(0),
-    _unifont(0),
-    _rasters(500)
-  // textures(100), 
-  // tx(0)
+			       ServerContextImpl *c) :
+    KitImpl(id, p, c),
+    my_drawable(0),
+    my_xres(1.),
+    my_yres(1.),
+    my_font(0),
+    my_unifont(0),
+    my_rasters(500)
+    // textures(100), 
+    // tx(0)
 {
-    _lt.red = 1.0; _lt.green = 1.0; _lt.blue = 1.0; _lt.alpha = 1.0;
-    _fg.red = 1.0; _fg.green = 1.0; _fg.blue = 1.0; _fg.alpha = 1.0;
+    my_lt.red = 1.0; my_lt.green = 1.0; my_lt.blue = 1.0;
+    my_lt.alpha = 1.0;
+    my_fg.red = 1.0; my_fg.green = 1.0; my_fg.blue = 1.0;
+    my_fg.alpha = 1.0;
 }
 
-KitImpl *libArt::DrawingKit::clone(const Fresco::Kit::PropertySeq &p,
-				   ServerContextImpl *c)
+Berlin::KitImpl *
+libArt::DrawingKit::clone(const Fresco::Kit::PropertySeq &p,
+			  ServerContextImpl *c)
 {
-  libArt::DrawingKit *kit = new libArt::DrawingKit(repo_id(), p, c);
-  kit->init();
-  return kit;
+    libArt::DrawingKit *kit = new libArt::DrawingKit(repo_id(), p, c);
+    kit->init();
+    return kit;
 }
 
 void libArt::DrawingKit::init()
 {
-  Console *console = Console::instance();
-  _drawable = console->drawable();
-  _xres = _drawable->resolution(xaxis);
-  _yres = _drawable->resolution(yaxis);
-  _font = new FTFont(_xres, _yres);
-  _unifont = new Unifont(_xres, _yres);
-  _screen.x0 = 0;
-  _screen.y0 = 0;
-  _screen.x1 = _drawable->width();
-  _screen.y1 = _drawable->height();
+    Console *console = Console::instance();
+    my_drawable = console->drawable();
+    my_xres = my_drawable->resolution(xaxis);
+    my_yres = my_drawable->resolution(yaxis);
+    my_font = new FTFont(my_xres, my_yres);
+    my_unifont = new Unifont(my_xres, my_yres);
+    my_screen.x0 = 0;
+    my_screen.y0 = 0;
+    my_screen.x1 = my_drawable->width();
+    my_screen.y1 = my_drawable->height();
   
-  _agam = art_alphagamma_new (2.5);
-  _buffer = console->create_drawable(_drawable->width(), _drawable->height(), 3);
-  _renderer = console->get_extension<Renderer>("Renderer");
-  _renderer->attach(_buffer);
-  _direct = console->get_extension<DirectBuffer>("DirectBuffer");
-  _direct->attach(_buffer);
-  _bbox.x0 = _bbox.y0 = _bbox.x1 = _bbox.y1 = 0;    
-  double step = 1. / 256.;
-  for (int i = 0; i < 256; ++i)
-    for (int j = 0; j < 256; ++j) 
-      _alphabank[i][j] = (art_u8)(i * (j * step));
+    my_agam = art_alphagamma_new(2.5);
+    my_buffer = console->create_drawable(my_drawable->width(),
+					 my_drawable->height(), 3);
+    my_renderer =
+	console->get_extension<Console_Extension::Renderer>("Renderer");
+    my_renderer->attach(my_buffer);
+    my_direct = console->
+	get_extension<Console_Extension::DirectBuffer>("DirectBuffer");
+    my_direct->attach(my_buffer);
+    my_bbox.x0 = my_bbox.y0 = my_bbox.x1 = my_bbox.y1 = 0;    
+    double step = 1. / 256.;
+    for (int i = 0; i < 256; ++i)
+	for (int j = 0; j < 256; ++j) 
+	    my_alphabank[i][j] = (art_u8)(i * (j * step));
 }
 
 namespace
 {
-inline art_u32 artColor(const Color &c)
-{
-  return (((art_u8)(c.blue * 0xff) << 24) | 
-	  ((art_u8)(c.green * 0xff) << 16) | 
-	  ((art_u8)(c.red * 0xff) << 8) | 
-	  ((art_u8)(c.alpha * 0xff)));
-}
+  inline art_u32 artColor(const Color &c)
+  {
+      return (((art_u8)(c.blue * 0xff) << 24) | 
+	      ((art_u8)(c.green * 0xff) << 16) | 
+	      ((art_u8)(c.red * 0xff) << 8) | 
+	      ((art_u8)(c.alpha * 0xff)));
+  }
 
-inline void fix_order_of_irect(ArtIRect &ir)
-{
-  if (ir.x0 > ir.x1) {int tmp = ir.x0; ir.x1 = ir.x0; ir.x0 = tmp;}
-  if (ir.y0 > ir.y1) {int tmp = ir.y0; ir.y0 = ir.y1; ir.y1 = tmp;}
-}
-};
+  inline void fix_order_of_irect(ArtIRect &ir)
+  {
+      if (ir.x0 > ir.x1) {int tmp = ir.x0; ir.x1 = ir.x0; ir.x0 = tmp;}
+      if (ir.y0 > ir.y1) {int tmp = ir.y0; ir.y0 = ir.y1; ir.y1 = tmp;}
+  }
+} // namespace
 
 void libArt::DrawingKit::set_transformation(Transform_ptr t)
 {
-  Prague::Trace trace("libArt::DrawingKit::set_transformation");
-  if (CORBA::is_nil(t)) art_affine_identity(_affine);
-  else
+    Prague::Trace trace("libArt::DrawingKit::set_transformation");
+    if (CORBA::is_nil(t)) art_affine_identity(my_affine);
+    else
     {
-      _tr = Transform::_duplicate(t);
-      Transform::Matrix matrix;
-      _tr->store_matrix(matrix);
-      _affine[0] = matrix[0][0];
-      _affine[1] = matrix[1][0];
-      _affine[2] = matrix[0][1];
-      _affine[3] = matrix[1][1];
-      _affine[4] = matrix[0][3];
-      _affine[5] = matrix[1][3];
+	my_tr = Transform::_duplicate(t);
+	Transform::Matrix matrix;
+	my_tr->store_matrix(matrix);
+	my_affine[0] = matrix[0][0];
+	my_affine[1] = matrix[1][0];
+	my_affine[2] = matrix[0][1];
+	my_affine[3] = matrix[1][1];
+	my_affine[4] = matrix[0][3];
+	my_affine[5] = matrix[1][3];
     }
-  _scaled_affine[0] = _affine[0] * _xres;
-  _scaled_affine[1] = _affine[1] * _xres;
-  _scaled_affine[2] = _affine[2] * _yres;
-  _scaled_affine[3] = _affine[3] * _yres;
-  _scaled_affine[4] = _affine[4] * _xres;
-  _scaled_affine[5] = _affine[5] * _yres;
+    my_scaled_affine[0] = my_affine[0] * my_xres;
+    my_scaled_affine[1] = my_affine[1] * my_xres;
+    my_scaled_affine[2] = my_affine[2] * my_yres;
+    my_scaled_affine[3] = my_affine[3] * my_yres;
+    my_scaled_affine[4] = my_affine[4] * my_xres;
+    my_scaled_affine[5] = my_affine[5] * my_yres;
 }
 
 void libArt::DrawingKit::set_clipping(Region_ptr r)
 {
-  if (CORBA::is_nil(r)) {_clip = _screen; return;}
-  _cl = Region::_duplicate(r);
+    if (CORBA::is_nil(r))
+    {
+	my_clip = my_screen;
+	return; 
+    }
+    my_cl = Region::_duplicate(r);
     
-  Lease_var<RegionImpl> climpl(Provider<RegionImpl>::provide());
-  climpl->copy(_cl);
+    Lease_var<RegionImpl> climpl(Provider<RegionImpl>::provide());
+    climpl->copy(my_cl);
 
-  ArtDRect dclip = {climpl->lower.x * _xres, climpl->lower.y * _yres, 		      
-		      climpl->upper.x * _xres, climpl->upper.y * _yres};
-  art_drect_to_irect(&_clip, &dclip); 
-  art_irect_intersect(&_clip, &_clip, &_screen);
+    ArtDRect dclip = {climpl->lower.x * my_xres,
+		      climpl->lower.y * my_yres, 		      
+		      climpl->upper.x * my_xres,
+		      climpl->upper.y * my_yres};
+    art_drect_to_irect(&my_clip, &dclip); 
+    art_irect_intersect(&my_clip, &my_clip, &my_screen);
 }
 
 void libArt::DrawingKit::set_foreground(const Color &c)
 {
-  _fg = c;
-  _con_fg.red   = _fg.red * _lt.red;
-  _con_fg.green = _fg.green * _lt.green;
-  _con_fg.blue  = _fg.blue * _lt.blue;
-  _con_fg.alpha = _fg.alpha;
-  _art_fg       = artColor(_con_fg);
+    my_fg = c;
+    my_con_fg.red   = my_fg.red * my_lt.red;
+    my_con_fg.green = my_fg.green * my_lt.green;
+    my_con_fg.blue  = my_fg.blue * my_lt.blue;
+    my_con_fg.alpha = my_fg.alpha;
+    my_art_fg       = artColor(my_con_fg);
 }
 
 void libArt::DrawingKit::set_lighting(const Color &c)
 {
-  _lt = c;
-  _con_fg.red   = _fg.red * _lt.red;
-  _con_fg.green = _fg.green * _lt.green;
-  _con_fg.blue  = _fg.blue * _lt.blue;
-  _art_fg       = artColor(_con_fg);
+    my_lt = c;
+    my_con_fg.red   = my_fg.red * my_lt.red;
+    my_con_fg.green = my_fg.green * my_lt.green;
+    my_con_fg.blue  = my_fg.blue * my_lt.blue;
+    my_art_fg       = artColor(my_con_fg);
 }
 
-void libArt::DrawingKit::set_point_size(Coord s) { _ps = s;}
-void libArt::DrawingKit::set_line_width(Coord w) { _lw = w;}
-void libArt::DrawingKit::set_line_endstyle(Fresco::DrawingKit::Endstyle style) { _es = style;}
-void libArt::DrawingKit::set_surface_fillstyle(Fresco::DrawingKit::Fillstyle style) { _fs = style;}
-void libArt::DrawingKit::set_texture(Raster_ptr t) {}
-void libArt::DrawingKit::set_font_size(CORBA::ULong) {}
-void libArt::DrawingKit::set_font_weight(CORBA::ULong) {}
-void libArt::DrawingKit::set_font_family(const Unistring&) {}
-void libArt::DrawingKit::set_font_subfamily(const Unistring&) {}
-void libArt::DrawingKit::set_font_fullname(const Unistring&) {}
-void libArt::DrawingKit::set_font_style(const Unistring&) {}
-void libArt::DrawingKit::set_font_attribute(const NVPair & nvp) {}
+void libArt::DrawingKit::set_point_size(Coord s) { my_ps = s; }
+void libArt::DrawingKit::set_line_width(Coord w) { my_lw = w; }
+void libArt::DrawingKit::set_line_endstyle(Fresco::DrawingKit::Endstyle style)
+{ my_es = style; }
+void libArt::DrawingKit::set_surface_fillstyle(Fresco::DrawingKit::Fillstyle style)
+{ my_fs = style; }
+void libArt::DrawingKit::set_texture(Raster_ptr t) { }
+void libArt::DrawingKit::set_font_size(CORBA::ULong) { }
+void libArt::DrawingKit::set_font_weight(CORBA::ULong) { }
+void libArt::DrawingKit::set_font_family(const Unistring&) { }
+void libArt::DrawingKit::set_font_subfamily(const Unistring&) { }
+void libArt::DrawingKit::set_font_fullname(const Unistring&) { }
+void libArt::DrawingKit::set_font_style(const Unistring&) { }
+void libArt::DrawingKit::set_font_attribute(const NVPair & nvp) { }
 
 void libArt::DrawingKit::draw_path(const Path &p) 
 {
-  int len = p.nodes.length();
-  ArtVpath vpath[_fs == Fresco::DrawingKit::outlined ? len : len + 1];
-  ArtVpath *tvpath;  
+    int len = p.nodes.length();
+    ArtVpath vpath[my_fs == Fresco::DrawingKit::outlined ? len : len + 1];
+    ArtVpath *tvpath;  
 
-  if (_fs == Fresco::DrawingKit::outlined)
+    if (my_fs == Fresco::DrawingKit::outlined)
     {
-      for (int i = 0; i < len; ++i)
+	for (int i = 0; i < len; ++i)
 	{
-	  vpath[i].x = p.nodes[i].x; 
-	  vpath[i].y = p.nodes[i].y;
-	  vpath[i].code = ART_LINETO;
+	    vpath[i].x = p.nodes[i].x; 
+	    vpath[i].y = p.nodes[i].y;
+	    vpath[i].code = ART_LINETO;
 	}
-      vpath[0].code = ART_MOVETO_OPEN;
-      vpath[len-1].code = ART_END;
+	vpath[0].code = ART_MOVETO_OPEN;
+	vpath[len-1].code = ART_END;
       
     }
-  else
+    else
     {
-      for (int i = 0; i < len; ++i)
+	for (int i = 0; i < len; ++i)
 	{
-	  vpath[i].x = p.nodes[i].x; 
-	  vpath[i].y = p.nodes[i].y;
-	  vpath[i].code = ART_LINETO;
+	    vpath[i].x = p.nodes[i].x; 
+	    vpath[i].y = p.nodes[i].y;
+	    vpath[i].code = ART_LINETO;
 	}
-      vpath[0].code = ART_MOVETO;
-      vpath[len].x = vpath[0].x;
-      vpath[len].y = vpath[0].y;
-      vpath[len].code = ART_END;
+	vpath[0].code = ART_MOVETO;
+	vpath[len].x = vpath[0].x;
+	vpath[len].y = vpath[0].y;
+	vpath[len].code = ART_END;
     }
-  
-  ArtDRect locd; ArtIRect loc;
-  tvpath = art_vpath_affine_transform(vpath, _scaled_affine);
-  ArtSVP *svp1 = art_svp_from_vpath(tvpath); 
-  ArtSVP *svp2 = art_svp_uncross(svp1);
-  ArtSVP *svp = art_svp_rewind_uncrossed(svp2, ART_WIND_RULE_ODDEVEN);
+    
+    ArtDRect locd; ArtIRect loc;
+    tvpath = art_vpath_affine_transform(vpath, my_scaled_affine);
+    ArtSVP *svp1 = art_svp_from_vpath(tvpath); 
+    ArtSVP *svp2 = art_svp_uncross(svp1);
+    ArtSVP *svp = art_svp_rewind_uncrossed(svp2, ART_WIND_RULE_ODDEVEN);
 
-  art_drect_svp(&locd, svp);
-  art_drect_to_irect(&loc, &locd);
-  art_irect_intersect(&loc, &loc ,&_clip);
-  art_irect_union(&_bbox, &_bbox, &loc);
-  fix_order_of_irect(loc);
-  DirectBuffer::Guard pb_buf = _direct->write_buffer();
-  ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
-					     _drawable->width(),
-					     _drawable->height(),
-					     _buffer->row_length());
-  art_rgb_svp_alpha(svp, loc.x0, loc.y0, loc.x1, loc.y1, _art_fg,
-		    (art_u8 *)(pb_buf.get()) +
-		     (loc.y0 * pb->rowstride) +
-		     (loc.x0 * 3), 
-		    _buffer->row_length(), _agam);
-  art_svp_free(svp);
-  art_svp_free(svp1);
-  art_svp_free(svp2);
+    art_drect_svp(&locd, svp);
+    art_drect_to_irect(&loc, &locd);
+    art_irect_intersect(&loc, &loc ,&my_clip);
+    art_irect_union(&my_bbox, &my_bbox, &loc);
+    fix_order_of_irect(loc);
+    Console_Extension::DirectBuffer::Guard pb_buf =
+	my_direct->write_buffer();
+    ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
+					       my_drawable->width(),
+					       my_drawable->height(),
+					       my_buffer->row_length());
+    art_rgb_svp_alpha(svp, loc.x0, loc.y0, loc.x1, loc.y1, my_art_fg,
+		      (art_u8 *)(pb_buf.get()) +
+		      (loc.y0 * pb->rowstride) +
+		      (loc.x0 * 3), 
+		      my_buffer->row_length(), my_agam);
+    art_svp_free(svp);
+    art_svp_free(svp1);
+    art_svp_free(svp2);
 }
 
-void libArt::DrawingKit::draw_new_path(const NewPath &p) 
-{
-}
+void libArt::DrawingKit::draw_new_path(const NewPath &p) { }
 
 //void libArt;;DrawingKit::drawPatch(const Patch &);
 
-void libArt::DrawingKit::draw_rectangle(const Vertex &bot, const Vertex &top) 
+void libArt::DrawingKit::draw_rectangle(const Vertex &bot,
+					const Vertex &top) 
 {
-  // fast path opaque non-transformed rectangles
-  if (_fg.alpha == 1. &&
-      _affine[0] == 1 &&
-      _affine[1] == 0 &&
-      _affine[2] == 0 &&
-      _affine[3] == 1)
+    // fast path opaque non-transformed rectangles
+    if (my_fg.alpha == 1. &&
+	my_affine[0] == 1 &&
+	my_affine[1] == 0 &&
+	my_affine[2] == 0 &&
+	my_affine[3] == 1)
     {
-      ArtIRect rect;
-      rect.x0 = (int)((bot.x + _affine[4]) * _xres);
-      rect.x1 = (int)((top.x  + _affine[4])* _xres);
-      rect.y0 = (int)((bot.y + _affine[5]) * _yres);
-      rect.y1 = (int)((top.y + _affine[5]) * _yres);
-      art_irect_intersect(&rect, &rect, &_clip);
-      int width = (rect.x1 - rect.x0);
-      int height = (rect.y1 - rect.y0);
-      if ((height * width) < 1) return;
-      _renderer->set_color(_con_fg);
-      if (_fs == Fresco::DrawingKit::solid)
-	_renderer->draw_box(rect.x0, rect.y0, width, height);
-      else
+	ArtIRect rect;
+	rect.x0 = (int)((bot.x + my_affine[4]) * my_xres);
+	rect.x1 = (int)((top.x  + my_affine[4])* my_xres);
+	rect.y0 = (int)((bot.y + my_affine[5]) * my_yres);
+	rect.y1 = (int)((top.y + my_affine[5]) * my_yres);
+	art_irect_intersect(&rect, &rect, &my_clip);
+	int width = (rect.x1 - rect.x0);
+	int height = (rect.y1 - rect.y0);
+	if ((height * width) < 1) return;
+	my_renderer->set_color(my_con_fg);
+	if (my_fs == Fresco::DrawingKit::solid)
+	    my_renderer->draw_box(rect.x0, rect.y0, width, height);
+	else
 	{
-	  _renderer->draw_hline(rect.x0, rect.y0, width);
-	  _renderer->draw_hline(rect.x0, rect.y1, width);
-	  _renderer->draw_vline(rect.x0, rect.y0, height);
-	  _renderer->draw_vline(rect.x1, rect.y0, height);
+	    my_renderer->draw_hline(rect.x0, rect.y0, width);
+	    my_renderer->draw_hline(rect.x0, rect.y1, width);
+	    my_renderer->draw_vline(rect.x0, rect.y0, height);
+	    my_renderer->draw_vline(rect.x1, rect.y0, height);
 	}
-      art_irect_union (&_bbox, &_bbox, &rect);
-      return;
-      
-      // non-degenerate rectangles
+	art_irect_union (&my_bbox, &my_bbox, &rect);
+	return;
+	
+	// non-degenerate rectangles
     }
-  else
+    else
     {
-      Path path;
-      if (_fs == Fresco::DrawingKit::outlined)
+	Path path;
+	if (my_fs == Fresco::DrawingKit::outlined)
 	{
-	  path.nodes.length(4);
-	  path.nodes[0].x = bot.x, path.nodes[0].y = bot.y;
-	  path.nodes[1].x = top.x, path.nodes[1].y = bot.y;
-	  path.nodes[2].x = top.x, path.nodes[2].y = top.y;
-	  path.nodes[3].x = bot.x, path.nodes[2].y = top.y;
-	  path.shape = convex;
+	    path.nodes.length(4);
+	    path.nodes[0].x = bot.x, path.nodes[0].y = bot.y;
+	    path.nodes[1].x = top.x, path.nodes[1].y = bot.y;
+	    path.nodes[2].x = top.x, path.nodes[2].y = top.y;
+	    path.nodes[3].x = bot.x, path.nodes[2].y = top.y;
+	    path.shape = convex;
 	}
-      else
+	else
 	{
-	  path.nodes.length(5);
-	  path.nodes[0].x = bot.x, path.nodes[0].y = bot.y;
-	  path.nodes[1].x = top.x, path.nodes[1].y = bot.y;
-	  path.nodes[2].x = top.x, path.nodes[2].y = top.y;
-	  path.nodes[3].x = bot.x, path.nodes[3].y = top.y;
-	  path.nodes[4].x = bot.x, path.nodes[4].y = bot.y;
-	  path.shape = convex;
+	    path.nodes.length(5);
+	    path.nodes[0].x = bot.x, path.nodes[0].y = bot.y;
+	    path.nodes[1].x = top.x, path.nodes[1].y = bot.y;
+	    path.nodes[2].x = top.x, path.nodes[2].y = top.y;
+	    path.nodes[3].x = bot.x, path.nodes[3].y = top.y;
+	    path.nodes[4].x = bot.x, path.nodes[4].y = bot.y;
+	    path.shape = convex;
 	}
-      draw_path(static_cast<const Path>(path));
+	draw_path(static_cast<const Path>(path));
     }
 }
 
 void libArt::DrawingKit::draw_quadric(const Fresco::DrawingKit::Quadric,
-		                      Fresco::Coord, Fresco::Coord)
-{
-}
+		                      Fresco::Coord, Fresco::Coord) { }
 
-void libArt::DrawingKit::draw_ellipse(const Vertex &, const Vertex &) {}
+void libArt::DrawingKit::draw_ellipse(const Vertex &, const Vertex &) { }
 
 void libArt::DrawingKit::draw_image(Raster_ptr remote)
 {
-  rasterize_pixbuf(_rasters.lookup(Fresco::Raster::_duplicate(remote))->pixbuf);
+  rasterize_pixbuf(my_rasters.lookup(Fresco::Raster::_duplicate(remote))->pixbuf);
 }
 
 void libArt::DrawingKit::identity_pixbuf(ArtPixBuf *pixbuf)
 {
-  // fast path for non-transformed grey-scale glyph images
-  ArtIRect rect;
-  rect.x0 = (int)(_affine[4] * _xres);
-  rect.x1 = rect.x0 + pixbuf->width;
-  rect.y0 = (int)(_affine[5] * _yres);
-  rect.y1 = rect.y0 + pixbuf->height;
+    // fast path for non-transformed grey-scale glyph images
+    ArtIRect rect;
+    rect.x0 = (int)(my_affine[4] * my_xres);
+    rect.x1 = rect.x0 + pixbuf->width;
+    rect.y0 = (int)(my_affine[5] * my_yres);
+    rect.y1 = rect.y0 + pixbuf->height;
   
-  // work out offset within source image
-  int dx = _clip.x0 - rect.x0;
-  int dy = _clip.y0 - rect.y0;
-  if (dx < 0) dx = 0;
-  if (dy < 0) dy = 0;
-
-  art_irect_intersect(&rect, &rect, &_clip);
-  if (((rect.y1 - rect.y0) * (rect.x1 - rect.x0)) < 1) return;
-  DirectBuffer::Guard pb_buf = _direct->write_buffer();
-  ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
-					     _drawable->width(),
-					     _drawable->height(),
-					     _buffer->row_length());
-  art_u8 *dst = pb->pixels + rect.y0 * pb->rowstride + rect.x0 * 3;
-  art_u8 *src = pixbuf->pixels + dy * pixbuf->rowstride + dx;
-  int width = (rect.x1 - rect.x0);
-  int height = (rect.y1 - rect.y0);  
-  art_u8 *atab = _alphabank[(art_u8)(_art_fg & 0xff)];
-  art_u8 *rtab = _alphabank[(art_u8)((_art_fg >> 24) & 0xff)];
-  art_u8 *gtab = _alphabank[(art_u8)((_art_fg >> 16) & 0xff)];
-  art_u8 *btab = _alphabank[(art_u8)((_art_fg >> 8) & 0xff)];
+    // work out offset within source image
+    int dx = my_clip.x0 - rect.x0;
+    int dy = my_clip.y0 - rect.y0;
+    if (dx < 0) dx = 0;
+    if (dy < 0) dy = 0;
 
-  int t;
-  int dst_skip = pb->rowstride - width * 3;
-  int src_skip = pixbuf->rowstride - width;
-  art_u8 *ptab;
+    art_irect_intersect(&rect, &rect, &my_clip);
+    if (((rect.y1 - rect.y0) * (rect.x1 - rect.x0)) < 1) return;
+    Console_Extension::DirectBuffer::Guard pb_buf =
+	my_direct->write_buffer();
+    ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
+					       my_drawable->width(),
+					       my_drawable->height(),
+					       my_buffer->row_length());
+    art_u8 *dst = pb->pixels + rect.y0 * pb->rowstride + rect.x0 * 3;
+    art_u8 *src = pixbuf->pixels + dy * pixbuf->rowstride + dx;
+    int width = (rect.x1 - rect.x0);
+    int height = (rect.y1 - rect.y0);  
+    art_u8 *atab = my_alphabank[(art_u8)(my_art_fg & 0xff)];
+    art_u8 *rtab = my_alphabank[(art_u8)((my_art_fg >> 24) & 0xff)];
+    art_u8 *gtab = my_alphabank[(art_u8)((my_art_fg >> 16) & 0xff)];
+    art_u8 *btab = my_alphabank[(art_u8)((my_art_fg >> 8) & 0xff)];
 
+    int t;
+    int dst_skip = pb->rowstride - width * 3;
+    int src_skip = pixbuf->rowstride - width;
+    art_u8 *ptab;
 
-  for (int row = 0; row < height; ++row, dst += dst_skip, src += src_skip)
-    for (int col = 0; col < width; ++col, dst += 3, ++src)
-      {            
-	ptab = _alphabank[*src];
-	dst[0] = t = dst[0] + atab[rtab[*src]] - atab[ptab[dst[0]]]; 
-	t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[0] |= (t & 0xff);
-	dst[1] = t = dst[1] + atab[gtab[*src]] - atab[ptab[dst[1]]]; 
-	t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[1] |= (t & 0xff);
-	dst[2] = t = dst[2] + atab[btab[*src]] - atab[ptab[dst[2]]]; 
-	t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[2] |= (t & 0xff);
-      }
-  art_irect_union (&_bbox, &_bbox, &rect);
+    for (int row = 0;
+	 row < height;
+	 ++row, dst += dst_skip, src += src_skip)
+	for (int col = 0;
+	     col < width;
+	     ++col, dst += 3, ++src)
+	{            
+	    ptab = my_alphabank[*src];
+	    dst[0] = t = dst[0] + atab[rtab[*src]] - atab[ptab[dst[0]]]; 
+	    t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[0] |= (t & 0xff);
+	    dst[1] = t = dst[1] + atab[gtab[*src]] - atab[ptab[dst[1]]]; 
+	    t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[1] |= (t & 0xff);
+	    dst[2] = t = dst[2] + atab[btab[*src]] - atab[ptab[dst[2]]]; 
+	    t &= 0x100; t >>= 8; t -= 1; t =~ t; dst[2] |= (t & 0xff);
+	}
+    art_irect_union (&my_bbox, &my_bbox, &rect);
 }
 
 
 void libArt::DrawingKit::rasterize_pixbuf(ArtPixBuf *pixbuf)
 {
   
-  // NOTE: this entire routine takes place "in device space"
-  // since that is (a) the source of the raster and (b) the destination
-  // of libart's transformation. the goal is to get everything into
-  // device space and work with it there.
+    // NOTE: this entire routine takes place "in device space"
+    // since that is (a) the source of the raster and (b) the destination
+    // of libart's transformation. the goal is to get everything into
+    // device space and work with it there.
   
-  double dev_affine[6] = {_affine[0], _affine[1], _affine[2], _affine[3], 
-			  _affine[4] * _xres, _affine[5] * _yres };
+    double dev_affine[6] = {my_affine[0], my_affine[1],
+			    my_affine[2], my_affine[3],
+			    my_affine[4] * my_xres,
+			    my_affine[5] * my_yres};
   			      
-  // pre-transformation target rectangle, in device space coords
-  ArtDRect slocd = {0,0,(double)(pixbuf->width),(double)(pixbuf->height)};
-  ArtDRect tslocd; 
-  ArtIRect tsloci; 
+    // pre-transformation target rectangle, in device space coords
+    ArtDRect slocd = {0,0,(double)(pixbuf->width),
+		      (double)(pixbuf->height)};
+    ArtDRect tslocd; 
+    ArtIRect tsloci; 
 
-  int width = pixbuf->width;
-  int pix = ((pixbuf->n_channels * pixbuf->bits_per_sample + 7) >> 3); 
-  int row = (width) * pix;
-  int skip = (pixbuf->rowstride - row);
-  int size = (_fg.alpha == 1. ? 0 : (pixbuf->height - 1) * pixbuf->rowstride + width * pix);      
+    int width = pixbuf->width;
+    int pix = ((pixbuf->n_channels * pixbuf->bits_per_sample + 7) >> 3); 
+    int row = (width) * pix;
+    int skip = (pixbuf->rowstride - row);
+    int size = (my_fg.alpha == 1. ? 0 :
+		(pixbuf->height - 1) * pixbuf->rowstride + width * pix);      
 
-  art_u8 tmp[size];
-  art_u8 *save = pixbuf->pixels;
+    art_u8 tmp[size];
+    art_u8 *save = pixbuf->pixels;
 
-  // alpha-correct the image
-  if (_fg.alpha != 1.)
+    // alpha-correct the image
+    if (my_fg.alpha != 1.)
     {
-      art_u8 *end_write = tmp + (size - 1);
-      art_u8 *reader = pixbuf->pixels;
-      art_u8 *tab = _alphabank[(art_u8)(_art_fg & 0x000000ff)];
-      art_u8 *eol;
-      for (art_u8 *writer = tmp; writer < end_write; reader += skip, writer += skip)
+	art_u8 *end_write = tmp + (size - 1);
+	art_u8 *reader = pixbuf->pixels;
+	art_u8 *tab = my_alphabank[(art_u8)(my_art_fg & 0x000000ff)];
+	art_u8 *eol;
+	for (art_u8 *writer = tmp;
+	     writer < end_write;
+	     reader += skip, writer += skip)
 	{
-	  memcpy(writer,reader,row);
-	  eol = writer + row;      
-	  while (writer < eol)
+	    memcpy(writer,reader,row);
+	    eol = writer + row;      
+	    while (writer < eol)
 	    {
-	      writer += 3; reader += 3;
-	      *writer++ = *(tab + *reader++);      
+		writer += 3; reader += 3;
+		*writer++ = *(tab + *reader++);      
 	    }
 	}
-      pixbuf->pixels = tmp;
+	pixbuf->pixels = tmp;
     }
   
-  // transform target (in device space)
-  art_drect_affine_transform(&tslocd, &slocd, dev_affine); 
-  art_drect_to_irect(&tsloci, &tslocd); 
-  fix_order_of_irect(tsloci); 
+    // transform target (in device space)
+    art_drect_affine_transform(&tslocd, &slocd, dev_affine); 
+    art_drect_to_irect(&tsloci, &tslocd); 
+    fix_order_of_irect(tsloci); 
   
-  // clip 
-  art_irect_intersect(&tsloci, &tsloci, &_clip);
-  art_irect_union (&_bbox, &_bbox, &tsloci);
+    // clip 
+    art_irect_intersect(&tsloci, &tsloci, &my_clip);
+    art_irect_union (&my_bbox, &my_bbox, &tsloci);
   
-  // paint
-  DirectBuffer::Guard pb_buf = _direct->write_buffer();
-  ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
-					     _drawable->width(),
-					     _drawable->height(),
-					     _buffer->row_length());
-  art_rgb_pixbuf_affine((art_u8 *)(pb_buf.get()) + 
-			(tsloci.y0 * pb->rowstride) + 
-			(tsloci.x0 * 3), // 3 for "R,G,B" packed pixels			
-			tsloci.x0, tsloci.y0, tsloci.x1, tsloci.y1,
-			_buffer->row_length(),
-			pixbuf, dev_affine,
-			ART_FILTER_NEAREST, _agam);
-  pixbuf->pixels = save;
+    // paint
+    Console_Extension::DirectBuffer::Guard pb_buf =
+	my_direct->write_buffer();
+    ArtPixBuf * pb = art_pixbuf_new_const_rgb ((art_u8 *)(pb_buf.get()),
+					       my_drawable->width(),
+					       my_drawable->height(),
+					       my_buffer->row_length());
+    art_rgb_pixbuf_affine((art_u8 *)(pb_buf.get()) + 
+			  (tsloci.y0 * pb->rowstride) + 
+			  (tsloci.x0 * 3), // 3 for "R,G,B" packed pixels			
+			  tsloci.x0, tsloci.y0, tsloci.x1, tsloci.y1,
+			  my_buffer->row_length(),
+			  pixbuf, dev_affine,
+			  ART_FILTER_NEAREST, my_agam);
+    pixbuf->pixels = save;
 }
 
 void libArt::DrawingKit::draw_text(const Unistring &u) 
 {
-  // presently disabled. should delegate to drawChar
+  // FIXME: presently disabled. should delegate to drawChar
 }
 
 void libArt::DrawingKit::draw_char(Unichar c)
 {
-  double x0 = _affine[4];
-  double y0 = _affine[5];
-  int width;
-  int height;
-  Graphic::Requisition r;
-  // We need to initialise this manually:
-  r.x.defined = false;
-  r.y.defined = false;
-  r.z.defined = false;
-  r.preserve_aspect = false;
+    double x0 = my_affine[4];
+    double y0 = my_affine[5];
+    int width;
+    int height;
+    Graphic::Requisition r;
+    // We need to initialise this manually:
+    r.x.defined = false;
+    r.y.defined = false;
+    r.z.defined = false;
+    r.preserve_aspect = false;
   
-  if (c > 127)
+    if (c > 127)
     {
-      _unifont->allocate_char(c,r);
-      width = (int) (r.x.maximum * _xres);
-      height = (int) (r.y.maximum * _yres);
+	my_unifont->allocate_char(c,r);
+	width = (int) (r.x.maximum * my_xres);
+	height = (int) (r.y.maximum * my_yres);
     }
-  else
+    else
     {
-      _font->allocate_char(c,r);
-      Fresco::DrawingKit::GlyphMetrics gm = _font->metrics(c);
-      width = (int) (gm.width >> 6);
-      height = (int) (gm.height >> 6);
+	my_font->allocate_char(c,r);
+	Fresco::DrawingKit::GlyphMetrics gm = my_font->metrics(c);
+	width = (int) (gm.width >> 6);
+	height = (int) (gm.height >> 6);
     }
   
-  ArtPixBuf *pb;
-  int transformed = false;
-  double matrix[4];
-  for (int i = 0; i < 4; ++i) matrix[i] = _affine[i];
+    ArtPixBuf *pb;
+    int transformed = false;
+    double matrix[4];
+    // FIXME: USe memcopy!
+    for (int i = 0; i < 4; ++i) matrix[i] = my_affine[i];
 
-  if (c > 127)
+    if (c > 127)
     {
-      transformed = _unifont->transform(matrix);
-      _unifont->buffer(c, pb);
+	transformed = my_unifont->transform(matrix);
+	my_unifont->buffer(c, pb);
     }
-  else
+    else
     {  
-      transformed = _font->transform(matrix);
-      _font->buffer(c, pb);
+	transformed = my_font->transform(matrix);
+	my_font->buffer(c, pb);
     }
 
-  if (transformed || (_affine[0] == 1 &&
-		      _affine[1] == 0 &&
-		      _affine[2] == 0 &&
-		      _affine[3] == 1))
+    if (transformed || (my_affine[0] == 1 &&
+			my_affine[1] == 0 &&
+			my_affine[2] == 0 &&
+			my_affine[3] == 1))
     {
-      _affine[5] -= (_affine[2] * r.x.maximum * r.x.align) + (_affine[3] * r.y.maximum * r.y.align);
-      identity_pixbuf(pb);      
+	my_affine[5] -= (my_affine[2] * r.x.maximum * r.x.align) +
+	    (my_affine[3] * r.y.maximum * r.y.align);
+	identity_pixbuf(pb);      
     }
-  else
+    else
     {   
-      // *sigh* use primitive libart pixel functions
-      _affine[4] -= (r.y.maximum * r.y.align * _affine[2]);
-      _affine[5] -= (r.y.maximum * r.y.align * _affine[3]);        
-      int pix = 4;
-      int row = width * pix; 
-      int size = height * row;
-      art_u8 pixels[size];    
-      //setup foreground color
-      for (int i = 0; i < row; ++i)
+	// *sigh* use primitive libart pixel functions
+	my_affine[4] -= (r.y.maximum * r.y.align * my_affine[2]);
+	my_affine[5] -= (r.y.maximum * r.y.align * my_affine[3]);        
+	int pix = 4;
+	int row = width * pix; 
+	int size = height * row;
+	art_u8 pixels[size];    
+	//setup foreground color
+	for (int i = 0; i < row; ++i)
 	{
-	  pixels[i] =   (unsigned char) ((_art_fg >> 24) & 0x000000ff);
-	  pixels[++i] = (unsigned char) ((_art_fg >> 16) & 0x000000ff);
-	  pixels[++i] = (unsigned char) ((_art_fg >> 8) & 0x000000ff);
-	  pixels[++i] = (unsigned char) 0;
+	    pixels[i] =   (unsigned char) ((my_art_fg >> 24) & 0x000000ff);
+	    pixels[++i] = (unsigned char) ((my_art_fg >> 16) & 0x000000ff);
+	    pixels[++i] = (unsigned char) ((my_art_fg >> 8) & 0x000000ff);
+	    pixels[++i] = (unsigned char) 0;
 	}
-      for (int i = 0; i < height; ++i) memcpy (pixels + (i * row), pixels, row);
-      for (int i = 0; i < (width * height); ++i) pixels[pix*i + 3] = pb->pixels[i];    
-      ArtPixBuf *pb2 = art_pixbuf_new_const_rgba (pixels, width, height, row);  
-      rasterize_pixbuf(pb2);
-      art_pixbuf_free(pb2);
+	for (int i = 0; i < height; ++i)
+	    memcpy(pixels + (i * row), pixels, row);
+	for (int i = 0; i < (width * height); ++i)
+	    pixels[pix*i + 3] = pb->pixels[i];    
+	ArtPixBuf *pb2 =
+	    art_pixbuf_new_const_rgba(pixels, width, height, row);  
+	rasterize_pixbuf(pb2);
+	art_pixbuf_free(pb2);
     }
   
-  _affine[4] = x0;
-  _affine[5] = y0;
+    my_affine[4] = x0;
+    my_affine[5] = y0;
 }
 
-void libArt::DrawingKit::allocate_char(Unichar c, Graphic::Requisition & req)
+void libArt::DrawingKit::allocate_char(Unichar c,
+				       Graphic::Requisition & req)
 {
-  if (c > 127) _unifont->allocate_char(c,req);
-  else _font->allocate_char(c,req);
+    if (c > 127) my_unifont->allocate_char(c, req);
+    else my_font->allocate_char(c, req);
 }
 
 
 void libArt::DrawingKit::allocate_text(const Unistring & s,
 		                       Graphic::Requisition & req)
 {
-  //   font->allocate(s,req);
+    // font->allocate(s,req);
 }
 
 void libArt::DrawingKit::copy_drawable(Drawable_ptr d,
 		                       PixelCoord x, PixelCoord y,
 				       PixelCoord w, PixelCoord h)
 {
-  CORBA::Double x2 = _affine[4] * _buffer->resolution(xaxis);
-  CORBA::Double y2 = _affine[5] * _buffer->resolution(yaxis);
-  _buffer->blit(d, x, y, w, h, static_cast<long>(x2 + x), static_cast<long>(y2 + y));
+    CORBA::Double x2 = my_affine[4] * my_buffer->resolution(xaxis);
+    CORBA::Double y2 = my_affine[5] * my_buffer->resolution(yaxis);
+    my_buffer->blit(d, x, y, w, h,
+		    static_cast<long>(x2 + x),
+		    static_cast<long>(y2 + y));
 }
 
 void libArt::DrawingKit::flush()
 {   
-  int x = _bbox.x0;
-  int y = _bbox.y0;
-  int w = _bbox.x1 - _bbox.x0;
-  int h = _bbox.y1 - _bbox.y0;  
-  _buffer->flush(x, y, w, h);
-  _drawable->blit(*_buffer, x, y, w, h, x, y);
-  _bbox.x0 = _bbox.y0 = _bbox.x1 = _bbox.y1 = 0;  
-  _drawable->flush(x, y, w, h);
+    int x = my_bbox.x0;
+    int y = my_bbox.y0;
+    int w = my_bbox.x1 - my_bbox.x0;
+    int h = my_bbox.y1 - my_bbox.y0;  
+    my_buffer->flush(x, y, w, h);
+    my_drawable->blit(*my_buffer, x, y, w, h, x, y);
+    my_bbox.x0 = my_bbox.y0 = my_bbox.x1 = my_bbox.y1 = 0;  
+    my_drawable->flush(x, y, w, h);
 }
 
-extern "C" KitImpl *load()
+extern "C" Berlin::KitImpl *load()
 {
-  static std::string properties[] = {"implementation", "LibArtDrawingKit"};
-  return create_prototype<libArt::DrawingKit>("IDL:fresco.org/Fresco/DrawingKit:1.0", properties, 2);
+    static std::string properties[] = {"implementation", "LibArtDrawingKit"};
+    return Berlin::create_prototype<libArt::DrawingKit>("IDL:fresco.org/Fresco/DrawingKit:1.0", properties, 2);
 }

Index: DrawingKit.hh
===================================================================
RCS file: /cvs/fresco/Fresco/Berlin/modules/Drawing/libArt/DrawingKit.hh,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- DrawingKit.hh	27 May 2003 23:12:45 -0000	1.31
+++ DrawingKit.hh	29 Dec 2003 08:03:23 -0000	1.32
@@ -20,8 +20,8 @@
  * Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
  * MA 02139, USA.
  */
-#ifndef _DrawingKit_hh
-#define _DrawingKit_hh
+#ifndef _libArt_DrawingKit_hh
+#define _libArt_DrawingKit_hh
 
 #include <Prague/Sys/Thread.hh>
 #include <Fresco/config.hh>
@@ -48,122 +48,160 @@
 
 namespace Berlin 
 {
-namespace DrawingKit 
-{
-namespace libArt 
-{
-
-class DrawingKit : public DrawingKitBase, public KitImpl
-{
-public:
-  DrawingKit(const std::string &,
-	     const Fresco::Kit::PropertySeq &,
-	     ServerContextImpl *);
-  virtual ~DrawingKit();
-  virtual KitImpl *clone(const Fresco::Kit::PropertySeq &, ServerContextImpl *);
-
-  virtual void transformation(Fresco::Transform_ptr t) { DrawingKitBase::transformation(t);}
-  virtual Fresco::Transform_ptr transformation() { return Fresco::Transform::_duplicate(_tr);}
-  virtual void clipping(Fresco::Region_ptr r) { DrawingKitBase::clipping(r);}
-  virtual Fresco::Region_ptr clipping() { return Fresco::Region::_duplicate(_cl);}
-  virtual void foreground(const Fresco::Color &c) { DrawingKitBase::foreground(c);}
-  virtual Fresco::Color foreground() { return _fg;}
-  virtual void lighting(const Fresco::Color &c) { DrawingKitBase::lighting(c);}
-  virtual Fresco::Color lighting() { return _lt;}
-  virtual void point_size(Fresco::Coord c) { DrawingKitBase::point_size(c);}
-  virtual Fresco::Coord point_size() { return _ps;}
-  virtual void line_width(Fresco::Coord c) { DrawingKitBase::line_width(c);}
-  virtual Fresco::Coord line_width() { return _lw;}
-  virtual void line_endstyle(Fresco::DrawingKit::Endstyle e) { DrawingKitBase::line_endstyle(e);}
-  virtual Fresco::DrawingKit::Endstyle line_endstyle() { return _es;}
-  virtual void surface_fillstyle(Fresco::DrawingKit::Fillstyle f) { DrawingKitBase::surface_fillstyle(f);}
-  virtual Fresco::DrawingKit::Fillstyle surface_fillstyle() { return _fs;}
-  virtual void texture(Fresco::Raster_ptr r) { DrawingKitBase::texture(r);}
-  virtual Fresco::Raster_ptr texture() { //return tx ? Raster::_duplicate(tx->remote) : 
-    return Fresco::Raster::_nil();}
-
-  virtual CORBA::ULong font_size() { return _font->size();}
-  virtual CORBA::ULong font_weight() { return _font->weight();}
-  virtual Fresco::Unistring *font_family() { return _font->family();}
-  virtual Fresco::Unistring *font_subfamily() { return _font->subfamily();}
-  virtual Fresco::Unistring *font_fullname() { return _font->fullname();}
-  virtual Fresco::Unistring *font_style() { return _font->style();}
-  virtual Fresco::DrawingKit::FontMetrics font_metrics() { return _font->metrics();}
-  virtual Fresco::DrawingKit::GlyphMetrics glyph_metrics(Fresco::Unichar uc) { return _font->metrics(uc);}
-  virtual CORBA::Any *get_font_attribute(const Fresco::Unistring & name) { return new CORBA::Any();}
-
-  virtual void set_transformation(Fresco::Transform_ptr);
-  virtual void set_clipping(Fresco::Region_ptr);
-  virtual void set_foreground(const Fresco::Color &);
-  virtual void set_lighting(const Fresco::Color &);
-  virtual void set_point_size(Fresco::Coord);
-  virtual void set_line_width(Fresco::Coord);
-  virtual void set_line_endstyle(Fresco::DrawingKit::Endstyle);
-  virtual void set_surface_fillstyle(Fresco::DrawingKit::Fillstyle);
-  virtual void set_texture(Fresco::Raster_ptr);
+  namespace DrawingKit 
+  {
+    namespace libArt 
+    {
+      
+      class DrawingKit : public DrawingKitBase, public KitImpl
+      {
+	public:
+	  DrawingKit(const std::string &,
+		     const Fresco::Kit::PropertySeq &,
+		     ServerContextImpl *);
+	  virtual ~DrawingKit();
+	  virtual KitImpl *clone(const Fresco::Kit::PropertySeq &,
+				 ServerContextImpl *);
+	  
+	  virtual void transformation(Fresco::Transform_ptr t)
+	  { DrawingKitBase::transformation(t); }
+	  virtual Fresco::Transform_ptr transformation()
+	  { return Fresco::Transform::_duplicate(my_tr); }
+	  virtual void clipping(Fresco::Region_ptr r)
+          { DrawingKitBase::clipping(r); }
+	  virtual Fresco::Region_ptr clipping()
+	  { return Fresco::Region::_duplicate(my_cl); }
+	  virtual void foreground(const Fresco::Color &c)
+	  { DrawingKitBase::foreground(c); }
+	  virtual Fresco::Color foreground() { return my_fg; }
+	  virtual void lighting(const Fresco::Color &c)
+	  { DrawingKitBase::lighting(c); }
+	  virtual Fresco::Color lighting() { return my_lt; }
+	  virtual void point_size(Fresco::Coord c)
+	  { DrawingKitBase::point_size(c); }
+	  virtual Fresco::Coord point_size() { return my_ps; }
+	  virtual void line_width(Fresco::Coord c)
+	  { DrawingKitBase::line_width(c);}
+	  virtual Fresco::Coord line_width() { return my_lw;}
+	  virtual void line_endstyle(Fresco::DrawingKit::Endstyle e)
+	  { DrawingKitBase::line_endstyle(e); }
+	  virtual Fresco::DrawingKit::Endstyle line_endstyle()
+	  { return my_es; }
+	  virtual void surface_fillstyle(Fresco::DrawingKit::Fillstyle f)
+	  { DrawingKitBase::surface_fillstyle(f); }
+	  virtual Fresco::DrawingKit::Fillstyle surface_fillstyle()
+	  { return my_fs; }
+	  virtual void texture(Fresco::Raster_ptr r)
+	  { DrawingKitBase::texture(r); }
+	  virtual Fresco::Raster_ptr texture()
+	  {
+	      //return tx ? Raster::_duplicate(tx->remote) : 
+	      return Fresco::Raster::_nil();
+	  }
 
-  virtual void set_font_size(CORBA::ULong);
-  virtual void set_font_weight(CORBA::ULong);
-  virtual void set_font_family(const Fresco::Unistring &);
-  virtual void set_font_subfamily(const Fresco::Unistring &);
-  virtual void set_font_fullname(const Fresco::Unistring &);
-  virtual void set_font_style(const Fresco::Unistring &);
-  virtual void set_font_attribute(const Fresco::NVPair &);
+	  virtual CORBA::ULong font_size() { return my_font->size(); }
+	  virtual CORBA::ULong font_weight() { return my_font->weight(); }
+	  virtual Fresco::Unistring *font_family()
+	  { return my_font->family(); }
+	  virtual Fresco::Unistring *font_subfamily()
+	  { return my_font->subfamily(); }
+	  virtual Fresco::Unistring *font_fullname()
+	  { return my_font->fullname(); }
+	  virtual Fresco::Unistring *font_style()
+	  { return my_font->style(); }
+	  virtual Fresco::DrawingKit::FontMetrics font_metrics()
+	  { return my_font->metrics(); }
+	  virtual Fresco::DrawingKit::GlyphMetrics
+	  glyph_metrics(Fresco::Unichar uc)
+	  { return my_font->metrics(uc); }
+	  virtual CORBA::Any *
+	  get_font_attribute(const Fresco::Unistring & name)
+	  { return new CORBA::Any(); }
 
-  virtual Fresco::Coord resolution(Fresco::Axis a) { return _drawable->resolution(a);}
-  virtual void draw_path(const Fresco::Path &);
-  virtual void draw_new_path(const Fresco::NewPath &);
-//   virtual void drawPatch(const Fresco::Patch &);
-  virtual void draw_rectangle(const Fresco::Vertex &, const Fresco::Vertex &);
-  virtual void draw_quadric(const Fresco::DrawingKit::Quadric, Fresco::Coord, Fresco::Coord);
-  virtual void draw_ellipse(const Fresco::Vertex &, const Fresco::Vertex &);
-  virtual void draw_image(Fresco::Raster_ptr);
-  virtual void allocate_text(const Fresco::Unistring &, Fresco::Graphic::Requisition &);
-  virtual void draw_text(const Fresco::Unistring &);
-  virtual void allocate_char(Fresco::Unichar, Fresco::Graphic::Requisition &);
-  virtual void draw_char(Fresco::Unichar);
-  virtual void copy_drawable(Fresco::Drawable_ptr, Fresco::PixelCoord, Fresco::PixelCoord, Fresco::PixelCoord, Fresco::PixelCoord);
-  virtual void flush();
+	  virtual void set_transformation(Fresco::Transform_ptr);
+	  virtual void set_clipping(Fresco::Region_ptr);
+	  virtual void set_foreground(const Fresco::Color &);
+	  virtual void set_lighting(const Fresco::Color &);
+	  virtual void set_point_size(Fresco::Coord);
+	  virtual void set_line_width(Fresco::Coord);
+	  virtual void set_line_endstyle(Fresco::DrawingKit::Endstyle);
+	  virtual void
+	  set_surface_fillstyle(Fresco::DrawingKit::Fillstyle);
+	  virtual void set_texture(Fresco::Raster_ptr);
 
-  virtual void start_traversal(Fresco::Traversal_ptr) { _drawable->init(); }
-  virtual void finish_traversal() { _drawable->finish(); }
- private:
-  void init();
-  void rasterize_pixbuf(ArtPixBuf *pixbuf);
-  void identity_pixbuf(ArtPixBuf *pixbuf);
+	  virtual void set_font_size(CORBA::ULong);
+	  virtual void set_font_weight(CORBA::ULong);
+	  virtual void set_font_family(const Fresco::Unistring &);
+	  virtual void set_font_subfamily(const Fresco::Unistring &);
+	  virtual void set_font_fullname(const Fresco::Unistring &);
+	  virtual void set_font_style(const Fresco::Unistring &);
+	  virtual void set_font_attribute(const Fresco::NVPair &);
+	  
+	  virtual Fresco::Coord resolution(Fresco::Axis a)
+	  { return my_drawable->resolution(a); }
+	  virtual void draw_path(const Fresco::Path &);
+	  virtual void draw_new_path(const Fresco::NewPath &);
+          // virtual void drawPatch(const Fresco::Patch &);
+	  virtual void draw_rectangle(const Fresco::Vertex &,
+				      const Fresco::Vertex &);
+	  virtual void draw_quadric(const Fresco::DrawingKit::Quadric,
+				    Fresco::Coord, Fresco::Coord);
+	  virtual void draw_ellipse(const Fresco::Vertex &,
+				    const Fresco::Vertex &);
+	  virtual void draw_image(Fresco::Raster_ptr);
+	  virtual void allocate_text(const Fresco::Unistring &,
+				     Fresco::Graphic::Requisition &);
+	  virtual void draw_text(const Fresco::Unistring &);
+	  virtual void allocate_char(Fresco::Unichar,
+				     Fresco::Graphic::Requisition &);
+	  virtual void draw_char(Fresco::Unichar);
+	  virtual void copy_drawable(Fresco::Drawable_ptr,
+				     Fresco::PixelCoord,
+				     Fresco::PixelCoord,
+				     Fresco::PixelCoord,
+				     Fresco::PixelCoord);
+	  virtual void flush();
 
-  Console::Drawable *_drawable;
-  Console::Drawable *_buffer;
-  Renderer          *_renderer;
-  DirectBuffer      *_direct;
-  ArtIRect           _bbox;
-  double             _xres, _yres;
-  Prague::Mutex      _mutex;
+	  virtual void start_traversal(Fresco::Traversal_ptr)
+	  { my_drawable->init(); }
+	  virtual void finish_traversal() { my_drawable->finish(); }
+	private:
+	  void init();
+	  void rasterize_pixbuf(ArtPixBuf *pixbuf);
+	  void identity_pixbuf(ArtPixBuf *pixbuf);
 
-  double             _affine[6];
-  double             _scaled_affine[6];
+	  Console::Drawable *my_drawable;
+	  Console::Drawable *my_buffer;
+	  Console_Extension::Renderer *my_renderer;
+	  Console_Extension::DirectBuffer *my_direct;
+	  ArtIRect my_bbox;
+	  double my_xres, my_yres;
+	  Prague::Mutex my_mutex;
 
-  Fresco::Transform_var  _tr;
-  Fresco::Region_var     _cl;
-  Fresco::Color          _fg;
-  Fresco::Color          _lt;
-  Fresco::Coord          _ps;
-  Fresco::Coord          _lw;
-  Fresco::DrawingKit::Endstyle       _es;
-  Fresco::DrawingKit::Fillstyle      _fs;
-  FTFont                *_font;
-  Font                  *_unifont;
-  art_u8                 _alphabank[256][256];
-  ArtAlphaGamma         *_agam;
-  Fresco::Color          _con_fg;
-  art_u32                _art_fg;
-  ArtIRect _screen,      _clip;
-  
-  ObjectCache<Fresco::Raster_var, libArt::Raster> _rasters;
-};
+	  double my_affine[6];
+	  double my_scaled_affine[6];
+	  
+	  Fresco::Transform_var my_tr;
+	  Fresco::Region_var my_cl;
+	  Fresco::Color my_fg;
+	  Fresco::Color my_lt;
+	  Fresco::Coord my_ps;
+	  Fresco::Coord my_lw;
+	  Fresco::DrawingKit::Endstyle my_es;
+	  Fresco::DrawingKit::Fillstyle my_fs;
+	  FTFont *my_font;
+	  Font *my_unifont;
+	  art_u8 my_alphabank[256][256];
+	  ArtAlphaGamma *my_agam;
+	  Fresco::Color my_con_fg;
+	  art_u32 my_art_fg;
+	  ArtIRect my_screen, my_clip;
+	  
+	  ObjectCache<Fresco::Raster_var, libArt::Raster> my_rasters;
+      };
 
-} // namespace
-} // namespace
+    } // namespace
+  } // namespace
 } // namespace
 
 #endif