2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
6 #include <aros/libcall.h>
7 #include <graphics/clip.h>
8 #include <graphics/layers.h>
9 #include <utility/tagitem.h>
10 #include <proto/exec.h>
11 #include <proto/utility.h>
12 #include <proto/graphics.h>
13 #include "basicfuncs.h"
15 /*****************************************************************************
18 #include <proto/layers.h>
19 AROS_LH8(struct Layer
*, CreateBehindLayerTagList
,
22 AROS_LHA(struct Layer_Info
*, li
, A0
),
23 AROS_LHA(struct BitMap
*, bm
, A1
),
24 AROS_LHA(LONG
, x0
, D0
),
25 AROS_LHA(LONG
, y0
, D1
),
26 AROS_LHA(LONG
, x1
, D2
),
27 AROS_LHA(LONG
, y1
, D3
),
28 AROS_LHA(LONG
, flags
, D4
),
29 AROS_LHA(struct TagItem
*, tagList
, A2
),
32 struct LayersBase
*, LayersBase
, 40, Layers
)
35 Create a new layer according to the tags given.
38 li - pointer to LayerInfo structure
39 bm - pointer to common bitmap
40 x0,y0 - upper left corner of the layer (in parent layer coords)
41 x1,y1 - lower right corner of the layer (in parent layer coords)
42 flags - choose the type of layer by setting some flags
43 If it is to be a super bitmap layer then the tag
44 LA_SUPERBITMAP must be provided along with a
45 pointer to a valid super bitmap.
46 tagList - a list of tags that specify the properties of the
47 layer. The following tags are currently supported:
48 LA_PRIORITY : priority class of the layer. The
49 higher the number the further the
50 layer will be in front of everything
52 Default value is UPFRONTPRIORITY.
53 LA_HOOK : Backfill hook
54 LA_SUPERBITMAP : pointer to a superbitmap. The flags
55 must also represent that this
56 layer is supposed to be a superbitmap
58 LA_CHILDOF : pointer to parent layer. If NULL then
59 this layer will be created as a old-style
61 LA_INFRONTOF : pointer to a layer in front of which
62 this layer is to be created.
63 LA_BEHIND : pointer to a layer behind which this layer
64 is to be created. Must not give both LA_INFRONTOF
66 LA_VISIBLE : FALSE if this layer is to be invisible.
68 LA_SHAPE : The region of the layer that comprises its shape.
69 This value is optional. The region must be relative to the layer.
73 Pointer to the newly created layer. NULL if layer could not be
74 created (Probably out of memory).
75 If the layer is created successfully you must not free its shape.
76 The shape is automatically freed when the layer is deleted.
88 *****************************************************************************/
93 * *** !!! FIXME !!! ***
94 * This condition was copied from CreateBehindHookLayer() and
95 * it is 100% identical to one in CreateUpfrontHookLayer().
96 * This urgently needs to be fixed.
98 int priority
= (LAYERBACKDROP
== (flags
& LAYERBACKDROP
)) ? BACKDROPPRIORITY
: UPFRONTPRIORITY
;
100 return CreateLayerTagList(li
, bm
, x0
, y0
, x1
, y1
, flags
, priority
, tagList
, LayersBase
);
103 } /* CreateBehindHookLayer */