Docs @ Psychtoolbox Wiki : DrawTexture

Search PTB Function help:
homepsychtoolbox.orgpage updateslogin

Screen('DrawTexture')

PsychtoolboxScreen.{mex*,dll} subfunction

Usage
Screen('DrawTexture', windowPointer, texturePointer [,sourceRect] [,destinationRect] [,rotationAngle] [, filterMode] [, globalAlpha] [, modulateColor] [, textureShader] [, specialFlags] [, auxParameters]);

Draw the texture specified via 'texturePointer' into the target window specified
via 'windowPointer'. In the the OS X Psychtoolbox textures replace offscreen
windows for fast drawing of images during animation.'sourceRect' specifies a
rectangular subpart of the texture to be drawn (Defaults to full texture).
'destinationRect' defines the rectangular subpart of the window where the
texture should be drawn. This defaultsto centered on the screen. 'rotationAngle'
Specifies a rotation angle in degree for rotated drawing of the texture
(Defaults to 0 deg. = upright). 'filterMode' How to compute the pixel color
values when the texture is drawn magnified, minified or drawn shifted, e.g., if
sourceRect and destinationRect do not have the same size or if sourceRect
specifies fractional pixel values. 0 = Nearest neighbour filtering, 1 = Bilinear
filtering - this is the default. 'globalAlpha' A global alpha transparency value
to apply to the whole texture for blending. Range is 0 = fully transparent to 1
= fully opaque, defaults to one. If both, an alpha-channel and globalAlpha are
provided, then the final alpha is the product of both values. 'modulateColor',
if provided, overrides the 'globalAlpha' value. If 'modulateColor' is specified,
the 'globalAlpha' value will be ignored. 'modulateColor' will be a global color
that gets applied to the texture as a whole, i.e., it modulates each color
channel. E.g., modulateColor = [128 255 0] would leave the green- and
alpha-channel untouched, but it would multiply the blue channel with 0 - set it
to zero blue intensity, and it would multiply each texel in the red channel by
128/255 - reduce its intensity to 50%. The most interesting application of
'modulateColor' is drawing of arbitrary complex shapes of selectable color:
Simply generate an all-white luminance texture of arbitrary shape, possibly with
alpha channel, then draw it with 'modulateColor' set to the wanted color and
global alpha value.
'textureShader' (optional): If you provide a valid handle of a GLSL shader, this
shader will be applied to the texture during drawing. If the texture already has
a shader assigned (via Screen('MakeTexture') or automatically by PTB for some
reason), then the shader provided here as 'textureShader' will silently override
the shader assigned earlier. Application of shaders this way is mostly useful
for application of simple single-pass image processing operations to a texture,
e.g., a simple blur or a deinterlacing operation for a video texture. If you
intend to use this texture multiple times or if you need more complex image
processing, e.g., multi-pass operations, better use the
Screen('TransformTexture') command. It allows for complex operations to be
applied and is more flexible.
'specialFlags' optional argument: Allows to pass a couple of special flags to
influence the drawing. The flags can be combined by mor() ing them together. A
value of kPsychUseTextureMatrixForRotation will use a different mode of
operation for drawing of rotated textures, where the drawn 'dstRect' texture
rectangle is always upright, but texels are retrieved at rotated positions, as
if the 'srcRect' rectangle would be rotated. If you set a value of
kPsychDontDoRotation then the rotation angle will not be used to rotate the
texture. Instead it will be passed to a bount texture shader (if any), which is
free to interpret the 'rotationAngle' parameters is it wants - e.g., to
implement custom texture rotation.
'auxParameters' optional argument: If this is set as a vector with at least 4
components, and a multiple of four components, then these values are passed to a
shader (if any is bound) as 'auxParameter0....n'. The current implementation
supports at most 32 values per draw call. This is mostly useful when drawing
procedural textures if one needs to pass more additional parameters to define
the texture than can fit into other parameter fields. See 'help
ProceduralShadingAPI' for more info.
If you want to draw many textures to the same onscreen- or offscreen window, use
the function Screen('DrawTextures'). It accepts the same arguments as this
function, but is optimized to draw many textures in one call.


Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0692 seconds