Changes in v2:
- Add a much longer and better comment

This allows the OpenGL state tracker to inform the driver that we
are using GL_TEXTURE_RECTANGLE as opposed to GL_TEXTURE_2D.
---
 src/gallium/include/pipe/p_defines.h |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/gallium/include/pipe/p_defines.h 
b/src/gallium/include/pipe/p_defines.h
index 00aa207..23cf429 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -313,6 +313,32 @@ enum pipe_transfer_usage {
 /* Flags for the driver about resource behaviour:
  */
 #define PIPE_RESOURCE_FLAG_GEN_MIPS    (1 << 0)  /* Driver performs autogen 
mips */
+
+/* State trackers must set this flag if the user API intends to use only 
unnormalized
+ * coordinates with this resource. For instance, OpenGL rectangle textures 
will have
+ * this flag set.
+ *
+ * State trackers should support using either normalization in all internal 
drawing
+ * code.
+ *
+ * Drivers should set or clear the flag to inform the state tracker of the 
normalization
+ * it should use in internal drawing code. The state tracker should also ask 
the API
+ * user to do so too if the API supports that.
+ *
+ * Drivers who do not change this will have the best chance of always getting 
the
+ * same normalization for a given resource, while those that clear or set it 
will
+ * get the chosen normalization more often.
+ *
+ * Note that some drivers may only support the coordinate normalization that 
was set
+ * at resource creation. Currently, there is no way to tell this, since 
usually there
+ * is no way to adjust for this, except for not using state trackers that need 
both
+ * normalizations at once, or adding a fallback in the driver.
+ *
+ * Currently only OpenCL is known to need both normalizations on the same 
texture,
+ * while no version of OpenGL or Direct3D needs that.
+ */
+#define PIPE_RESOURCE_FLAG_UNNORMALIZED_COORDS_HINT (1 << 1)
+
 #define PIPE_RESOURCE_FLAG_DRV_PRIV    (1 << 16) /* driver/winsys private */
 #define PIPE_RESOURCE_FLAG_ST_PRIV     (1 << 24) /* state-tracker/winsys 
private */
 
-- 
1.7.0.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to