1 #include <graphics/gfxbase.h>
2 #include <intuition/screens.h>
3 #include <hidd/graphics.h>
4 #include <proto/intuition.h>
9 OOP_AttrBase HiddBitMapAttrBase
;
10 OOP_AttrBase HiddSyncAttrBase
;
12 static void PrintMode(HIDDT_ModeID m
, OOP_Object
*sync
, OOP_Object
*pixfmt
)
14 STRPTR desc
= "No description";
16 if (m
== vHidd_ModeID_Invalid
)
20 OOP_GetAttr(sync
, aHidd_Sync_Description
, (IPTR
*)&desc
);
25 printf("ModeID: 0x%08lX %s\n", m
, desc
);
33 HiddBitMapAttrBase
= OOP_ObtainAttrBase(IID_Hidd_BitMap
);
34 if (!HiddBitMapAttrBase
) {
35 printf("Failed to obtain IID_Hidd_BitMap\n");
39 HiddSyncAttrBase
= OOP_ObtainAttrBase(IID_Hidd_Sync
);
40 if (!HiddSyncAttrBase
) {
41 printf("Failed to obtain IID_Hidd_Sync\n");
42 OOP_ReleaseAttrBase(IID_Hidd_BitMap
);
46 scr
= LockPubScreen(NULL
);
49 printf("Failed to lock default public screen\n");
50 OOP_ReleaseAttrBase(IID_Hidd_Sync
);
51 OOP_ReleaseAttrBase(IID_Hidd_BitMap
);
55 bm
= scr
->RastPort
.BitMap
;
57 if (bm
->Flags
& BMF_SPECIALFMT
) {
58 OOP_Object
*bmobj
= (OOP_Object
*)bm
->Planes
[0];
59 OOP_Object
*gfxhidd
= NULL
;
61 OOP_GetAttr(bmobj
, aHidd_BitMap_GfxHidd
, (IPTR
*)&gfxhidd
);
66 OOP_Object
*sync
, *pixfmt
;
68 printf("Checking QueryModeIDs()...\n");
69 modes
= HIDD_Gfx_QueryModeIDs(gfxhidd
, NULL
);
71 HIDDT_ModeID
*m
= modes
;
76 if ((*m
== vHidd_ModeID_Invalid
) ||
77 HIDD_Gfx_GetMode(gfxhidd
, *m
, &sync
, &pixfmt
))
78 PrintMode(*m
, sync
, pixfmt
);
80 printf("ModeID 0x%08lX GetMode() failed\n", *m
);
81 } while (*m
++ != vHidd_ModeID_Invalid
);
83 HIDD_Gfx_ReleaseModeIDs(gfxhidd
, modes
);
85 printf("Failed to obtain ModeID list\n");
87 printf("Checking NextModeID()...\n");
88 mode
= vHidd_ModeID_Invalid
;
93 mode
= HIDD_Gfx_NextModeID(gfxhidd
, mode
, &sync
, &pixfmt
);
94 PrintMode(mode
, sync
, pixfmt
);
95 } while (mode
!= vHidd_ModeID_Invalid
);
98 printf("Public screen bitmap does not have aHidd_BitMap_GfxHidd, weird\n");
100 printf("Public screen bitmap is not a HIDD bitmap, unsupported for now\n");
102 UnlockPubScreen(NULL
, scr
);
103 OOP_ReleaseAttrBase(IID_Hidd_Sync
);
104 OOP_ReleaseAttrBase(IID_Hidd_BitMap
);