Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / gallium / frontends / hgl / hgl_context.h
1 /*
2 * Copyright 2009-2014, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 * Alexander von Gluck IV, kallisti5@unixzen.com
7 */
8 #ifndef HGL_CONTEXT_H
9 #define HGL_CONTEXT_H
10
11
12 #include "pipe/p_format.h"
13 #include "pipe/p_compiler.h"
14 #include "pipe/p_screen.h"
15 #include "postprocess/filters.h"
16
17 #include "frontend/api.h"
18 #include "frontend/st_manager.h"
19 #include "os/os_thread.h"
20
21 #include "bitmap_wrapper.h"
22
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28
29 #define CONTEXT_MAX 32
30
31 typedef int64 context_id;
32
33
34 struct hgl_buffer
35 {
36 struct st_framebuffer_iface *stfbi;
37 struct st_visual* visual;
38
39 unsigned width;
40 unsigned height;
41 unsigned mask;
42
43 struct pipe_screen* screen;
44 struct pipe_surface* surface;
45
46 enum pipe_texture_target target;
47 struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
48
49 void *map;
50
51 //struct hgl_buffer *next; /**< next in linked list */
52 };
53
54
55 struct hgl_context
56 {
57 struct st_api* api;
58 // API
59 struct st_manager* manager;
60 // Manager
61 struct st_context_iface* st;
62 // Interface Object
63 struct st_visual* stVisual;
64 // Visual
65
66 struct pipe_screen* screen;
67
68 //struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
69
70 // Post processing
71 struct pp_queue_t* postProcess;
72 unsigned int postProcessEnable[PP_FILTERS];
73
74 // Desired viewport size
75 unsigned width;
76 unsigned height;
77
78 Bitmap* bitmap;
79 color_space colorSpace;
80
81 mtx_t fbMutex;
82
83 struct hgl_buffer* draw;
84 struct hgl_buffer* read;
85 };
86
87 // hgl_buffer from statetracker interface
88 struct hgl_buffer* hgl_st_framebuffer(struct st_framebuffer_iface *stfbi);
89
90 // hgl frontend
91 struct st_api* hgl_create_st_api(void);
92
93 // hgl framebuffer
94 struct hgl_buffer* hgl_create_st_framebuffer(struct hgl_context* context);
95
96 // hgl manager
97 struct st_manager* hgl_create_st_manager(struct hgl_context* screen);
98 void hgl_destroy_st_manager(struct st_manager *manager);
99
100 // hgl visual
101 struct st_visual* hgl_create_st_visual(ulong options);
102 void hgl_destroy_st_visual(struct st_visual* visual);
103
104
105 #ifdef __cplusplus
106 }
107 #endif
108
109 #endif /* HGL_CONTEXT_H */