summaryrefslogtreecommitdiff
path: root/va/va_drmcommon.h
blob: f43b6b016c4865d8cca7300ebf622f8efeb9acbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef _VA_DRMCOMMON_H_
#define _VA_DRMCOMMON_H_

#ifndef ANDROID
#include <xf86drm.h>
#include <drm.h>
#include <drm_sarea.h>
#endif

#include <va/va_backend.h>

enum
{
    VA_NONE = 0,
    VA_DRI1 = 1,
    VA_DRI2 = 2,
    VA_DUMMY = 3
};

union drm_buffer 
{
    struct {
        unsigned int attachment;
        unsigned int name;
        unsigned int pitch;
        unsigned int cpp;
        unsigned int flags;
    } dri2;

    struct {
    } dri1;
};

struct drm_drawable 
{
    int x;
    int y;
    unsigned int width;
    unsigned int height;
};

struct drm_state 
{
    int fd;
    int driConnectedFlag; /* 0: disconnected, 1: DRM, 2: DRM2 */
#ifndef ANDROID
    drm_handle_t hSAREA;
    drm_context_t hwContext;
    drmAddress pSAREA;

    struct drm_drawable *(*getDrawable)(VADriverContextP ctx, void *native_drawable);

    void (*swapBuffer)(VADriverContextP ctx, struct drm_drawable *drm_drawable);
    union drm_buffer *(*getRenderingBuffer)(VADriverContextP ctx, struct drm_drawable *drm_drawable);
#endif
};

#endif /* _VA_DRMCOMMON_H_ */