vc4: Add support for QPU scheduling of thread switch instructions.
[mesa.git] / src / gallium / state_trackers / hgl / hgl_context.h
index a520d490e522f028d982e001b5ebbb64e08ea494..d2ec7fb49c4397cb2eba8b90dc7665d5950cc25a 100644 (file)
@@ -9,9 +9,6 @@
 #define HGL_CONTEXT_H
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif
 #include "state_tracker/st_api.h"
 #include "state_tracker/st_manager.h"
 #include "pipe/p_compiler.h"
@@ -20,8 +17,10 @@ extern "C" {
 #include "os/os_thread.h"
 
 #include "bitmap_wrapper.h"
+
+
 #ifdef __cplusplus
-}
+extern "C" {
 #endif
 
 
@@ -37,7 +36,10 @@ struct hgl_buffer
 
        unsigned width;
        unsigned height;
+       unsigned mask;
 
+       struct pipe_screen* screen;
+       enum pipe_texture_target target;
        struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
 
        void *map;
@@ -57,12 +59,18 @@ struct hgl_context
        struct st_visual* stVisual;
                // State Tracker Visual
 
-       struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
+       struct pipe_screen* screen;
+
+       //struct pipe_resource* textures[ST_ATTACHMENT_COUNT];
 
        // Post processing
        struct pp_queue_t* postProcess;
        unsigned int postProcessEnable[PP_FILTERS];
 
+       // Desired viewport size
+       unsigned width;
+       unsigned height;
+
        Bitmap* bitmap;
        color_space colorSpace;
 
@@ -73,12 +81,23 @@ struct hgl_context
 };
 
 
+// hgl state_tracker api
+struct st_api* hgl_create_st_api(void);
+
 // hgl state_tracker framebuffer
 struct hgl_buffer* hgl_create_st_framebuffer(struct hgl_context* context);
 
 // hgl state_tracker manager
-struct st_manager* hgl_create_st_manager(struct pipe_screen* screen);
+struct st_manager* hgl_create_st_manager(struct hgl_context* screen);
 void hgl_destroy_st_manager(struct st_manager *manager);
 
+// hgl state_tracker visual
+struct st_visual* hgl_create_st_visual(ulong options);
+void hgl_destroy_st_visual(struct st_visual* visual);
+
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* HGL_CONTEXT_H */