INTEGRATION: CWS cairoquartz01 (1.4.16); FILE MERGED

2008/03/27 22:58:56 thb 1.4.16.8: Nevermind, PEBKAC - fixed the last win32 build breakers now
2008/03/27 22:50:18 thb 1.4.16.7: Cleaned up a few warnings, made this (almost) build on win32.
Still missing the cairo_win32_cairo.cxx file.
2008/02/23 14:35:00 mox 1.4.16.6: Fix CWS Resync to DEV300_m0
2008/02/23 13:12:57 mox 1.4.16.5: RESYNC: (1.7-1.8); FILE MERGED
2007/12/15 21:37:32 mox 1.4.16.4: Fix QUARTZ classtype parameter, due to VCL Cocoa port changes
2007/12/10 17:45:35 mox 1.4.16.3: RESYNC: (1.5-1.7); FILE MERGED
2007/06/02 23:05:33 thb 1.4.16.2: #i70519# Merged in tml's fixes for WinCairo; made code compile warning-free under Linux; added prex/postx.h (which where already referenced); cleaned up a bit; replaces plain round() call with basegfx::fround; asserting unexpected/unimplemented case at selected places
2007/04/12 20:16:00 mox 1.4.16.1: Issue number:  #69066# initial Cairo Quartz implementation
This commit is contained in:
Kurt Zenker 2008-04-02 08:43:24 +00:00
parent 5f4d27ad6c
commit f2ed42d5db

View file

@ -4,9 +4,9 @@
*
* $RCSfile: cairo_spritecanvas.cxx,v $
*
* $Revision: 1.8 $
* $Revision: 1.9 $
*
* last change: $Author: vg $ $Date: 2008-01-29 08:01:49 $
* last change: $Author: kz $ $Date: 2008-04-02 09:43:24 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -83,9 +83,16 @@ namespace cairocanvas
// At index 1, we expect a system window handle here,
// containing a pointer to a valid window, on which to output
// At index 2, we expect the current window bound rect
// NOTE: type is derived from vcl/source/window/window.cxx (XCanvas setup)
#ifdef QUARTZ
CHECK_AND_THROW( aArguments.getLength() >= 4 &&
aArguments[1].getValueTypeClass() == uno::TypeClass_UNSIGNED_HYPER,
"SpriteCanvas::initialize: wrong number of arguments, or wrong types" );
#else
CHECK_AND_THROW( aArguments.getLength() >= 4 &&
aArguments[1].getValueTypeClass() == uno::TypeClass_LONG,
"SpriteCanvas::initialize: wrong number of arguments, or wrong types" );
#endif
awt::Rectangle aRect;
aArguments[2] >>= aRect;
@ -100,9 +107,11 @@ namespace cairocanvas
CHECK_AND_THROW( pOutputWindow != NULL,
"SpriteCanvas::SpriteCanvas: invalid Window pointer" );
#if defined(CAIRO_HAS_XLIB_SURFACE) && !defined (QUARTZ)
bool bHasXRender = HasXRender( cairocanvas::GetSysData(pOutputWindow) );
CHECK_AND_THROW( bHasXRender == true,
"SpriteCanvas::SpriteCanvas: No RENDER extension" );
#endif
Size aPixelSize( pOutputWindow->GetOutputSizePixel() );
const ::basegfx::B2ISize aSize( aPixelSize.Width(),
@ -170,11 +179,6 @@ namespace cairocanvas
::basegfx::unotools::b2IRectangleFromAwtRectangle(maBounds),
bUpdateAll,
mbSurfaceDirty );
// avoid repaints on hidden window (hidden: not mapped to
// screen). Return failure, since the screen really has _not_
// been updated (caller should try again later)
return !mbIsVisible ? false : SpriteCanvasBaseT::updateScreen( bUpdateAll );
}
::rtl::OUString SAL_CALL SpriteCanvas::getServiceName( ) throw (uno::RuntimeException)