Setting Z layer in Prs3d_Drawer

Hi,
I created two Prs3d_Drawer with different Zlayer value and added two rectangular face shapes inside Compute function.
Even though I set the different value of Z using the function Prs3d_Drawer->SetZLayer. It paints both the shapes with different colors that was set on Prs3d_Drawer objects. But It doesn't have any impact on the rendering order. Can you someone explain how to
achieve painting one shape on top of another shape(both belongs to same AIS object) in specific order?

G3DMyShapeItem::Compute(const Handle(PrsMgr_PresentationManager)& thePrsMgr,
const Handle(Prs3d_Presentation)& thePrs,
const Standard_Integer theMode)
{
TopoDS_Face shape1 = ..
TopoDS_Face shape2 = ..
StdPrs_ShadedShape::Add (thePrs, shape1 , aDrawer1,...)
StdPrs_ShadedShape::Add (thePrs, shape2 , aDrawer2,...)
}