[Libreoffice-commits] core.git: Branch 'feature/opengl-vcl2' - 2 commits - vcl/qa vcl/win vcl/workben
Michael Meeks
michael.meeks at collabora.com
Mon Dec 1 06:22:39 PST 2014
vcl/qa/cppunit/outdev.cxx | 27 ++++++++++++----
vcl/win/source/gdi/salvd.cxx | 2 -
vcl/workben/vcldemo.cxx | 70 +++++++++++++++++++++++++++++++++++++++----
3 files changed, 87 insertions(+), 12 deletions(-)
New commits:
commit a34b0fd130857804fd12a24c781b68e7a78169f7
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Mon Dec 1 13:45:03 2014 +0000
vcl: improve vcldemo & outdev test.
Change-Id: I1ebc3c3b3cffabc8ba446ecd45ac2d9b0d45aff1
diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx
index 47e8dcf..de02ffc 100644
--- a/vcl/qa/cppunit/outdev.cxx
+++ b/vcl/qa/cppunit/outdev.cxx
@@ -15,6 +15,9 @@
#include <vcl/bmpacc.hxx>
#include <vcl/wrkwin.hxx>
+#include <tools/stream.hxx>
+#include <vcl/pngwrite.hxx>
+
class VclOutdevTest : public test::BootstrapFixture
{
public:
@@ -36,18 +39,30 @@ void VclOutdevTest::testVirtualDevice()
aVDev.DrawPixel(Point(1,2),COL_GREEN);
aVDev.DrawPixel(Point(31,30),COL_RED);
- CPPUNIT_ASSERT(aVDev.GetPixel(Point(0,0)) == COL_WHITE);
- CPPUNIT_ASSERT(aVDev.GetPixel(Point(1,2)) == COL_GREEN);
- CPPUNIT_ASSERT(aVDev.GetPixel(Point(31,30)) == COL_RED);
- CPPUNIT_ASSERT(aVDev.GetPixel(Point(30,31)) == COL_WHITE);
-
Size aSize = aVDev.GetOutputSizePixel();
CPPUNIT_ASSERT(aSize == Size(32,32));
Bitmap aBmp = aVDev.GetBitmap(Point(),aSize);
- Bitmap::ScopedReadAccess pAcc(aBmp);
+
+#if 0
+ OUString rFileName("/tmp/foo-unx.png");
+ try {
+ vcl::PNGWriter aWriter( aBmp );
+ SvFileStream sOutput( rFileName, STREAM_WRITE );
+ aWriter.Write( sOutput );
+ sOutput.Close();
+ } catch (...) {
+ SAL_WARN("vcl", "Error writing png to " << rFileName);
+ }
+#endif
+
+ CPPUNIT_ASSERT(aVDev.GetPixel(Point(0,0)) == COL_WHITE);
+ CPPUNIT_ASSERT(aVDev.GetPixel(Point(1,2)) == COL_GREEN);
+ CPPUNIT_ASSERT(aVDev.GetPixel(Point(31,30)) == COL_RED);
+ CPPUNIT_ASSERT(aVDev.GetPixel(Point(30,31)) == COL_WHITE);
// Gotcha: y and x swap for BitmapReadAccess: deep joy.
+ Bitmap::ScopedReadAccess pAcc(aBmp);
CPPUNIT_ASSERT(pAcc->GetPixel(0,0) == Color(COL_WHITE));
CPPUNIT_ASSERT(pAcc->GetPixel(2,1) == Color(COL_GREEN));
CPPUNIT_ASSERT(pAcc->GetPixel(30,31) == Color(COL_RED));
diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx
index a70de2d..eac8f45 100644
--- a/vcl/workben/vcldemo.cxx
+++ b/vcl/workben/vcldemo.cxx
@@ -15,6 +15,7 @@
#include <com/sun/star/ucb/UniversalContentBroker.hpp>
#include <vcl/vclmain.hxx>
+#include <vcl/layout.hxx>
#include <tools/urlobj.hxx>
#include <tools/stream.hxx>
@@ -1107,17 +1108,68 @@ public:
}
};
+class DemoWidgets : public WorkWindow
+{
+ VclBox *mpBox;
+public:
+ DemoWidgets() :
+ WorkWindow(NULL, WB_STDWORK)
+ {
+ SetText("VCL widget demo");
+
+ mpBox = new VclVBox(this, false, 3);
+
+ Wallpaper aWallpaper(BitmapEx("sfx2/res/startcenter-logo.png"));
+ aWallpaper.SetStyle(WALLPAPER_BOTTOMRIGHT);
+ aWallpaper.SetColor(COL_RED);
+
+ mpBox->SetBackground(aWallpaper);
+ mpBox->Show();
+
+ Show();
+ }
+ virtual ~DemoWidgets()
+ {
+ }
+ virtual void Paint(const Rectangle&)
+ {
+ Rectangle aWholeSize(Point(0, 0),GetOutputSizePixel());
+ vcl::Region aClip(aWholeSize);
+ Rectangle aExclude(Rectangle(Point(50,50),Size(100,100)));
+ aClip.Exclude(aExclude);
+
+ Wallpaper aWallpaper(COL_GREEN);
+
+ Push(PushFlags::CLIPREGION);
+ IntersectClipRegion(aClip);
+ DrawWallpaper(aWholeSize, aWallpaper);
+ Pop();
+
+ VirtualDevice aDev(*this);
+ aDev.EnableRTL(IsRTLEnabled());
+ aDev.SetOutputSizePixel(aExclude.GetSize());
+
+ Rectangle aSubRect(aWholeSize);
+ aSubRect.Move(-aExclude.Left(), -aExclude.Top());
+ aDev.DrawWallpaper(aSubRect, aWallpaper );
+
+ DrawOutDev(aExclude.TopLeft(), aExclude.GetSize(),
+ Point( 0, 0 ), aExclude.GetSize(), aDev );
+ }
+};
class DemoApp : public Application
{
int showHelp(DemoRenderer &rRenderer)
{
- fprintf(stderr,"vcldemo - a VCL test app\n");
- fprintf(stderr," --help - print this text\n");
- fprintf(stderr," --show <renderer> - start with a given renderer, options are:\n");
+ fprintf(stderr, "vcldemo - a VCL test app\n");
+ fprintf(stderr, " --help - print this text\n");
+ fprintf(stderr, " --show <renderer> - start with a given renderer, options are:\n");
OUString aRenderers(rRenderer.getRendererList());
- fprintf(stderr," %s\n\n",
+ fprintf(stderr, " %s\n",
rtl::OUStringToOString(aRenderers, RTL_TEXTENCODING_UTF8).getStr());
+ fprintf(stderr, " --widgets - launch the widget test.\n");
+ fprintf(stderr, "\n");
return 0;
}
@@ -1128,6 +1180,7 @@ public:
{
try
{
+ bool bWidgets = false;
DemoRenderer aRenderer;
for (sal_Int32 i = 0; i < GetCommandLineParamCount(); i++)
@@ -1143,12 +1196,19 @@ public:
else
aRenderer.selectRenderer(GetCommandLineParam(++i));
}
+ else if (aArg == "--widgets")
+ bWidgets = true;
}
DemoWin aMainWin(aRenderer);
+ boost::scoped_ptr<DemoWidgets> aWidgets;
aMainWin.SetText("Interactive VCL demo #1");
- aMainWin.Show();
+
+ if (bWidgets)
+ aWidgets.reset(new DemoWidgets());
+ else
+ aMainWin.Show();
Application::Execute();
}
commit 6ed4bcb327e3e2fe11ba9e2fe23d6cb2e9e9d9a2
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Mon Dec 1 12:27:31 2014 +0000
vcl: Windows build fix - squash me into re-init ...
Change-Id: Ieef945c9694b227376362b032feb3603a6921f41
diff --git a/vcl/win/source/gdi/salvd.cxx b/vcl/win/source/gdi/salvd.cxx
index 07d9ce8..2b00464 100644
--- a/vcl/win/source/gdi/salvd.cxx
+++ b/vcl/win/source/gdi/salvd.cxx
@@ -218,7 +218,7 @@ bool WinSalVirtualDevice::SetSize( long nDX, long nDY )
if (mpGraphics)
{
WinOpenGLSalGraphicsImpl *pImpl;
- pImpl = dynamic_cast< WinOpenGLSalGraphicsImpl * >(mpGraphics->getImpl());
+ pImpl = dynamic_cast< WinOpenGLSalGraphicsImpl * >(mpGraphics->GetImpl());
if (pImpl)
pImpl->Init();
}
More information about the Libreoffice-commits
mailing list