update copyrights
[aros:aros.git] / AROS / workbench / devs / monitors / Compositor / include / compositor.h
1 #ifndef HIDD_COMPOSITOR_H
2 #define HIDD_COMPOSITOR_H
3 /*
4     Copyright © 2010-2013, The AROS Development Team. All rights reserved.
5     $Id$
6 */
7
8 #include <oop/oop.h>
9 #include <hidd/graphics.h>
10
11 /*
12  * Things described here are actually system-internal.
13  * This class has no other use except inside graphics.library.
14  * This include file is even not a part of AROS SDK.
15  */
16
17 /*
18  * Compositor interface.
19  * Changing this breaks binary compatibility. graphics.library recognizes
20  * this class by its name.
21  */
22 #define CLID_Hidd_Compositor   "hidd.graphics.compositor"
23 #define IID_Hidd_Compositor    "hidd.graphics.compositor"
24
25 /* Compositor class methods */
26
27 enum
28 {
29     moHidd_Compositor_BitMapStackChanged = 0,
30     moHidd_Compositor_BitMapRectChanged,
31     moHidd_Compositor_BitMapPositionChange,
32     moHidd_Compositor_DisplayRectChanged,
33
34     NUM_COMPOSITOR_METHODS
35 };
36
37 enum
38 {
39     aoHidd_Compositor_GfxHidd = 0,      /* [I..] Gfx driver object connected with this compositor object */
40     aoHidd_Compositor_Capabilities,     /* [ISG] Composition capabilities of this implementation          */
41     aoHidd_Compositor_BackFillHook,     /* [ISG] Rendering hook for void space                            */
42     aoHidd_Compositor_FrameBuffer,      /* [I..] Driver's framebuffer bitmap                              */
43
44     num_Hidd_Compositor_Attrs
45 };
46
47 #define aHidd_Compositor_GfxHidd        (HiddCompositorAttrBase + aoHidd_Compositor_GfxHidd)
48 #define aHidd_Compositor_Capabilities  (HiddCompositorAttrBase + aoHidd_Compositor_Capabilities)
49 #define aHidd_Compositor_BackFillHook  (HiddCompositorAttrBase + aoHidd_Compositor_BackFillHook)
50 #define aHidd_Compositor_FrameBuffer   (HiddCompositorAttrBase + aoHidd_Compositor_FrameBuffer)
51
52 #define IS_COMPOSITOR_ATTR(attr, idx) \
53     (((idx) = (attr) - HiddCompositorAttrBase) < num_Hidd_Compositor_Attrs)
54
55 struct pHidd_Compositor_BitMapStackChanged
56 {
57     OOP_MethodID                mID;
58     struct HIDD_ViewPortData    *data;
59     BOOL                        *active;
60 };
61
62 struct pHidd_Compositor_BitMapRectChanged
63 {
64     OOP_MethodID    mID;
65     OOP_Object      *bm;
66     WORD            x;
67     WORD            y;
68     WORD            width;
69     WORD            height;
70 };
71
72 struct pHidd_Compositor_BitMapPositionChange
73 {
74     OOP_MethodID    mID;
75     OOP_Object      *bm;
76     SIPTR           *newxoffset;
77     SIPTR           *newyoffset;
78 };
79
80 struct HIDD_BackFillHookMsg
81 {
82     void                        *dummy;
83     struct Rectangle            *bounds;
84     LONG                        offsetx;
85     LONG                        offsety;
86 };
87
88 #endif /* HIDD_COMPOSITOR_H */