Build fix.
Some code in a just merged patch needs another one that's still being discussed on Gerrit. Extract just the parts we need to get things building again.
This commit is contained in:
@@ -57,7 +57,7 @@ Canvas::~Canvas()
|
|||||||
status_t
|
status_t
|
||||||
Canvas::InitCheck() const
|
Canvas::InitCheck() const
|
||||||
{
|
{
|
||||||
if (fDrawState == NULL)
|
if (fDrawState.Get() == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
@@ -67,9 +67,12 @@ Canvas::InitCheck() const
|
|||||||
void
|
void
|
||||||
Canvas::PushState()
|
Canvas::PushState()
|
||||||
{
|
{
|
||||||
DrawState* newState = fDrawState->PushState();
|
DrawState* previous = fDrawState.Detach();
|
||||||
if (newState)
|
DrawState* newState = previous->PushState();
|
||||||
fDrawState = newState;
|
if (newState == NULL)
|
||||||
|
newState = previous;
|
||||||
|
|
||||||
|
fDrawState.SetTo(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -81,7 +84,7 @@ Canvas::PopState()
|
|||||||
|
|
||||||
bool rebuildClipping = fDrawState->HasAdditionalClipping();
|
bool rebuildClipping = fDrawState->HasAdditionalClipping();
|
||||||
|
|
||||||
fDrawState = fDrawState->PopState();
|
fDrawState.SetTo(fDrawState->PopState());
|
||||||
|
|
||||||
// rebuild clipping
|
// rebuild clipping
|
||||||
// (the clipping from the popped state is not effective anymore)
|
// (the clipping from the popped state is not effective anymore)
|
||||||
@@ -93,7 +96,7 @@ Canvas::PopState()
|
|||||||
void
|
void
|
||||||
Canvas::SetDrawState(DrawState* newState)
|
Canvas::SetDrawState(DrawState* newState)
|
||||||
{
|
{
|
||||||
fDrawState = newState;
|
fDrawState.SetTo(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -293,14 +296,13 @@ OffscreenCanvas::OffscreenCanvas(DrawingEngine* engine,
|
|||||||
|
|
||||||
OffscreenCanvas::~OffscreenCanvas()
|
OffscreenCanvas::~OffscreenCanvas()
|
||||||
{
|
{
|
||||||
delete fDrawState;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
OffscreenCanvas::ResyncDrawState()
|
OffscreenCanvas::ResyncDrawState()
|
||||||
{
|
{
|
||||||
fDrawingEngine->SetDrawState(fDrawState);
|
fDrawingEngine->SetDrawState(fDrawState.Get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#define CANVAS_H
|
#define CANVAS_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <AutoDeleter.h>
|
||||||
#include <Point.h>
|
#include <Point.h>
|
||||||
|
|
||||||
#include "SimpleTransform.h"
|
#include "SimpleTransform.h"
|
||||||
@@ -42,8 +43,9 @@ public:
|
|||||||
|
|
||||||
virtual void PushState();
|
virtual void PushState();
|
||||||
virtual void PopState();
|
virtual void PopState();
|
||||||
DrawState* CurrentState() const { return fDrawState; }
|
DrawState* CurrentState() const { return fDrawState.Get(); }
|
||||||
void SetDrawState(DrawState* newState);
|
void SetDrawState(DrawState* newState);
|
||||||
|
DrawState* DetachDrawState() { return fDrawState.Detach(); }
|
||||||
|
|
||||||
void SetDrawingOrigin(BPoint origin);
|
void SetDrawingOrigin(BPoint origin);
|
||||||
BPoint DrawingOrigin() const;
|
BPoint DrawingOrigin() const;
|
||||||
@@ -83,7 +85,8 @@ protected:
|
|||||||
SimpleTransform& transform) const = 0;
|
SimpleTransform& transform) const = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DrawState* fDrawState;
|
ObjectDeleter<DrawState>
|
||||||
|
fDrawState;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user