Merged DrawData and LayerData to one class DrawState.
Removed that ambiguous second copy constructor and moved push state functionality into a separate PushState() method. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14679 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
#include <Window.h>
|
||||
|
||||
#include "ColorSet.h"
|
||||
#include "LayerData.h"
|
||||
#include "DrawState.h"
|
||||
|
||||
class DesktopSettings;
|
||||
class DisplayDriver;
|
||||
@@ -138,7 +138,7 @@ class Decorator {
|
||||
|
||||
ColorSet* _colors;
|
||||
DisplayDriver* _driver;
|
||||
DrawData _drawdata;
|
||||
DrawState fDrawState;
|
||||
|
||||
int32 _look;
|
||||
int32 _feel;
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (c) 2001-2005, Haiku, Inc. All rights reserved
|
||||
// Distributed under the terms of the MIT license.
|
||||
//
|
||||
// File Name: DisplayDriver.h
|
||||
// Authors: DarkWyrm <[email protected]>
|
||||
// Gabe Yoder <[email protected]>
|
||||
// Stephan Aßmus <[email protected]>
|
||||
//
|
||||
// Description: Abstract class which handles all graphics output
|
||||
// for the server
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku, Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* DarkWyrm <[email protected]>
|
||||
* Gabe Yoder <[email protected]>
|
||||
* Stephan Aßmus <[email protected]>
|
||||
*/
|
||||
#ifndef _DISPLAY_DRIVER_H_
|
||||
#define _DISPLAY_DRIVER_H_
|
||||
|
||||
|
||||
#include <Accelerant.h>
|
||||
#include <Font.h>
|
||||
#include <Locker.h>
|
||||
@@ -23,7 +20,7 @@ class BPoint;
|
||||
class BRect;
|
||||
class BRegion;
|
||||
|
||||
class DrawData;
|
||||
class DrawState;
|
||||
class HWInterface;
|
||||
class RGBColor;
|
||||
class ServerBitmap;
|
||||
@@ -81,59 +78,59 @@ public:
|
||||
virtual void DrawBitmap( ServerBitmap *bitmap,
|
||||
const BRect &source,
|
||||
const BRect &dest,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillArc( BRect r,
|
||||
const float &angle,
|
||||
const float &span,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillBezier( BPoint *pts,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillEllipse( BRect r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillPolygon( BPoint *ptlist,
|
||||
int32 numpts,
|
||||
BRect bounds,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillRect( BRect r,
|
||||
const RGBColor &color) = 0;
|
||||
|
||||
virtual void FillRect( BRect r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillRegion( BRegion &r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillRoundRect( BRect r,
|
||||
const float &xrad,
|
||||
const float &yrad,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillShape( const BRect &bounds,
|
||||
const int32 &opcount,
|
||||
const int32 *oplist,
|
||||
const int32 &ptcount,
|
||||
const BPoint *ptlist,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void FillTriangle( BPoint *pts,
|
||||
BRect bounds,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeArc( BRect r,
|
||||
const float &angle,
|
||||
const float &span,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeBezier( BPoint *pts,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeEllipse( BRect r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
// this version used by Decorator
|
||||
virtual void StrokeLine( const BPoint &start,
|
||||
@@ -142,23 +139,23 @@ public:
|
||||
|
||||
virtual void StrokeLine( const BPoint &start,
|
||||
const BPoint &end,
|
||||
DrawData *d) = 0;
|
||||
DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeLineArray(const int32 &numlines,
|
||||
const LineArrayData *data,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
// this version used by Decorator
|
||||
virtual void StrokePoint( const BPoint &pt,
|
||||
const RGBColor &color) = 0;
|
||||
|
||||
virtual void StrokePoint( const BPoint &pt,
|
||||
DrawData *d) = 0;
|
||||
DrawState *d) = 0;
|
||||
|
||||
virtual void StrokePolygon( BPoint *ptlist,
|
||||
int32 numpts,
|
||||
BRect bounds,
|
||||
const DrawData *d,
|
||||
const DrawState *d,
|
||||
bool is_closed=true) = 0;
|
||||
|
||||
// this version used by Decorator
|
||||
@@ -166,34 +163,34 @@ public:
|
||||
const RGBColor &color) = 0;
|
||||
|
||||
virtual void StrokeRect( BRect r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeRegion( BRegion &r,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeRoundRect(BRect r,
|
||||
const float &xrad,
|
||||
const float &yrad,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeShape( const BRect &bounds,
|
||||
const int32 &opcount,
|
||||
const int32 *oplist,
|
||||
const int32 &ptcount,
|
||||
const BPoint *ptlist,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual void StrokeTriangle( BPoint *pts,
|
||||
const BRect &bounds,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
// Font-related calls
|
||||
|
||||
// DrawData is NOT const because this call updates the pen position in the passed DrawData
|
||||
// DrawState is NOT const because this call updates the pen position in the passed DrawState
|
||||
virtual void DrawString( const char* string,
|
||||
int32 length,
|
||||
const BPoint& pt,
|
||||
DrawData* d,
|
||||
DrawState* d,
|
||||
escapement_delta *delta = NULL) = 0;
|
||||
|
||||
/* virtual void DrawString( const char *string,
|
||||
@@ -204,7 +201,7 @@ public:
|
||||
|
||||
virtual float StringWidth( const char* string,
|
||||
int32 length,
|
||||
const DrawData* d,
|
||||
const DrawState* d,
|
||||
escapement_delta *delta = NULL) = 0;
|
||||
|
||||
virtual float StringWidth( const char* string,
|
||||
@@ -214,7 +211,7 @@ public:
|
||||
|
||||
virtual float StringHeight( const char *string,
|
||||
int32 length,
|
||||
const DrawData *d) = 0;
|
||||
const DrawState *d) = 0;
|
||||
|
||||
virtual bool Lock() = 0;
|
||||
virtual void Unlock() = 0;
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* DarkWyrm <[email protected]>
|
||||
* Adi Oanca <[email protected]>
|
||||
* Stephan Aßmus <[email protected]>
|
||||
* Axel Dörfler, [email protected]
|
||||
*/
|
||||
#ifndef _DRAW_STATE_H_
|
||||
#define _DRAW_STATE_H_
|
||||
|
||||
|
||||
#include <GraphicsDefs.h>
|
||||
#include <InterfaceDefs.h>
|
||||
#include <Point.h>
|
||||
#include <View.h> // for B_FONT_ALL
|
||||
|
||||
#include "RGBColor.h"
|
||||
#include "FontManager.h"
|
||||
#include "ServerFont.h"
|
||||
#include "PatternHandler.h"
|
||||
|
||||
class BRegion;
|
||||
|
||||
namespace BPrivate {
|
||||
class LinkReceiver;
|
||||
class LinkSender;
|
||||
};
|
||||
|
||||
|
||||
class DrawState {
|
||||
public:
|
||||
DrawState();
|
||||
DrawState(const DrawState& from);
|
||||
virtual ~DrawState();
|
||||
|
||||
DrawState& operator=(const DrawState& from);
|
||||
|
||||
DrawState* PushState();
|
||||
DrawState* PopState();
|
||||
DrawState* PreviousState() const { return fPreviousState; }
|
||||
|
||||
void ReadFontFromLink(BPrivate::LinkReceiver& link);
|
||||
// NOTE: ReadFromLink() does not read Font state!!
|
||||
// It was separate in ServerWindow, and I didn't
|
||||
// want to change it without knowing implications.
|
||||
void ReadFromLink(BPrivate::LinkReceiver& link);
|
||||
void WriteToLink(BPrivate::LinkSender& link) const;
|
||||
|
||||
// coordinate transformation
|
||||
void SetOrigin(const BPoint& origin);
|
||||
void OffsetOrigin(const BPoint& offset);
|
||||
const BPoint& Origin() const
|
||||
{ return fOrigin; }
|
||||
|
||||
void SetScale(float scale);
|
||||
float Scale() const
|
||||
{ return fScale; }
|
||||
|
||||
// additional clipping as requested by client
|
||||
void SetClippingRegion(const BRegion& region);
|
||||
const BRegion* ClippingRegion() const
|
||||
{ return fClippingRegion; }
|
||||
/* inline int32 CountClippingRects() const
|
||||
{ return fClippingRegion ? fClippingRegion.CountRects() : 0; }
|
||||
inline BRect ClippingRectAt(int32 index) const;*/
|
||||
|
||||
// color
|
||||
void SetHighColor(const RGBColor& color);
|
||||
const RGBColor& HighColor() const
|
||||
{ return fHighColor; }
|
||||
|
||||
void SetLowColor(const RGBColor& color);
|
||||
const RGBColor& LowColor() const
|
||||
{ return fLowColor; }
|
||||
|
||||
void SetPattern(const Pattern& pattern);
|
||||
const Pattern& GetPattern() const
|
||||
{ return fPattern; }
|
||||
|
||||
// drawing/blending mode
|
||||
void SetDrawingMode(drawing_mode mode);
|
||||
drawing_mode GetDrawingMode() const
|
||||
{ return fDrawingMode; }
|
||||
|
||||
void SetBlendingMode(source_alpha srcMode,
|
||||
alpha_function fncMode);
|
||||
source_alpha AlphaSrcMode() const
|
||||
{ return fAlphaSrcMode; }
|
||||
alpha_function AlphaFncMode() const
|
||||
{ return fAlphaFncMode; }
|
||||
|
||||
// pen
|
||||
void SetPenLocation(const BPoint& location);
|
||||
const BPoint& PenLocation() const;
|
||||
|
||||
void SetPenSize(float size);
|
||||
float PenSize() const;
|
||||
|
||||
// font
|
||||
void SetFont(const ServerFont& font,
|
||||
uint32 flags = B_FONT_ALL);
|
||||
const ServerFont& Font() const
|
||||
{ return fFont; }
|
||||
|
||||
// overrides aliasing flag contained in SeverFont::Flags())
|
||||
void SetForceFontAliasing(bool aliasing);
|
||||
bool ForceFontAliasing() const
|
||||
{ return fFontAliasing; }
|
||||
|
||||
// postscript style settings
|
||||
void SetLineCapMode(cap_mode mode);
|
||||
cap_mode LineCapMode() const
|
||||
{ return fLineCapMode; }
|
||||
|
||||
void SetLineJoinMode(join_mode mode);
|
||||
join_mode LineJoinMode() const
|
||||
{ return fLineJoinMode; }
|
||||
|
||||
void SetMiterLimit(float limit);
|
||||
float MiterLimit() const
|
||||
{ return fMiterLimit; }
|
||||
|
||||
// convenience functions
|
||||
inline BPoint Transform(const BPoint& point) const;
|
||||
inline BRect Transform(const BRect& rect) const;
|
||||
void PrintToStream() const;
|
||||
|
||||
void SetSubPixelPrecise(bool precise);
|
||||
bool SubPixelPrecise() const
|
||||
{ return fSubPixelPrecise; }
|
||||
|
||||
protected:
|
||||
BPoint fOrigin;
|
||||
float fScale;
|
||||
|
||||
BRegion* fClippingRegion;
|
||||
|
||||
RGBColor fHighColor;
|
||||
RGBColor fLowColor;
|
||||
Pattern fPattern;
|
||||
|
||||
drawing_mode fDrawingMode;
|
||||
source_alpha fAlphaSrcMode;
|
||||
alpha_function fAlphaFncMode;
|
||||
|
||||
BPoint fPenLocation;
|
||||
float fPenSize;
|
||||
|
||||
ServerFont fFont;
|
||||
// overrides font aliasing flag
|
||||
bool fFontAliasing;
|
||||
|
||||
// This is not part of the normal state stack.
|
||||
// Layer will update it in PushState/PopState.
|
||||
// A BView can have a flag "B_SUBPIXEL_PRECISE",
|
||||
// I never knew what it does on R5, but I can use
|
||||
// it in Painter to actually draw stuff with
|
||||
// sub-pixel coordinates. It means
|
||||
// StrokeLine(BPoint(10, 5), BPoint(20, 9));
|
||||
// will look different from
|
||||
// StrokeLine(BPoint(10.3, 5.8), BPoint(20.6, 9.5));
|
||||
bool fSubPixelPrecise;
|
||||
|
||||
cap_mode fLineCapMode;
|
||||
join_mode fLineJoinMode;
|
||||
float fMiterLimit;
|
||||
// "internal", used to calculate the size
|
||||
// of the font (again) when the scale changes
|
||||
float fUnscaledFontSize;
|
||||
|
||||
DrawState* fPreviousState;
|
||||
};
|
||||
|
||||
|
||||
// inline implementations
|
||||
|
||||
// Transform
|
||||
BPoint
|
||||
DrawState::Transform(const BPoint& point) const
|
||||
{
|
||||
BPoint p(point);
|
||||
p += fOrigin;
|
||||
p.x *= fScale;
|
||||
p.y *= fScale;
|
||||
return p;
|
||||
}
|
||||
|
||||
// Transform
|
||||
BRect
|
||||
DrawState::Transform(const BRect& rect) const
|
||||
{
|
||||
return BRect(Transform(rect.LeftTop()),
|
||||
Transform(rect.LeftBottom()));
|
||||
}
|
||||
/*
|
||||
// ClippingRectAt
|
||||
BRect
|
||||
DrawState::ClippingRectAt(int32 index) const
|
||||
{
|
||||
BRect r;
|
||||
if (fClippingRegion) {
|
||||
r = fClippingRegion.RectAt(index);
|
||||
}
|
||||
return r;
|
||||
}*/
|
||||
|
||||
#endif /* _DRAW_STATE_H_ */
|
||||
@@ -1,226 +0,0 @@
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* DarkWyrm <[email protected]>
|
||||
* Adi Oanca <[email protected]>
|
||||
* Stephan Aßmus <[email protected]>
|
||||
*/
|
||||
#ifndef LAYER_DATA_H_
|
||||
#define LAYER_DATA_H_
|
||||
|
||||
|
||||
#include <GraphicsDefs.h>
|
||||
#include <InterfaceDefs.h>
|
||||
#include <Point.h>
|
||||
#include <View.h> // for B_FONT_ALL
|
||||
|
||||
#include "RGBColor.h"
|
||||
#include "FontManager.h"
|
||||
#include "ServerFont.h"
|
||||
#include "PatternHandler.h"
|
||||
|
||||
class BRegion;
|
||||
|
||||
namespace BPrivate {
|
||||
class LinkReceiver;
|
||||
class LinkSender;
|
||||
};
|
||||
|
||||
|
||||
class DrawData {
|
||||
public:
|
||||
DrawData();
|
||||
DrawData(const DrawData& from);
|
||||
// used for the State stack, no
|
||||
// true 1:1 copy!
|
||||
DrawData(const DrawData* from);
|
||||
virtual ~DrawData();
|
||||
|
||||
DrawData& operator=(const DrawData& from);
|
||||
|
||||
// coordinate transformation
|
||||
void SetOrigin(const BPoint& origin);
|
||||
void OffsetOrigin(const BPoint& offset);
|
||||
inline const BPoint& Origin() const
|
||||
{ return fOrigin; }
|
||||
|
||||
void SetScale(float scale);
|
||||
inline float Scale() const
|
||||
{ return fScale; }
|
||||
|
||||
// additional clipping as requested by client
|
||||
void SetClippingRegion(const BRegion& region);
|
||||
inline const BRegion* ClippingRegion() const
|
||||
{ return fClippingRegion; }
|
||||
/* inline int32 CountClippingRects() const
|
||||
{ return fClippingRegion ? fClippingRegion.CountRects() : 0; }
|
||||
inline BRect ClippingRectAt(int32 index) const;*/
|
||||
|
||||
// color
|
||||
void SetHighColor(const RGBColor& color);
|
||||
inline const RGBColor& HighColor() const
|
||||
{ return fHighColor; }
|
||||
|
||||
void SetLowColor(const RGBColor& color);
|
||||
inline const RGBColor& LowColor() const
|
||||
{ return fLowColor; }
|
||||
|
||||
void SetPattern(const Pattern& pattern);
|
||||
inline const Pattern& GetPattern() const
|
||||
{ return fPattern; }
|
||||
|
||||
// drawing/blending mode
|
||||
void SetDrawingMode(drawing_mode mode);
|
||||
inline drawing_mode GetDrawingMode() const
|
||||
{ return fDrawingMode; }
|
||||
|
||||
void SetBlendingMode(source_alpha srcMode,
|
||||
alpha_function fncMode);
|
||||
inline source_alpha AlphaSrcMode() const
|
||||
{ return fAlphaSrcMode; }
|
||||
inline alpha_function AlphaFncMode() const
|
||||
{ return fAlphaFncMode; }
|
||||
|
||||
// pen
|
||||
void SetPenLocation(const BPoint& location);
|
||||
const BPoint& PenLocation() const;
|
||||
|
||||
void SetPenSize(float size);
|
||||
float PenSize() const;
|
||||
|
||||
// font
|
||||
void SetFont(const ServerFont& font,
|
||||
uint32 flags = B_FONT_ALL);
|
||||
inline const ServerFont& Font() const
|
||||
{ return fFont; }
|
||||
|
||||
// overrides aliasing flag contained in SeverFont::Flags())
|
||||
void SetForceFontAliasing(bool aliasing);
|
||||
inline bool ForceFontAliasing() const
|
||||
{ return fFontAliasing; }
|
||||
|
||||
// postscript style settings
|
||||
void SetLineCapMode(cap_mode mode);
|
||||
inline cap_mode LineCapMode() const
|
||||
{ return fLineCapMode; }
|
||||
|
||||
void SetLineJoinMode(join_mode mode);
|
||||
inline join_mode LineJoinMode() const
|
||||
{ return fLineJoinMode; }
|
||||
|
||||
void SetMiterLimit(float limit);
|
||||
inline float MiterLimit() const
|
||||
{ return fMiterLimit; }
|
||||
|
||||
// convenience functions
|
||||
inline BPoint Transform(const BPoint& point) const;
|
||||
inline BRect Transform(const BRect& rect) const;
|
||||
|
||||
void SetSubPixelPrecise(bool precise);
|
||||
inline bool SubPixelPrecise() const
|
||||
{ return fSubPixelPrecise; }
|
||||
|
||||
protected:
|
||||
BPoint fOrigin;
|
||||
float fScale;
|
||||
|
||||
BRegion* fClippingRegion;
|
||||
|
||||
RGBColor fHighColor;
|
||||
RGBColor fLowColor;
|
||||
Pattern fPattern;
|
||||
|
||||
drawing_mode fDrawingMode;
|
||||
source_alpha fAlphaSrcMode;
|
||||
alpha_function fAlphaFncMode;
|
||||
|
||||
BPoint fPenLocation;
|
||||
float fPenSize;
|
||||
|
||||
ServerFont fFont;
|
||||
// overrides font aliasing flag
|
||||
bool fFontAliasing;
|
||||
|
||||
// This is not part of the normal state stack.
|
||||
// Layer will update it in PushState/PopState.
|
||||
// A BView can have a flag "B_SUBPIXEL_PRECISE",
|
||||
// I never knew what it does on R5, but I can use
|
||||
// it in Painter to actually draw stuff with
|
||||
// sub-pixel coordinates. It means
|
||||
// StrokeLine(BPoint(10, 5), BPoint(20, 9));
|
||||
// will look different from
|
||||
// StrokeLine(BPoint(10.3, 5.8), BPoint(20.6, 9.5));
|
||||
bool fSubPixelPrecise;
|
||||
|
||||
cap_mode fLineCapMode;
|
||||
join_mode fLineJoinMode;
|
||||
float fMiterLimit;
|
||||
// "internal", used to calculate the size
|
||||
// of the font (again) when the scale changes
|
||||
float fUnscaledFontSize;
|
||||
};
|
||||
|
||||
class LayerData : public DrawData {
|
||||
public:
|
||||
LayerData();
|
||||
LayerData(const LayerData& data);
|
||||
// this version used for the state
|
||||
// stack, sets prevState to data too
|
||||
LayerData(LayerData* data);
|
||||
virtual ~LayerData();
|
||||
|
||||
LayerData& operator=(const LayerData &from);
|
||||
|
||||
// convenience functions
|
||||
virtual void PrintToStream() const;
|
||||
|
||||
void ReadFontFromLink(BPrivate::LinkReceiver& link);
|
||||
// NOTE: ReadFromLink() does not read Font state!!
|
||||
// It was separate in ServerWindow, and I didn't
|
||||
// want to change it without knowing implications.
|
||||
void ReadFromLink(BPrivate::LinkReceiver& link);
|
||||
void WriteToLink(BPrivate::LinkSender& link) const;
|
||||
|
||||
LayerData* PreviousState() const { return fPreviousState; }
|
||||
LayerData* PopState();
|
||||
|
||||
private:
|
||||
// used for the state stack
|
||||
LayerData* fPreviousState;
|
||||
};
|
||||
|
||||
// inline implementations
|
||||
|
||||
// Transform
|
||||
BPoint
|
||||
DrawData::Transform(const BPoint& point) const
|
||||
{
|
||||
BPoint p(point);
|
||||
p += fOrigin;
|
||||
p.x *= fScale;
|
||||
p.y *= fScale;
|
||||
return p;
|
||||
}
|
||||
|
||||
// Transform
|
||||
BRect
|
||||
DrawData::Transform(const BRect& rect) const
|
||||
{
|
||||
return BRect(Transform(rect.LeftTop()),
|
||||
Transform(rect.LeftBottom()));
|
||||
}
|
||||
/*
|
||||
// ClippingRectAt
|
||||
BRect
|
||||
DrawData::ClippingRectAt(int32 index) const
|
||||
{
|
||||
BRect r;
|
||||
if (fClippingRegion) {
|
||||
r = fClippingRegion.RectAt(index);
|
||||
}
|
||||
return r;
|
||||
}*/
|
||||
|
||||
#endif // LAYER_DATA_H_
|
||||
Reference in New Issue
Block a user