softpipe: Split 3D to 2D coords conversion into separate function
authorKrzesimir Nowak <krzesimir@kinvolk.io>
Thu, 10 Sep 2015 12:15:56 +0000 (14:15 +0200)
committerBrian Paul <brianp@vmware.com>
Thu, 10 Sep 2015 15:45:14 +0000 (09:45 -0600)
commitac3637dda04fe1315f19099bd142e4f8f6754b1d
treefe8762745c2eecea52b3477b4a585e75096843c5
parent380a3c08049e5a3b0b1a891e3288b001c535d62f
softpipe: Split 3D to 2D coords conversion into separate function

This is to avoid tying the conversion to the sampling -
textureQueryLod will need to do the conversion too, but it does not do
any sampling.

So instead of a "get_samples" vfunc, there is just a bool saying
whether the conversion is needed or not. This solution keeps a nice
property of not adding any overhead for the common case (2D textures).

v2:
  - replaced the "convert_coords" vfunc with a "need_cube_convert"
    boolean to avoid overhead of copying arrays in common case
  - removed an unused typedef
  - splitted too long lines in convert_cube
  - const fixes in convert_cube

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/softpipe/sp_tex_sample.c
src/gallium/drivers/softpipe/sp_tex_sample.h