code: def _set_projection(self, size):
      width, height = size
      set_viewport(0, 0, width, height)
      projection = perspective(30.0, width / float(height), 2.0, 10.0)
      self.cube["projection"] = projection
  
file_path: vispy/examples/gloo/post_processing.py
imports: import numpy
  from vispy import app
  from vispy.geometry import create_cube
  from vispy.util.transforms import perspective, translate, rotate
  from vispy.gloo import Program, VertexBuffer, IndexBuffer, Texture2D, clear, FrameBuffer, RenderBuffer, set_viewport, set_state
label_desc: Use image node_id 4 for calling the Canvas obj's underlying member method code with example usage: obj._set_projection(size) without return types