Removed BeginLayer and EndLayer functions. Resolved Cairo layers drawing problem in a different way.
This commit is contained in:
parent
bb3f3d063f
commit
10dd5023e2
|
@ -178,6 +178,8 @@ void CAIRO_GAL::BeginDrawing() throw( int )
|
||||||
lineWidth = 0;
|
lineWidth = 0;
|
||||||
|
|
||||||
isDeleteSavedPixels = true;
|
isDeleteSavedPixels = true;
|
||||||
|
|
||||||
|
cairo_push_group( cairoImage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,6 +188,9 @@ void CAIRO_GAL::EndDrawing()
|
||||||
// Force remaining objects to be drawn
|
// Force remaining objects to be drawn
|
||||||
Flush();
|
Flush();
|
||||||
|
|
||||||
|
cairo_pop_group_to_source( cairoImage );
|
||||||
|
cairo_paint_with_alpha( cairoImage, fillColor.a );
|
||||||
|
|
||||||
// This code was taken from the wxCairo example - it's not the most efficient one
|
// This code was taken from the wxCairo example - it's not the most efficient one
|
||||||
// Here is a good place for optimizations
|
// Here is a good place for optimizations
|
||||||
|
|
||||||
|
@ -521,6 +526,19 @@ void CAIRO_GAL::ClearScreen()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CAIRO_GAL::SetLayerDepth( double aLayerDepth )
|
||||||
|
{
|
||||||
|
super::SetLayerDepth( aLayerDepth );
|
||||||
|
|
||||||
|
storePath();
|
||||||
|
|
||||||
|
cairo_pop_group_to_source( cairoImage );
|
||||||
|
cairo_paint_with_alpha( cairoImage, fillColor.a );
|
||||||
|
|
||||||
|
cairo_push_group( cairoImage );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CAIRO_GAL::Transform( MATRIX3x3D aTransformation )
|
void CAIRO_GAL::Transform( MATRIX3x3D aTransformation )
|
||||||
{
|
{
|
||||||
cairo_matrix_t cairoTransformation;
|
cairo_matrix_t cairoTransformation;
|
||||||
|
@ -617,21 +635,6 @@ void CAIRO_GAL::Restore()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CAIRO_GAL::BeginLayer()
|
|
||||||
{
|
|
||||||
cairo_push_group( cairoImage );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CAIRO_GAL::EndLayer()
|
|
||||||
{
|
|
||||||
storePath();
|
|
||||||
|
|
||||||
cairo_pop_group_to_source( cairoImage );
|
|
||||||
cairo_paint_with_alpha( cairoImage, fillColor.a );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int CAIRO_GAL::BeginGroup()
|
int CAIRO_GAL::BeginGroup()
|
||||||
{
|
{
|
||||||
// If the grouping is started: the actual path is stored in the group, when
|
// If the grouping is started: the actual path is stored in the group, when
|
||||||
|
|
|
@ -1288,15 +1288,6 @@ void OPENGL_GAL::Restore()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OPENGL_GAL::BeginLayer()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void OPENGL_GAL::EndLayer()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// TODO Error handling
|
// TODO Error handling
|
||||||
int OPENGL_GAL::BeginGroup()
|
int OPENGL_GAL::BeginGroup()
|
||||||
{
|
{
|
||||||
|
|
|
@ -95,12 +95,6 @@ public:
|
||||||
/// @copydoc GAL::EndDrawing()
|
/// @copydoc GAL::EndDrawing()
|
||||||
virtual void EndDrawing();
|
virtual void EndDrawing();
|
||||||
|
|
||||||
/// @copydoc GAL::BeginLayer()
|
|
||||||
virtual void BeginLayer();
|
|
||||||
|
|
||||||
/// @copydoc GAL::EndLayer()
|
|
||||||
virtual void EndLayer();
|
|
||||||
|
|
||||||
/// @copydoc GAL::DrawLine()
|
/// @copydoc GAL::DrawLine()
|
||||||
virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
||||||
|
|
||||||
|
@ -178,10 +172,7 @@ public:
|
||||||
double GetLineWidth();
|
double GetLineWidth();
|
||||||
|
|
||||||
/// @copydoc GAL::SetLayerDepth()
|
/// @copydoc GAL::SetLayerDepth()
|
||||||
virtual void SetLayerDepth( double aLayerDepth )
|
virtual void SetLayerDepth( double aLayerDepth );
|
||||||
{
|
|
||||||
super::SetLayerDepth( aLayerDepth );
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------------
|
// --------------
|
||||||
// Transformation
|
// Transformation
|
||||||
|
|
|
@ -95,12 +95,6 @@ public:
|
||||||
/// @brief End the drawing, needs to be called for every new frame.
|
/// @brief End the drawing, needs to be called for every new frame.
|
||||||
virtual void EndDrawing() = 0;
|
virtual void EndDrawing() = 0;
|
||||||
|
|
||||||
/// @brief Begin the layer drawing, needs to be called for every new layer.
|
|
||||||
virtual void BeginLayer() = 0;
|
|
||||||
|
|
||||||
/// @brief Finish the layer drawing, needs to be called for every new layer.
|
|
||||||
virtual void EndLayer() = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Draw a line.
|
* @brief Draw a line.
|
||||||
*
|
*
|
||||||
|
|
|
@ -102,12 +102,6 @@ public:
|
||||||
/// @copydoc GAL::EndDrawing()
|
/// @copydoc GAL::EndDrawing()
|
||||||
virtual void EndDrawing();
|
virtual void EndDrawing();
|
||||||
|
|
||||||
/// @copydoc GAL::BeginLayer()
|
|
||||||
virtual void BeginLayer();
|
|
||||||
|
|
||||||
/// @copydoc GAL::EndLayer()
|
|
||||||
virtual void EndLayer();
|
|
||||||
|
|
||||||
/// @copydoc GAL::DrawLine()
|
/// @copydoc GAL::DrawLine()
|
||||||
virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
virtual void DrawLine( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue