2 * Copyright 2009-2014, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
6 * Alexander von Gluck IV, kallisti5@unixzen.com
12 #include "pipe/p_format.h"
13 #include "pipe/p_compiler.h"
14 #include "pipe/p_screen.h"
15 #include "postprocess/filters.h"
17 #include "frontend/api.h"
18 #include "frontend/st_manager.h"
19 #include "os/os_thread.h"
21 #include "bitmap_wrapper.h"
29 #define CONTEXT_MAX 32
31 typedef int64 context_id
;
36 struct st_framebuffer_iface
*stfbi
;
37 struct st_visual
* visual
;
43 struct pipe_screen
* screen
;
44 struct pipe_surface
* surface
;
46 enum pipe_texture_target target
;
47 struct pipe_resource
* textures
[ST_ATTACHMENT_COUNT
];
51 //struct hgl_buffer *next; /**< next in linked list */
59 struct st_manager
* manager
;
60 // State Tracker Manager
61 struct st_context_iface
* st
;
62 // State Tracker Interface Object
63 struct st_visual
* stVisual
;
64 // State Tracker Visual
66 struct pipe_screen
* screen
;
68 //struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
71 struct pp_queue_t
* postProcess
;
72 unsigned int postProcessEnable
[PP_FILTERS
];
74 // Desired viewport size
79 color_space colorSpace
;
83 struct hgl_buffer
* draw
;
84 struct hgl_buffer
* read
;
87 // hgl_buffer from statetracker interface
88 struct hgl_buffer
* hgl_st_framebuffer(struct st_framebuffer_iface
*stfbi
);
91 struct st_api
* hgl_create_st_api(void);
94 struct hgl_buffer
* hgl_create_st_framebuffer(struct hgl_context
* context
);
97 struct st_manager
* hgl_create_st_manager(struct hgl_context
* screen
);
98 void hgl_destroy_st_manager(struct st_manager
*manager
);
101 struct st_visual
* hgl_create_st_visual(ulong options
);
102 void hgl_destroy_st_visual(struct st_visual
* visual
);
109 #endif /* HGL_CONTEXT_H */