Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » Draw, Display, Images, Bitmaps, Icons » Draw::DrawImageOp optimization bug
Re: Draw::DrawImageOp optimization bug [message #19350 is a reply to message #19349] Fri, 28 November 2008 10:23 Go to previous messageGo to previous message
Tom1
Messages: 1216
Registered: March 2007
Senior Contributor
I wrote a simple test case that can be used to visualize the problem easily when printing to e.g. Microsoft XPS Document Writer.

#include <CtrlLib/CtrlLib.h>

using namespace Upp;

class Testcase2 : public TopWindow{
	
public:
	typedef Testcase2 CLASSNAME;
	
	Testcase2(){
		Sizeable();
		MinimizeBox();
		MaximizeBox();
		BackPaint();
	}

	void drawimage(Draw &draw){
		Size sz;
		if(draw.IsPrinter()) sz=draw.GetPagePixels();
		else sz=GetSize();
		
		ImageBuffer ib(sz.cx,sz.cy);
		for(int y=0;y<sz.cy;y++){
			for(int x=0;x<sz.cx;x++){
				ib[y][x]=(RGBA)Color((16*y/sz.cy)<<4,(16*y/sz.cy)<<4,(16*x/sz.cx)<<4);
			}
		}
		
		Rect rect=draw.GetClip();
		draw.DrawRect(rect,Color(255,255,255));
		Image img(ib);
		draw.DrawImage(0,0,img);
		if(!draw.IsPrinter()){
			draw.DrawText(10,10,"Press 'P' to print...",StdFont(),Color(255,255,255));
			draw.DrawText(10,30,"(This really drains your ink/toner cartridge, so try e.g. Microsoft XPS Document Writer.)",StdFont(),Color(255,255,255));
		}
	}
	
	void print(){
		PrinterJob *job=new PrinterJob();
		if(job){
			if(job->Execute()){
				Draw &draw=job->GetDraw();
				draw.StartPage();
				drawimage(draw);
				draw.EndPage();
			}
			delete job;
		}
	}
	
	virtual void Paint(Draw &draw){
		drawimage(draw);
	}
	
	bool Key(dword key, int count){
		switch(key){
			case K_P:
				print();
				return true;
		}
		return false;
	}

};

GUI_APP_MAIN
{
	Testcase2().Run();
}


// Tom
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Extensions to Draw...Ops
Next Topic: Compile package with iml file problem!
Goto Forum:
  


Current Time: Tue May 21 20:12:53 CEST 2024

Total time taken to generate the page: 0.01221 seconds