Files
loongoffice/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
Armin Le Grand d1310b7628 Related: #i121532# unified processor2d usages from other modules
(cherry picked from commit f371f92c89d296207ef9a219518ba8caa481bcfe)

Conflicts:
	drawinglayer/Library_drawinglayer.mk
	drawinglayer/Package_inc.mk
	drawinglayer/inc/drawinglayer/processor2d/vclmetafileprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor2d/vclpixelprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx
	drawinglayer/inc/drawinglayer/processor3d/zbufferprocessor3d.hxx
	drawinglayer/source/processor2d/processor2dtools.cxx
	svx/Package_inc.mk
	svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
	svx/source/sdr/contact/objectcontactofpageview.cxx
	svx/source/sdr/overlay/overlaymanager.cxx
	svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx
	svx/source/svdraw/svdedxv.cxx
	sw/source/core/doc/notxtfrm.cxx

Change-Id: Iea4a79133f4375cb0625b187eeb3d727b50ff0fe

Related: #i121532# missing defaultprocessor3d.hxx breaks build

Revision 1440387 changed defaultprocessor3d.hxx to be no longer "delivered".
It is needed in svx by being included indirectly via cutfindprocessor3d.hxx.
Fixing the build breaker by "delivering" the missing header file again.

(cherry picked from commit 3bd3ea81c8d54109950b435225c3aac011d56c3d)

Conflicts:
	drawinglayer/Package_inc.mk

Change-Id: If0dcea79cfff4cf20a1ca1af3d0a34f86eb2e24e

Related: #i121532# removed include to no longer existing file

(cherry picked from commit a4c602d9b5b17e220dbaa4dec2cef91d39945154)

Conflicts:
	sw/source/core/doc/notxtfrm.cxx

Change-Id: I7dc2f99684fa285225dfdcfc7add553695b8412e
2013-06-17 09:23:26 +01:00

114 lines
4.3 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_DRAWINGLAYER_PROCESSOR3D_ZBUFFERPROCESSOR3D_HXX
#define INCLUDED_DRAWINGLAYER_PROCESSOR3D_ZBUFFERPROCESSOR3D_HXX
#include <drawinglayer/drawinglayerdllapi.h>
#include <drawinglayer/processor3d/defaultprocessor3d.hxx>
#include <vcl/bitmapex.hxx>
//////////////////////////////////////////////////////////////////////////////
// predefines
namespace basegfx {
class BZPixelRaster;
}
namespace drawinglayer {
namespace attribute {
class SdrSceneAttribute;
class SdrLightingAttribute;
class MaterialAttribute3D;
}
namespace geometry {
class ViewInformation2D;
}
}
class ZBufferRasterConverter3D;
class RasterPrimitive3D;
//////////////////////////////////////////////////////////////////////////////
namespace drawinglayer
{
namespace processor3d
{
/** ZBufferProcessor3D class
This 3D renderer derived from DefaultProcessor3D renders all feeded primitives to a 2D
raster bitmap using a Z-Buffer based approach. It is able to supersample and to handle
transparent content.
*/
class ZBufferProcessor3D : public DefaultProcessor3D
{
private:
/// the raster target, a Z-Buffer
basegfx::BZPixelRaster* mpBZPixelRaster;
/// inverse of EyeToView for rasterconversion with evtl. Phong shading
basegfx::B3DHomMatrix maInvEyeToView;
/// The raster converter for Z-Buffer
ZBufferRasterConverter3D* mpZBufferRasterConverter3D;
/* AA value. Defines how many overs�mples will be used in X and Y. Values 0, 1
will switch it off while e.g. 2 will use 2x2 pixels for each pixel to create
*/
sal_uInt16 mnAntiAlialize;
/* remembered RasterPrimitive3D's which need to be painted back to front
for transparent 3D parts
*/
std::vector< RasterPrimitive3D >* mpRasterPrimitive3Ds;
//////////////////////////////////////////////////////////////////////////////
// rasterconversions for filled and non-filled polygons
virtual void rasterconvertB3DPolygon(const attribute::MaterialAttribute3D& rMaterial, const basegfx::B3DPolygon& rHairline) const;
virtual void rasterconvertB3DPolyPolygon(const attribute::MaterialAttribute3D& rMaterial, const basegfx::B3DPolyPolygon& rFill) const;
public:
ZBufferProcessor3D(
const geometry::ViewInformation3D& rViewInformation3D,
const geometry::ViewInformation2D& rViewInformation2D,
const attribute::SdrSceneAttribute& rSdrSceneAttribute,
const attribute::SdrLightingAttribute& rSdrLightingAttribute,
double fSizeX,
double fSizeY,
const basegfx::B2DRange& rVisiblePart,
sal_uInt16 nAntiAlialize);
virtual ~ZBufferProcessor3D();
void finish();
/// get the result as bitmapEx
BitmapEx getBitmapEx() const;
};
} // end of namespace processor3d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
#endif //INCLUDED_DRAWINGLAYER_PROCESSOR3D_ZBUFFERPROCESSOR3D_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */