VisionEgg.Core.Screen

Package VisionEgg :: Module Core :: Class Screen |
[frames] | no frames]

# Class Screen

source code

             object --+
                      |
    ClassWithParameters --+
                          |
                         Screen

    An OpenGL window, possibly displayed across multiple displays.

    A Screen instance is an OpenGL window for the Vision Egg to draw
    in.  For an instance of Screen to do anything useful, it must
    contain one or more instances of the Viewport class and one or
    more instances of the Stimulus class.

    Currently, only one OpenGL window is supported by the library with
    which the Vision Egg initializes graphics (pygame/SDL).  However,
    this need not limit display to a single physical display device.
    Many video drivers, for example, allow applications to treat two
    separate monitors as one large array of contiguous pixels.  By
    sizing a window such that it occupies both monitors and creating
    separate viewports for the portion of the window on each monitor,
    a multiple screen effect can be created.

    Public read-only variables
    ==========================
    size -- Tuple of 2 integers specifying width and height

    Parameters
    ==========
    bgcolor -- background color (AnyOf(Sequence3 of Real or Sequence4 of Real))
               Default: (0.5, 0.5, 0.5, 0.0)

    Constant Parameters
    ===================
    alpha_bits          -- number of bits per pixel for alpha channel. Can be set with VISIONEGG_REQUEST_ALPHA_BITS (UnsignedInteger)
                           Default: (determined at runtime)
    blue_bits           -- number of bits per pixel for blue channel. Can be set with VISIONEGG_REQUEST_BLUE_BITS (UnsignedInteger)
                           Default: (determined at runtime)
    double_buffer       -- use double buffering? Can be set with VISIONEGG_DOUBLE_BUFFER (Boolean)
                           Default: (determined at runtime)
    frameless           -- remove standard window frame? Can be set with VISIONEGG_FRAMELESS_WINDOW (Boolean)
                           Default: (determined at runtime)
    fullscreen          -- use full screen? Can be set with VISIONEGG_FULLSCREEN (Boolean)
                           Default: (determined at runtime)
    green_bits          -- number of bits per pixel for green channel. Can be set with VISIONEGG_REQUEST_GREEN_BITS (UnsignedInteger)
                           Default: (determined at runtime)
    hide_mouse          -- hide the mouse cursor? Can be set with VISIONEGG_HIDE_MOUSE (Boolean)
                           Default: (determined at runtime)
    is_stereo           -- allocate stereo framebuffers? Can be set with VISIONEGG_REQUEST_STEREO (Boolean)
                           Default: (determined at runtime)
    maxpriority         -- raise priority? (platform dependent) Can be set with VISIONEGG_MAXPRIORITY (Boolean)
                           Default: (determined at runtime)
    multisample_samples -- preferred number of multisamples for FSAA (UnsignedInteger)
                           Default: (determined at runtime)
    preferred_bpp       -- preferred bits per pixel (bit depth) Can be set with VISIONEGG_PREFERRED_BPP (UnsignedInteger)
                           Default: (determined at runtime)
    red_bits            -- number of bits per pixel for red channel. Can be set with VISIONEGG_REQUEST_RED_BITS (UnsignedInteger)
                           Default: (determined at runtime)
    size                -- size (units: pixels) Can be set with VISIONEGG_SCREEN_W and VISIONEGG_SCREEN_H (Sequence2 of Real)
                           Default: (determined at runtime)
    sync_swap           -- synchronize buffer swaps to vertical sync? Can be set with VISIONEGG_SYNC_SWAP (Boolean)
                           Default: (determined at runtime)

Instance Methods
__init__(self, **kw) Create self.parameters and set values. | source code
get_size(self) | source code
set_size(self, value) | source code
get_framebuffer_as_image(self, buffer='back', format=gl.GL_RGB, position=(0,0), anchor='lowerleft', size=None) get pixel values from framebuffer to PIL image | source code
get_framebuffer_as_array(self, buffer='back', format=gl.GL_RGB, position=(0,0), anchor='lowerleft', size=None) get pixel values from framebuffer to Numeric array | source code
put_pixels(self, pixels=None, position=(0,0), anchor='lowerleft', scale_x=1.0, scale_y=1.0, texture_min_filter=gl.GL_NEAREST, texture_mag_filter=gl.GL_NEAREST, internal_format=gl.GL_RGB) Put pixel values to screen. | source code
query_refresh_rate(self) | source code
measure_refresh_rate(self, average_over_seconds=0.1) Measure the refresh rate. | source code
clear(self) Called by Presentation instance. | source code
make_current(self) Called by Viewport instance. | source code
set_gamma_ramp(self, *args, **kw) Set the gamma_ramp, if supported. | source code
close(self) Close the screen. | source code
__del__(self) | source code
Inherited from `ClassWithParameters`: `__getstate__`, `__setstate__`, `get_specified_type`, `is_constant_parameter`, `set`, `verify_parameters` Inherited from `object`: `__delattr__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__str__`

Static Methods
create_default() Alternative constructor using configuration variables. | source code

Class Variables
| parameters_and_defaults = `VisionEgg.ParameterDefinition({'bgco`...``
| constant_parameters_and_defaults = `VisionEgg.ParameterDefiniti`...``
| size = `property(get_size, set_size)`
Inherited from `ClassWithParameters`: `__safe_for_unpickling__`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self, **kw) (Constructor) | source code
    Create self.parameters and set values.
Overrides: ClassWithParameters.__init__ (inherited documentation)

### put_pixels(self, pixels=None, position=(0,0), anchor='lowerleft', scale_x=1.0, scale_y=1.0, texture_min_filter=gl.GL_NEAREST, texture_mag_filter=gl.GL_NEAREST, internal_format=gl.GL_RGB) | source code
    Put pixel values to screen.

    Pixel values become texture data using the VisionEgg.Textures
    module.  Any source of texture data accepted by that module is
    accepted here.

    This function could be sped up by allocating a fixed OpenGL texture object.

### measure_refresh_rate(self, average_over_seconds=0.1) | source code
    Measure the refresh rate. Assumes swap buffers synced.

### clear(self) | source code
    Called by Presentation instance. Clear the screen.

### make_current(self) | source code
    Called by Viewport instance. Makes screen active for drawing.

    Can not be implemented until multiple screens are possible.

### set_gamma_ramp(self, *args, **kw) | source code
    Set the gamma_ramp, if supported.

    Call pygame.display.set_gamma_ramp, if available.

    Returns True on success, False otherwise.

### close(self) | source code
    Close the screen.

    You can call this to close the screen.  Not necessary during
    normal operation because it gets automatically deleted.

### create_default() Static Method | source code
    Alternative constructor using configuration variables.

    Most of the time you can create and instance of Screen using
    this method.  If your script needs explicit control of the
    Screen parameters, initialize with the normal constructor.

    Uses VisionEgg.config.VISIONEGG_GUI_INIT to determine how the
    default screen parameters should are determined.  If this
    value is 0, the values from VisionEgg.cfg are used.  If this
    value is 1, a GUI panel is opened and allows manual settings
    of the screen parameters.

Class Variable Details

  ### parameters_and_defaults Value:
      VisionEgg.ParameterDefinition({'bgcolor':((0.5, 0.5, 0.5, 0.0), ve_typ
      es.AnyOf(ve_types.Sequence3(ve_types.Real), ve_types.Sequence4(ve_type
      s.Real)), 'background color',),})

  ### constant_parameters_and_defaults Value:
      VisionEgg.ParameterDefinition({'size':(None, ve_types.Sequence2(ve_typ
      es.Real), 'size (units: pixels) Can be set with VISIONEGG_SCREEN_W and
       VISIONEGG_SCREEN_H'), 'fullscreen':(None, ve_types.Boolean, 'use full
       screen? Can be set with VISIONEGG_FULLSCREEN'), 'double_buffer':(None
      , ve_types.Boolean, 'use double buffering? Can be set with VISIONEGG_D
      OUBLE_BUFFER'), 'preferred_bpp':(None, ve_types.UnsignedInteger, 'pref
      erred bits per pixel (bit depth) Can be set with VISIONEGG_PREFERRED_B
      PP'), 'maxpriority':(None, ve_types.Boolean, 'raise priority? (platfor
      ...