class_docstr: Mixin class to make a texture aware of color limits.
  
  This class contains the shared functionality for the CPU and GPU mixin
  classes below. In some cases this class provides a "generic"
  implementation of a specific method and is then overridden by one of the
  subclasses.
  
  Parameters
  ----------
  data : ndarray | tuple | None
      Texture data in the form of a numpy array. A tuple of the shape of the
      texture can also be given. However, some subclasses may benefit from
      or even require a numpy array to make decisions based on shape **and**
      dtype.
  **texture_kwargs
      Any other keyword arguments to pass to the parent TextureXD class.
class_docstr_tok: ["Mixin","class","to","make","a","texture","aware","of","color","limits",".","This","class","contains","the","shared","functionality","for","the","CPU","and","GPU","mixin","classes","below",".","In","some","cases","this","class","provides","a","``","generic","''","implementation","of","a","specific","method","and","is","then","overridden","by","one","of","the","subclasses",".","Parameters","--","--","--","--","--","data",":","ndarray","|","tuple","|","None","Texture","data","in","the","form","of","a","numpy","array",".","A","tuple","of","the","shape","of","the","texture","can","also","be","given",".","However",",","some","subclasses","may","benefit","from","or","even","require","a","numpy","array","to","make","decisions","based","on","shape","*","*","and","*","*","dtype",".","*","*","texture_kwargs","Any","other","keyword","arguments","to","pass","to","the","parent","TextureXD","class","."]
docstr: Upload new data to the GPU.
docstr_tok: ["Upload","new","data","to","the","GPU","."]
code: def scale_and_set_data(self, data, offset=None, copy=False):
      """Upload new data to the GPU."""
      # we need to call super here or we get infinite recursion
      return super().set_data(data, offset=offset, copy=copy)
  
imports: import warnings
  import numpy
  from vispy.gloo.texture import Texture2D, Texture3D, convert_dtype_and_clip
label_desc: Use image node_id 12 for calling the _ScaledTextureMixin obj's underlying member method code with example usage: obj.scale_and_set_data(data, offset, copy) and returns: super