Home » Community » U++ community news and announcements » Painter refactored/optimized
Re: Painter refactored/optimized [message #50563 is a reply to message #50562] |
Thu, 15 November 2018 12:40   |
 |
mirek
Messages: 14257 Registered: November 2005
|
Ultimate Member |
|
|
OK, I have just found that I have accidentally deleted that precious initialized memory in Create. So the new version is in the trunk. Changing your example with global BufferPainter now shows some pretty significant gains:
#include <CtrlLib/CtrlLib.h>
#include <Painter/Painter.h>
using namespace Upp;
class PainterBench : public TopWindow {
public:
Painting p;
FileSel fs;
BufferPainter bpainter;
void Open(){
if(fs.ExecuteOpen("Select a painting to view")){
p.Clear();
p.Serialize(FileIn(fs.Get()));
}
}
virtual bool Key(dword key, int count){
Refresh();
switch(key){
case K_CTRL_O:
Open();
return true;
}
return false;
}
typedef PainterBench CLASSNAME;
PainterBench(){
Sizeable();
p.Serialize(FileIn("C:/xxx/PainteTest/SomeRocks.painting"));
}
virtual void Paint(Draw &draw){
int64 STtiming=0;
int64 MTtiming=0;
ImageBuffer ib(GetSize());
{
bpainter.Create(ib);
bpainter.Co(true);
bpainter.PreClipDashed();
bpainter.Clear(White());
bpainter.EvenOdd();
int64 t0=usecs();
bpainter.Paint(p);
int64 t1=usecs();
MTtiming=t1-t0;
bpainter.Finish();
}
{
bpainter.Create(ib);
bpainter.Co(false);
bpainter.PreClipDashed();
bpainter.Clear(White());
bpainter.EvenOdd();
int64 t0=usecs();
bpainter.Paint(p);
int64 t1=usecs();
STtiming=t1-t0;
bpainter.Finish();
}
SetSurface(draw,Rect(ib.GetSize()),ib,ib.GetSize(),Point(0,0));
double gain=(double)STtiming/(double)(0.1+MTtiming); // Avoid div by zero
Title(Format("Rendering MT took %lld us, ST took %lld us, MT gain is %.2f",MTtiming,STtiming,gain));
}
};
GUI_APP_MAIN
{
PainterBench().Run();
}
[Updated on: Thu, 15 November 2018 12:41] Report message to a moderator
|
|
|
 |
|
Painter refactored/optimized
By: mirek on Sun, 11 November 2018 13:47
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Sun, 11 November 2018 18:06
|
 |
|
Re: Painter refactored/optimized
By: koldo on Sun, 11 November 2018 18:15
|
 |
|
Re: Painter refactored/optimized
By: Novo on Sun, 11 November 2018 19:55
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 09:25
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 09:35
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 09:39
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 09:55
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 09:59
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 10:08
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 11:15
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 11:53
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 11:59
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 12:39
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 13:25
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Mon, 12 November 2018 16:15
|
 |
|
Re: Painter refactored/optimized
By: mirek on Mon, 12 November 2018 23:42
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 09:14
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 09:18
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 09:35
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 11:37
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 11:52
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 11:55
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 12:22
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 12:50
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 13:54
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 14:06
|
 |
|
Re: Painter refactored/optimized
By: mirek on Tue, 13 November 2018 16:23
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Tue, 13 November 2018 17:23
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Wed, 14 November 2018 10:57
|
 |
|
Re: Painter refactored/optimized
By: mirek on Wed, 14 November 2018 13:17
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Wed, 14 November 2018 13:39
|
 |
|
Re: Painter refactored/optimized
By: mirek on Wed, 14 November 2018 14:38
|
 |
|
Re: Painter refactored/optimized
By: mirek on Wed, 14 November 2018 14:39
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Wed, 14 November 2018 14:56
|
 |
|
Re: Painter refactored/optimized
By: mirek on Wed, 14 November 2018 15:19
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Wed, 14 November 2018 15:55
|
 |
|
Re: Painter refactored/optimized
By: mirek on Wed, 14 November 2018 17:57
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 10:14
|
 |
|
Re: Painter refactored/optimized
By: mirek on Thu, 15 November 2018 10:48
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 11:43
|
 |
|
Re: Painter refactored/optimized
By: mirek on Thu, 15 November 2018 11:55
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 12:14
|
 |
|
Re: Painter refactored/optimized
By: mirek on Thu, 15 November 2018 12:33
|
 |
|
Re: Painter refactored/optimized
By: mirek on Thu, 15 November 2018 12:40
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 13:07
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 13:23
|
 |
|
Re: Painter refactored/optimized
By: mirek on Thu, 15 November 2018 13:33
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Thu, 15 November 2018 13:44
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Fri, 16 November 2018 10:23
|
 |
|
Re: Painter refactored/optimized
By: mirek on Fri, 16 November 2018 11:20
|
 |
|
Re: Painter refactored/optimized
By: Tom1 on Fri, 16 November 2018 12:57
|
Goto Forum:
Current Time: Sat May 10 05:32:56 CEST 2025
Total time taken to generate the page: 0.03448 seconds
|