xref: /haiku/src/add-ons/accelerants/nvidia/be_driver_proto.h (revision b671e9bbdbd10268a042b4f4cc4317ccd03d105e)
1 /*
2 	Copyright 1999, Be Incorporated.   All Rights Reserved.
3 	This file may be used under the terms of the Be Sample Code License.
4 
5 	Modified by Rudolf Cornelissen 8/2009.
6 */
7 
8 #if !defined(GENERIC_H)
9 #define GENERIC_H
10 
11 #include <Accelerant.h>
12 #include <video_overlay.h>
13 
14 #define DEBUG 1
15 
16 status_t INIT_ACCELERANT(int fd);
17 ssize_t ACCELERANT_CLONE_INFO_SIZE(void);
18 void GET_ACCELERANT_CLONE_INFO(void *data);
19 status_t CLONE_ACCELERANT(void *data);
20 void UNINIT_ACCELERANT(void);
21 status_t GET_ACCELERANT_DEVICE_INFO(accelerant_device_info *adi);
22 sem_id ACCELERANT_RETRACE_SEMAPHORE(void);
23 
24 uint32 ACCELERANT_MODE_COUNT(void);
25 status_t GET_MODE_LIST(display_mode *dm);
26 status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, const display_mode *high);
27 status_t SET_DISPLAY_MODE(display_mode *mode_to_set);
28 status_t GET_DISPLAY_MODE(display_mode *current_mode);
29 #ifdef __HAIKU__
30 status_t GET_EDID_INFO(void* info, size_t size, uint32* _version);
31 status_t GET_PREFERRED_DISPLAY_MODE(display_mode* preferredMode);
32 #endif
33 status_t GET_FRAME_BUFFER_CONFIG(frame_buffer_config *a_frame_buffer);
34 status_t GET_PIXEL_CLOCK_LIMITS(display_mode *dm, uint32 *low, uint32 *high);
35 status_t MOVE_DISPLAY(uint16 h_display_start, uint16 v_display_start);
36 status_t GET_TIMING_CONSTRAINTS(display_timing_constraints *dtc);
37 void SET_INDEXED_COLORS(uint count, uint8 first, uint8 *color_data, uint32 flags);
38 
39 uint32 DPMS_CAPABILITIES(void);
40 uint32 DPMS_MODE(void);
41 status_t SET_DPMS_MODE(uint32 dpms_flags);
42 
43 status_t SET_CURSOR_SHAPE(uint16 width, uint16 height, uint16 hot_x, uint16 hot_y, uint8 *andMask, uint8 *xorMask);
44 void MOVE_CURSOR(uint16 x, uint16 y);
45 void SHOW_CURSOR(bool is_visible);
46 
47 uint32 ACCELERANT_ENGINE_COUNT(void);
48 status_t ACQUIRE_ENGINE_PIO(uint32 capabilities, uint32 max_wait, sync_token *st, engine_token **et);
49 status_t ACQUIRE_ENGINE_DMA(uint32 capabilities, uint32 max_wait, sync_token *st, engine_token **et);
50 status_t RELEASE_ENGINE(engine_token *et, sync_token *st);
51 void WAIT_ENGINE_IDLE(void);
52 status_t GET_SYNC_TOKEN(engine_token *et, sync_token *st);
53 status_t SYNC_TO_TOKEN(sync_token *st);
54 
55 /* PIO acceleration */
56 void SCREEN_TO_SCREEN_BLIT_PIO(engine_token *et, blit_params *list, uint32 count);
57 void SCREEN_TO_SCREEN_TRANSPARENT_BLIT_PIO(engine_token *et, uint32 transparent_colour, blit_params *list, uint32 count);
58 void SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT_PIO(engine_token *et, scaled_blit_params *list, uint32 count);
59 void FILL_RECTANGLE_PIO(engine_token *et, uint32 color, fill_rect_params *list, uint32 count);
60 void INVERT_RECTANGLE_PIO(engine_token *et, fill_rect_params *list, uint32 count);
61 void FILL_SPAN_PIO(engine_token *et, uint32 color, uint16 *list, uint32 count);
62 
63 /* video_overlay */
64 uint32 OVERLAY_COUNT(const display_mode *dm);
65 const uint32 *OVERLAY_SUPPORTED_SPACES(const display_mode *dm);
66 uint32 OVERLAY_SUPPORTED_FEATURES(uint32 a_color_space);
67 const overlay_buffer *ALLOCATE_OVERLAY_BUFFER(color_space cs, uint16 width, uint16 height);
68 status_t RELEASE_OVERLAY_BUFFER(const overlay_buffer *ob);
69 status_t GET_OVERLAY_CONSTRAINTS(const display_mode *dm, const overlay_buffer *ob, overlay_constraints *oc);
70 overlay_token ALLOCATE_OVERLAY(void);
71 status_t RELEASE_OVERLAY(overlay_token ot);
72 status_t CONFIGURE_OVERLAY(overlay_token ot, const overlay_buffer *ob, const overlay_window *ow, const overlay_view *ov);
73 
74 status_t create_mode_list(void);
75 
76 #endif
77