CWS-TOOLING: integrate CWS impress177
2009-10-07 13:02:12 +0200 sj r276751 : #i104579# fixed horz and vert adjustment for master styles (excluding notes master) 2009-10-06 18:09:14 +0200 sj r276724 : #i104579# fixed horz and vert adjustment for master styles 2009-10-05 15:02:38 +0200 sj r276679 : #i104685# fixed text color problem 2009-10-02 14:01:22 +0200 aw r276641 : #i105508# added own flag for ClipOnBounds to SdrBlockTextPrimitive2D and the helper createTextPrimitive; adapted usages; corrected VerticalText stuff; corrected ClipOnBounds for CustomShapes 2009-09-30 11:55:44 +0200 cl r276550 : CWS-TOOLING: rebase CWS impress177 to trunk@276429 (milestone: DEV300:m60) 2009-09-28 17:57:37 +0200 cl r276498 : #i94900# after a paste special make sure the stylesheets for outline shapes are correct 2009-09-24 17:36:29 +0200 af r276425 : #i103464# Restore device more reliably. 2009-09-24 12:29:31 +0200 sj r276417 : #i104685# fixed text color propblem 2009-09-22 16:48:06 +0200 sj r276360 : #i104682# fixed table border line thickness 2009-09-22 16:46:29 +0200 sj r276359 : #i104682# fixed table border line thickness 2009-09-22 10:29:30 +0200 sj r276346 : #104579# fixed horz and vert adjustment for master styles 2009-09-21 14:18:29 +0200 af r276330 : #i100905# Fixed crash when region is split into bands. 2009-09-15 15:44:30 +0200 cl r276181 : #i103179# always hide presentation shapes from master page if rendered as slide background 2009-09-15 10:44:52 +0200 cl r276155 : #i104579# return correct IsEmptyPresObj state 2009-09-14 16:51:41 +0200 cl r276132 : #i96538# restored OOo 3.0 numbering behaviour
This commit is contained in:
parent
9e18c9ee07
commit
f546307248
3 changed files with 49 additions and 11 deletions
|
@ -956,11 +956,43 @@ namespace dxcanvas
|
|||
{
|
||||
if(hr != D3DERR_DEVICELOST)
|
||||
return false;
|
||||
hr = mpDevice->Reset(&mad3dpp);
|
||||
if(SUCCEEDED(hr))
|
||||
return true;
|
||||
if(hr == D3DERR_DEVICELOST)
|
||||
return true;
|
||||
|
||||
// interestingly enough, sometimes the Reset() below
|
||||
// *still* causes DeviceLost errors. So, cycle until
|
||||
// DX was kind enough to really reset the device...
|
||||
do
|
||||
{
|
||||
mpVertexBuffer.reset();
|
||||
hr = mpDevice->Reset(&mad3dpp);
|
||||
if(SUCCEEDED(hr))
|
||||
{
|
||||
IDirect3DVertexBuffer9 *pVB(NULL);
|
||||
DWORD aFVF(D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1);
|
||||
if( FAILED(mpDevice->CreateVertexBuffer(sizeof(dxvertex)*maNumVertices,
|
||||
D3DUSAGE_DYNAMIC|D3DUSAGE_WRITEONLY,
|
||||
aFVF,
|
||||
D3DPOOL_DEFAULT,
|
||||
&pVB,
|
||||
NULL)) )
|
||||
{
|
||||
throw lang::NoSupportException(
|
||||
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
|
||||
"Could not create DirectX device - out of memory!")),NULL);
|
||||
}
|
||||
mpVertexBuffer=COMReference<IDirect3DVertexBuffer9>(pVB);
|
||||
|
||||
// retry after the restore
|
||||
if(SUCCEEDED(mpSwapChain->Present(&aRect,&aRect,NULL,NULL,0)))
|
||||
return true;
|
||||
}
|
||||
|
||||
TimeValue aTimeout;
|
||||
aTimeout.Seconds=1;
|
||||
aTimeout.Nanosec=0;
|
||||
osl_waitThread(&aTimeout);
|
||||
}
|
||||
while(hr == D3DERR_DEVICELOST);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include "dx_surfacegraphics.hxx"
|
||||
#include "dx_impltools.hxx"
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
namespace dxcanvas
|
||||
{
|
||||
namespace
|
||||
|
@ -75,11 +77,12 @@ namespace dxcanvas
|
|||
tools::setupGraphics( *pGraphics );
|
||||
pRet.reset(pGraphics,
|
||||
GraphicsDeleter(rSurface, aHDC));
|
||||
return pRet;
|
||||
}
|
||||
else
|
||||
rSurface->ReleaseDC( aHDC );
|
||||
}
|
||||
|
||||
return pRet;
|
||||
throw uno::RuntimeException();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -153,7 +153,8 @@ void ImplAddMissingBands (
|
|||
// We still have to cover two cases:
|
||||
// 1. The region does not yet contain any bands.
|
||||
// 2. The intervall nTop->nBottom extends past the bottom most band.
|
||||
if (nCurrentTop < nBottom && (pBand==NULL || nBottom>pBand->mnYBottom))
|
||||
if (nCurrentTop <= nBottom
|
||||
&& (pBand==NULL || nBottom>pBand->mnYBottom))
|
||||
{
|
||||
// When there is no previous band then the new one will be the
|
||||
// first. Otherwise the new band is inserted behind the last band.
|
||||
|
@ -232,8 +233,9 @@ ImplRegion* ImplRectilinearPolygonToBands (const PolyPolygon& rPolyPoly)
|
|||
ImplRegionBand* pTopBand = pBand;
|
||||
// If necessary split the band at nTop so that nTop is contained
|
||||
// in the lower band.
|
||||
if ( // Prevent the current band from becoming 0 pixel high
|
||||
pBand->mnYTop<nTop
|
||||
if (pBand!=NULL
|
||||
// Prevent the current band from becoming 0 pixel high
|
||||
&& pBand->mnYTop<nTop
|
||||
// this allows the lowest pixel of the band to be split off
|
||||
&& pBand->mnYBottom>=nTop
|
||||
// do not split a band that is just one pixel high
|
||||
|
@ -248,8 +250,9 @@ ImplRegion* ImplRectilinearPolygonToBands (const PolyPolygon& rPolyPoly)
|
|||
pBand = pBand->mpNextBand;
|
||||
// The lowest band may have to be split at nBottom so that
|
||||
// nBottom itself remains in the upper band.
|
||||
if ( // allow the current band becoming 1 pixel high
|
||||
pBand->mnYTop<=nBottom
|
||||
if (pBand!=NULL
|
||||
// allow the current band becoming 1 pixel high
|
||||
&& pBand->mnYTop<=nBottom
|
||||
// prevent splitting off a band that is 0 pixel high
|
||||
&& pBand->mnYBottom>nBottom
|
||||
// do not split a band that is just one pixel high
|
||||
|
|
Loading…
Reference in a new issue