BPicture: Fix archive constructor.
[haiku.git] / src / add-ons / accelerants / et6x00 / GetAccelerantHook.c
blob5e31ade74f1cc01cef897d2f728df4d1e49b472e
1 /*****************************************************************************\
2 * Tseng Labs ET6000, ET6100 and ET6300 graphics driver for BeOS 5.
3 * Copyright (c) 2003-2004, Evgeniy Vladimirovich Bobkov.
4 \*****************************************************************************/
6 #include "generic.h"
9 /*****************************************************************************/
11 * The standard entry point. Given a uint32 feature identifier, this routine
12 * returns a pointer to the function that implements the feature. Some features
13 * require more information than just the identifier to select the proper
14 * function. The extra information (which is specific to the feature) is
15 * pointed at by the void *data parameter. By default, no extra information
16 * is available. Any extra information available to choose the function will
17 * be noted on a case by case below.
19 void *get_accelerant_hook(uint32 feature, void *data) {
20 /* These definition is out of pure lazyness.*/
21 #define HOOK(x) case B_##x: return (void *)x
23 switch (feature) {
26 * One of either B_INIT_ACCELERANT or B_CLONE_ACCELERANT will be
27 * requested and subsequently called before any other hook is
28 * requested. All other feature hook selections can be predicated
29 * on variables assigned during the accelerant initialization process.
31 /* initialization */
32 HOOK(INIT_ACCELERANT);
33 HOOK(CLONE_ACCELERANT);
35 HOOK(ACCELERANT_CLONE_INFO_SIZE);
36 HOOK(GET_ACCELERANT_CLONE_INFO);
37 HOOK(UNINIT_ACCELERANT);
38 HOOK(GET_ACCELERANT_DEVICE_INFO);
40 /// HOOK(ACCELERANT_RETRACE_SEMAPHORE); /* Not implemented. Would be useful to have it implemented. */
42 /* mode configuration */
43 HOOK(ACCELERANT_MODE_COUNT);
44 HOOK(GET_MODE_LIST);
45 /// HOOK(PROPOSE_DISPLAY_MODE);
46 HOOK(SET_DISPLAY_MODE);
47 HOOK(GET_DISPLAY_MODE);
48 HOOK(GET_FRAME_BUFFER_CONFIG);
49 HOOK(GET_PIXEL_CLOCK_LIMITS);
51 /* synchronization */
52 HOOK(ACCELERANT_ENGINE_COUNT);
53 HOOK(ACQUIRE_ENGINE);
54 HOOK(RELEASE_ENGINE);
55 HOOK(WAIT_ENGINE_IDLE);
56 HOOK(GET_SYNC_TOKEN);
57 HOOK(SYNC_TO_TOKEN);
59 /* 2D acceleration */
60 HOOK(SCREEN_TO_SCREEN_BLIT);
61 HOOK(FILL_RECTANGLE);
64 /* Return a null pointer for any feature we don't understand. */
65 return 0;
67 #undef HOOK
69 /*****************************************************************************/