Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
13c619c5
Kaydet (Commit)
13c619c5
authored
Kas 26, 2014
tarafından
László Németh
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
vcldemo profiling: support Windows time resolution
Change-Id: I0a8f6b256f170b351a5d46cc899d6360123b2719
üst
85b5e24b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
21 deletions
+49
-21
vcldemo.cxx
vcl/workben/vcldemo.cxx
+49
-21
No files found.
vcl/workben/vcldemo.cxx
Dosyayı görüntüle @
13c619c5
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#define FIXME_SELF_INTERSECTING_WORKING 0
#define FIXME_SELF_INTERSECTING_WORKING 0
#define FIXME_BOUNCE_BUTTON 0
#define FIXME_BOUNCE_BUTTON 0
#define THUMB_REPEAT_FACTOR 10
using
namespace
com
::
sun
::
star
;
using
namespace
com
::
sun
::
star
;
...
@@ -83,11 +84,15 @@ class DemoRenderer
...
@@ -83,11 +84,15 @@ class DemoRenderer
virtual
sal_uInt16
getAccelerator
()
=
0
;
virtual
sal_uInt16
getAccelerator
()
=
0
;
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
=
0
;
const
RenderContext
&
rCtx
)
=
0
;
#define RENDER_DETAILS(name,key) \
// repeating count for profiling (to exceed the poor time resolution on Windows)
virtual
sal_uInt16
getTestRepeatCount
()
=
0
;
#define RENDER_DETAILS(name,key,repeat) \
virtual OUString getName() SAL_OVERRIDE \
virtual OUString getName() SAL_OVERRIDE \
{ return OUString(SAL_STRINGIFY(name)); } \
{ return OUString(SAL_STRINGIFY(name)); } \
virtual sal_uInt16 getAccelerator() SAL_OVERRIDE \
virtual sal_uInt16 getAccelerator() SAL_OVERRIDE \
{ return key; }
{ return key; } \
virtual sal_uInt16 getTestRepeatCount() SAL_OVERRIDE \
{ return repeat; }
double
sumTime
;
double
sumTime
;
int
countTime
;
int
countTime
;
...
@@ -202,7 +207,7 @@ public:
...
@@ -202,7 +207,7 @@ public:
struct
DrawLines
:
public
RegionRenderer
struct
DrawLines
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
lines
,
KEY_L
)
RENDER_DETAILS
(
lines
,
KEY_L
,
100
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
{
{
...
@@ -289,7 +294,7 @@ public:
...
@@ -289,7 +294,7 @@ public:
struct
DrawText
:
public
RegionRenderer
struct
DrawText
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
text
,
KEY_T
)
RENDER_DETAILS
(
text
,
KEY_T
,
100
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
)
SAL_OVERRIDE
const
RenderContext
&
)
SAL_OVERRIDE
{
{
...
@@ -302,7 +307,7 @@ public:
...
@@ -302,7 +307,7 @@ public:
struct
DrawCheckered
:
public
RegionRenderer
struct
DrawCheckered
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
checks
,
KEY_C
)
RENDER_DETAILS
(
checks
,
KEY_C
,
20
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
{
{
...
@@ -363,7 +368,7 @@ public:
...
@@ -363,7 +368,7 @@ public:
struct
DrawPoly
:
public
RegionRenderer
struct
DrawPoly
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
poly
,
KEY_P
)
RENDER_DETAILS
(
poly
,
KEY_P
,
20
)
DrawCheckered
maCheckered
;
DrawCheckered
maCheckered
;
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
...
@@ -387,7 +392,7 @@ public:
...
@@ -387,7 +392,7 @@ public:
struct
DrawEllipse
:
public
RegionRenderer
struct
DrawEllipse
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
ellipse
,
KEY_E
)
RENDER_DETAILS
(
ellipse
,
KEY_E
,
5000
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
)
SAL_OVERRIDE
const
RenderContext
&
)
SAL_OVERRIDE
{
{
...
@@ -399,7 +404,7 @@ public:
...
@@ -399,7 +404,7 @@ public:
struct
DrawGradient
:
public
RegionRenderer
struct
DrawGradient
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
gradient
,
KEY_G
)
RENDER_DETAILS
(
gradient
,
KEY_G
,
50
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
{
{
...
@@ -469,7 +474,7 @@ public:
...
@@ -469,7 +474,7 @@ public:
struct
DrawBitmap
:
public
RegionRenderer
struct
DrawBitmap
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
bitmap
,
KEY_B
)
RENDER_DETAILS
(
bitmap
,
KEY_B
,
10
)
// Simulate Page Borders rendering - which ultimately should
// Simulate Page Borders rendering - which ultimately should
// be done with a shader / gradient
// be done with a shader / gradient
...
@@ -529,7 +534,7 @@ public:
...
@@ -529,7 +534,7 @@ public:
struct
DrawBitmapEx
:
public
RegionRenderer
struct
DrawBitmapEx
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
bitmapex
,
KEY_X
)
RENDER_DETAILS
(
bitmapex
,
KEY_X
,
2
)
DrawCheckered
maCheckered
;
DrawCheckered
maCheckered
;
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
const
RenderContext
&
rCtx
)
SAL_OVERRIDE
...
@@ -547,7 +552,7 @@ public:
...
@@ -547,7 +552,7 @@ public:
struct
DrawPolyPolygons
:
public
RegionRenderer
struct
DrawPolyPolygons
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
polypoly
,
KEY_N
)
RENDER_DETAILS
(
polypoly
,
KEY_N
,
100
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
)
SAL_OVERRIDE
const
RenderContext
&
)
SAL_OVERRIDE
{
{
...
@@ -598,7 +603,7 @@ public:
...
@@ -598,7 +603,7 @@ public:
struct
DrawToVirtualDevice
:
public
RegionRenderer
struct
DrawToVirtualDevice
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
vdev
,
KEY_V
)
RENDER_DETAILS
(
vdev
,
KEY_V
,
1
)
enum
RenderType
{
enum
RenderType
{
RENDER_AS_BITMAP
,
RENDER_AS_BITMAP
,
RENDER_AS_OUTDEV
,
RENDER_AS_OUTDEV
,
...
@@ -665,7 +670,7 @@ public:
...
@@ -665,7 +670,7 @@ public:
struct
DrawIcons
:
public
RegionRenderer
struct
DrawIcons
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
icons
,
KEY_I
)
RENDER_DETAILS
(
icons
,
KEY_I
,
1
)
std
::
vector
<
OUString
>
maIconNames
;
std
::
vector
<
OUString
>
maIconNames
;
std
::
vector
<
BitmapEx
>
maIcons
;
std
::
vector
<
BitmapEx
>
maIcons
;
...
@@ -899,7 +904,7 @@ public:
...
@@ -899,7 +904,7 @@ public:
struct
FetchDrawBitmap
:
public
RegionRenderer
struct
FetchDrawBitmap
:
public
RegionRenderer
{
{
RENDER_DETAILS
(
fetchdraw
,
KEY_F
)
RENDER_DETAILS
(
fetchdraw
,
KEY_F
,
50
)
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
virtual
void
RenderRegion
(
OutputDevice
&
rDev
,
Rectangle
r
,
const
RenderContext
&
)
SAL_OVERRIDE
const
RenderContext
&
)
SAL_OVERRIDE
{
{
...
@@ -924,9 +929,16 @@ public:
...
@@ -924,9 +929,16 @@ public:
mnSelectedRenderer
>=
0
)
mnSelectedRenderer
>=
0
)
{
{
aCtx
.
meStyle
=
RENDER_EXPANDED
;
aCtx
.
meStyle
=
RENDER_EXPANDED
;
mnStartTime
=
getTimeNow
();
RegionRenderer
*
r
=
maRenderers
[
mnSelectedRenderer
];
maRenderers
[
mnSelectedRenderer
]
->
RenderRegion
(
rDev
,
aWholeWin
,
aCtx
);
// profiling?
addTime
(
mnSelectedRenderer
,
getTimeNow
()
-
mnStartTime
);
if
(
getIterCount
()
>
0
)
{
mnStartTime
=
getTimeNow
();
for
(
int
i
=
0
;
i
<
r
->
getTestRepeatCount
();
i
++
)
r
->
RenderRegion
(
rDev
,
aWholeWin
,
aCtx
);
addTime
(
mnSelectedRenderer
,
getTimeNow
()
-
mnStartTime
);
}
else
r
->
RenderRegion
(
rDev
,
aWholeWin
,
aCtx
);
}
}
else
else
{
{
...
@@ -935,9 +947,21 @@ public:
...
@@ -935,9 +947,21 @@ public:
DemoRenderer
::
clearRects
(
rDev
,
aRegions
);
DemoRenderer
::
clearRects
(
rDev
,
aRegions
);
for
(
size_t
i
=
0
;
i
<
maRenderers
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
maRenderers
.
size
();
i
++
)
{
{
if
(
!
bVDev
)
mnStartTime
=
getTimeNow
();
RegionRenderer
*
r
=
maRenderers
[
i
];
maRenderers
[
i
]
->
RenderRegion
(
rDev
,
aRegions
[
i
],
aCtx
);
// profiling?
if
(
!
bVDev
)
addTime
(
i
,
getTimeNow
()
-
mnStartTime
);
if
(
getIterCount
()
>
0
)
{
if
(
!
bVDev
)
{
mnStartTime
=
getTimeNow
();
for
(
int
j
=
0
;
j
<
r
->
getTestRepeatCount
()
*
THUMB_REPEAT_FACTOR
;
j
++
)
r
->
RenderRegion
(
rDev
,
aRegions
[
i
],
aCtx
);
addTime
(
i
,
(
getTimeNow
()
-
mnStartTime
)
/
THUMB_REPEAT_FACTOR
);
}
else
for
(
int
j
=
0
;
j
<
r
->
getTestRepeatCount
();
j
++
)
r
->
RenderRegion
(
rDev
,
aRegions
[
i
],
aCtx
);
}
else
r
->
RenderRegion
(
rDev
,
aRegions
[
i
],
aCtx
);
}
}
}
}
}
}
...
@@ -1121,7 +1145,7 @@ sal_Int32 DemoRenderer::getIterCount()
...
@@ -1121,7 +1145,7 @@ sal_Int32 DemoRenderer::getIterCount()
void
DemoRenderer
::
addTime
(
int
i
,
double
t
)
void
DemoRenderer
::
addTime
(
int
i
,
double
t
)
{
{
maRenderers
[
i
]
->
sumTime
+=
t
;
maRenderers
[
i
]
->
sumTime
+=
t
/
maRenderers
[
i
]
->
getTestRepeatCount
()
;
maRenderers
[
i
]
->
countTime
++
;
maRenderers
[
i
]
->
countTime
++
;
}
}
...
@@ -1150,12 +1174,14 @@ int DemoRenderer::selectNextRenderer()
...
@@ -1150,12 +1174,14 @@ int DemoRenderer::selectNextRenderer()
class
DemoWin
:
public
WorkWindow
class
DemoWin
:
public
WorkWindow
{
{
DemoRenderer
&
mrRenderer
;
DemoRenderer
&
mrRenderer
;
bool
underTesting
;
public
:
public
:
DemoWin
(
DemoRenderer
&
rRenderer
)
:
DemoWin
(
DemoRenderer
&
rRenderer
)
:
WorkWindow
(
NULL
,
WB_APP
|
WB_STDWORK
),
WorkWindow
(
NULL
,
WB_APP
|
WB_STDWORK
),
mrRenderer
(
rRenderer
)
mrRenderer
(
rRenderer
)
{
{
mrRenderer
.
addInvalidate
(
this
);
mrRenderer
.
addInvalidate
(
this
);
underTesting
=
false
;
}
}
virtual
~
DemoWin
()
virtual
~
DemoWin
()
{
{
...
@@ -1188,6 +1214,8 @@ public:
...
@@ -1188,6 +1214,8 @@ public:
virtual
void
TestAndQuit
()
virtual
void
TestAndQuit
()
{
{
if
(
underTesting
)
return
;
underTesting
=
true
;
for
(
sal_Int32
i
=
0
;
i
<
mrRenderer
.
getIterCount
();
i
++
)
for
(
sal_Int32
i
=
0
;
i
<
mrRenderer
.
getIterCount
();
i
++
)
while
(
mrRenderer
.
selectNextRenderer
()
>
-
1
)
while
(
mrRenderer
.
selectNextRenderer
()
>
-
1
)
mrRenderer
.
drawToDevice
(
*
this
,
GetSizePixel
(),
false
);
mrRenderer
.
drawToDevice
(
*
this
,
GetSizePixel
(),
false
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment