Merge commit 'origin/gallium-master-merge'
[mesa.git] / src / gallium / state_trackers / g3dvl / vl_screen.c
1 #define VL_INTERNAL
2 #include "vl_screen.h"
3 #include <assert.h>
4 #include <util/u_memory.h>
5
6 int vlCreateScreen
7 (
8 struct vlDisplay *display,
9 int screen,
10 struct pipe_screen *pscreen,
11 struct vlScreen **vl_screen
12 )
13 {
14 struct vlScreen *scrn;
15
16 assert(display);
17 assert(pscreen);
18 assert(vl_screen);
19
20 scrn = CALLOC_STRUCT(vlScreen);
21
22 if (!scrn)
23 return 1;
24
25 scrn->display = display;
26 scrn->ordinal = screen;
27 scrn->pscreen = pscreen;
28 *vl_screen = scrn;
29
30 return 0;
31 }
32
33 int vlDestroyScreen
34 (
35 struct vlScreen *screen
36 )
37 {
38 assert(screen);
39
40 FREE(screen);
41
42 return 0;
43 }
44
45 struct vlDisplay* vlGetDisplay
46 (
47 struct vlScreen *screen
48 )
49 {
50 assert(screen);
51
52 return screen->display;
53 }
54
55 struct pipe_screen* vlGetPipeScreen
56 (
57 struct vlScreen *screen
58 )
59 {
60 assert(screen);
61
62 return screen->pscreen;
63 }
64
65 unsigned int vlGetMaxProfiles
66 (
67 struct vlScreen *screen
68 )
69 {
70 assert(screen);
71
72 return vlProfileCount;
73 }
74
75 int vlQueryProfiles
76 (
77 struct vlScreen *screen,
78 enum vlProfile *profiles
79 )
80 {
81 assert(screen);
82 assert(profiles);
83
84 profiles[0] = vlProfileMpeg2Simple;
85 profiles[1] = vlProfileMpeg2Main;
86
87 return 0;
88 }
89
90 unsigned int vlGetMaxEntryPoints
91 (
92 struct vlScreen *screen
93 )
94 {
95 assert(screen);
96
97 return vlEntryPointCount;
98 }
99
100 int vlQueryEntryPoints
101 (
102 struct vlScreen *screen,
103 enum vlProfile profile,
104 enum vlEntryPoint *entry_points
105 )
106 {
107 assert(screen);
108 assert(entry_points);
109
110 entry_points[0] = vlEntryPointIDCT;
111 entry_points[1] = vlEntryPointMC;
112 entry_points[2] = vlEntryPointCSC;
113
114 return 0;
115 }