kolibrios-fun/drivers/include/display.h

83 lines
1.7 KiB
C
Raw Normal View History

typedef struct tag_object kobj_t;
typedef struct tag_display display_t;
struct tag_object
{
uint32_t magic;
void *destroy;
kobj_t *fd;
kobj_t *bk;
uint32_t pid;
};
typedef struct
{
kobj_t header;
uint32_t *data;
uint32_t hot_x;
uint32_t hot_y;
struct list_head list;
void *cobj;
}cursor_t;
#define KMS_CURSOR_WIDTH 64
#define KMS_CURSOR_HEIGHT 64
struct kos_framebuffer
{
struct list_head list;
uint32_t magic;
uint32_t handle;
void *destructor;
uint32_t width;
uint32_t height;
uint32_t pitch;
uint32_t format;
void *private;
uint32_t pde[8];
};
struct tag_display
{
u32 x;
u32 y;
u32 width;
u32 height;
u32 bpp;
u32 vrefresh;
struct kos_framebuffer *current_lfb;
u32 lfb_pitch;
struct rw_semaphore win_map_lock;
void *win_map;
u32 win_map_pitch;
u32 win_map_size;
u32 supported_modes;
struct drm_device *ddev;
struct drm_connector *connector;
struct drm_crtc *crtc;
struct list_head cursors;
cursor_t *cursor;
int (*init_cursor)(cursor_t*);
cursor_t* (__stdcall *select_cursor)(cursor_t*);
void (*show_cursor)(int show);
void (__stdcall *move_cursor)(cursor_t *cursor, int x, int y);
void (__stdcall *restore_cursor)(int x, int y);
void (*disable_mouse)(void);
u32 mask_seqno;
u32 check_mouse;
u32 check_m_pixel;
u32 bytes_per_pixel;
};
extern display_t *os_display;