rbug: Break out of trace
[mesa.git] / src / gallium / include / state_tracker / st_api.h
index 70ad215bfce57f18321d8dcf220c5527127cb453..21f2d639b1424d71ffa9f6c2f029ef3d9b401b6a 100644 (file)
  * tracker managers.
  */
 
-/**
- * The entry points of the state trackers.
- */
-#define ST_MODULE_OPENGL_SYMBOL      "st_module_OpenGL"
-#define ST_MODULE_OPENGL_ES1_SYMBOL  "st_module_OpenGL_ES1"
-#define ST_MODULE_OPENGL_ES2_SYMBOL  "st_module_OpenGL_ES2"
-#define ST_MODULE_OPENVG_SYMBOL      "st_module_OpenVG"
-
 /**
  * The supported rendering API of a state tracker.
  */
@@ -69,7 +61,7 @@ enum st_texture_type {
    ST_TEXTURE_1D,
    ST_TEXTURE_2D,
    ST_TEXTURE_3D,
-   ST_TEXTURE_RECT,
+   ST_TEXTURE_RECT
 };
 
 /**
@@ -110,7 +102,7 @@ enum st_context_resource_type {
    ST_CONTEXT_RESOURCE_OPENGL_TEXTURE_CUBE_MAP_POSITIVE_Z,
    ST_CONTEXT_RESOURCE_OPENGL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
    ST_CONTEXT_RESOURCE_OPENGL_RENDERBUFFER,
-   ST_CONTEXT_RESOURCE_OPENVG_PARENT_IMAGE,
+   ST_CONTEXT_RESOURCE_OPENVG_PARENT_IMAGE
 };
 
 /**
@@ -119,7 +111,7 @@ enum st_context_resource_type {
 typedef void (*st_proc_t)(void);
 
 struct pipe_context;
-struct pipe_texture;
+struct pipe_resource;
 struct pipe_fence_handle;
 
 /**
@@ -132,7 +124,7 @@ struct st_context_resource
    void *resource;
 
    /* this is owned by the caller */
-   struct pipe_texture *texture;
+   struct pipe_resource *texture;
 };
 
 /**
@@ -145,7 +137,7 @@ struct st_egl_image
    void *egl_image;
 
    /* this is owned by the caller */
-   struct pipe_texture *texture;
+   struct pipe_resource *texture;
 
    unsigned face;
    unsigned level;
@@ -239,7 +231,7 @@ struct st_framebuffer_iface
    boolean (*validate)(struct st_framebuffer_iface *stfbi,
                        const enum st_attachment_type *statts,
                        unsigned count,
-                       struct pipe_texture **out);
+                       struct pipe_resource **out);
 };
 
 /**
@@ -292,7 +284,7 @@ struct st_context_iface
     */
    boolean (*teximage)(struct st_context_iface *stctxi, enum st_texture_type target,
                        int level, enum pipe_format internal_format,
-                       struct pipe_texture *tex, boolean mipmap);
+                       struct pipe_resource *tex, boolean mipmap);
 
    /**
     * Used to implement glXCopyContext.
@@ -378,17 +370,6 @@ struct st_api
    struct st_context_iface *(*get_current)(struct st_api *stapi);
 };
 
-/**
- * Represent a state tracker.
- *
- * This is the entry point of a state tracker.
- */
-struct st_module
-{
-   enum st_api_type api;
-   struct st_api *(*create_api)(void);
-};
-
 /**
  * Return true if the visual has the specified buffers.
  */
@@ -399,9 +380,17 @@ st_visual_have_buffers(const struct st_visual *visual, unsigned mask)
 }
 
 /* these symbols may need to be dynamically lookup up */
-extern PUBLIC const struct st_module st_module_OpenGL;
-extern PUBLIC const struct st_module st_module_OpenGL_ES1;
-extern PUBLIC const struct st_module st_module_OpenGL_ES2;
-extern PUBLIC const struct st_module st_module_OpenVG;
+extern PUBLIC struct st_api * st_api_create_OpenGL(void);
+extern PUBLIC struct st_api * st_api_create_OpenGL_ES1(void);
+extern PUBLIC struct st_api * st_api_create_OpenGL_ES2(void);
+extern PUBLIC struct st_api * st_api_create_OpenVG(void);
+
+/**
+ * The entry points of the state trackers.
+ */
+#define ST_CREATE_OPENGL_SYMBOL      "st_api_create_OpenGL"
+#define ST_CREATE_OPENGL_ES1_SYMBOL  "st_api_create_OpenGL_ES1"
+#define ST_CREATE_OPENGL_ES2_SYMBOL  "st_api_create_OpenGL_ES2"
+#define ST_CREATE_OPENVG_SYMBOL      "st_api_create_OpenVG"
 
 #endif /* _ST_API_H_ */