psychopy 2025.1.1__py3-none-any.whl → 2025.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of psychopy might be problematic. Click here for more details.
- psychopy/VERSION +1 -1
- psychopy/alerts/alertsCatalogue/4810.yaml +19 -0
- psychopy/alerts/alertsCatalogue/alertCategories.yaml +4 -0
- psychopy/alerts/alertsCatalogue/alertmsg.py +15 -1
- psychopy/alerts/alertsCatalogue/generateAlertmsg.py +2 -2
- psychopy/app/Resources/classic/add_many.png +0 -0
- psychopy/app/Resources/classic/add_many@2x.png +0 -0
- psychopy/app/Resources/classic/devices.png +0 -0
- psychopy/app/Resources/classic/devices@2x.png +0 -0
- psychopy/app/Resources/classic/photometer.png +0 -0
- psychopy/app/Resources/classic/photometer@2x.png +0 -0
- psychopy/app/Resources/dark/add_many.png +0 -0
- psychopy/app/Resources/dark/add_many@2x.png +0 -0
- psychopy/app/Resources/dark/devices.png +0 -0
- psychopy/app/Resources/dark/devices@2x.png +0 -0
- psychopy/app/Resources/dark/photometer.png +0 -0
- psychopy/app/Resources/dark/photometer@2x.png +0 -0
- psychopy/app/Resources/light/add_many.png +0 -0
- psychopy/app/Resources/light/add_many@2x.png +0 -0
- psychopy/app/Resources/light/devices.png +0 -0
- psychopy/app/Resources/light/devices@2x.png +0 -0
- psychopy/app/Resources/light/photometer.png +0 -0
- psychopy/app/Resources/light/photometer@2x.png +0 -0
- psychopy/app/_psychopyApp.py +35 -13
- psychopy/app/builder/builder.py +88 -35
- psychopy/app/builder/dialogs/__init__.py +69 -220
- psychopy/app/builder/dialogs/dlgsCode.py +29 -8
- psychopy/app/builder/dialogs/paramCtrls.py +1468 -904
- psychopy/app/builder/validators.py +25 -17
- psychopy/app/coder/coder.py +12 -1
- psychopy/app/coder/repl.py +5 -2
- psychopy/app/colorpicker/__init__.py +1 -1
- psychopy/app/deviceManager/__init__.py +1 -0
- psychopy/app/deviceManager/addDialog.py +218 -0
- psychopy/app/deviceManager/dialog.py +185 -0
- psychopy/app/deviceManager/panel.py +191 -0
- psychopy/app/deviceManager/utils.py +60 -0
- psychopy/app/idle.py +7 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +12695 -10592
- psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.po +10199 -24
- psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/da_DK/LC_MESSAGE/messages.po +10199 -24
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.po +11221 -9712
- psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/el_GR/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_NZ/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_US/LC_MESSAGE/messages.po +10195 -18
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +11917 -9101
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +11924 -9103
- psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_US/LC_MESSAGE/messages.po +11917 -9101
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.po +11084 -9569
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.po +11590 -5806
- psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fi_FI/LC_MESSAGE/messages.po +10199 -24
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.po +11091 -9577
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.po +11072 -9549
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.po +11071 -9559
- psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/hu_HU/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.po +11072 -9560
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +1485 -1137
- psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ko_KR/LC_MESSAGE/messages.po +10199 -24
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.po +11463 -8757
- psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/nl_NL/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/nn_NO/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pl_PL/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +11288 -9434
- psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ro_RO/LC_MESSAGE/messages.po +10200 -25
- psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ru_RU/LC_MESSAGE/messages.po +10199 -24
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.po +11441 -8747
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.po +11069 -9545
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.po +12085 -8268
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.po +11929 -8022
- psychopy/app/plugin_manager/dialog.py +12 -3
- psychopy/app/plugin_manager/packageIndex.py +303 -0
- psychopy/app/plugin_manager/packages.py +203 -63
- psychopy/app/plugin_manager/plugins.py +120 -240
- psychopy/app/preferencesDlg.py +6 -1
- psychopy/app/psychopyApp.py +16 -4
- psychopy/app/runner/runner.py +10 -2
- psychopy/app/runner/scriptProcess.py +8 -3
- psychopy/app/stdout/stdOutRich.py +11 -4
- psychopy/app/themes/icons.py +3 -0
- psychopy/app/utils.py +61 -0
- psychopy/data/experiment.py +133 -23
- psychopy/data/routine.py +12 -0
- psychopy/data/staircase.py +42 -20
- psychopy/data/trial.py +20 -12
- psychopy/data/utils.py +42 -2
- psychopy/demos/builder/Experiments/dragAndDrop/drag_and_drop.psyexp +22 -5
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solutions.xlsx +0 -0
- psychopy/demos/builder/Experiments/stroopVoice/stroopVoice.psyexp +2 -12
- psychopy/demos/builder/Feature Demos/buttonBox/buttonBoxDemo.psyexp +3 -8
- psychopy/demos/builder/Feature Demos/movies/movie.psyexp +220 -0
- psychopy/demos/builder/Feature Demos/movies/readme.md +3 -0
- psychopy/demos/builder/Feature Demos/visualValidator/visualValidator.psyexp +1 -2
- psychopy/demos/builder/Hardware/camera/camera.psyexp +3 -16
- psychopy/demos/builder/Hardware/microphone/microphone.psyexp +3 -16
- psychopy/demos/coder/hardware/hdf5_extract.py +133 -0
- psychopy/event.py +20 -15
- psychopy/experiment/_experiment.py +86 -10
- psychopy/experiment/components/__init__.py +3 -10
- psychopy/experiment/components/_base.py +9 -20
- psychopy/experiment/components/button/__init__.py +1 -1
- psychopy/experiment/components/buttonBox/__init__.py +50 -54
- psychopy/experiment/components/camera/__init__.py +137 -359
- psychopy/experiment/components/keyboard/__init__.py +17 -24
- psychopy/experiment/components/microphone/__init__.py +61 -110
- psychopy/experiment/components/movie/__init__.py +2 -3
- psychopy/experiment/components/serialOut/__init__.py +192 -93
- psychopy/experiment/components/settings/__init__.py +45 -27
- psychopy/experiment/components/sound/__init__.py +82 -73
- psychopy/experiment/components/soundsensor/__init__.py +43 -80
- psychopy/experiment/devices.py +303 -0
- psychopy/experiment/exports.py +20 -18
- psychopy/experiment/flow.py +7 -0
- psychopy/experiment/loops.py +47 -29
- psychopy/experiment/monitor.py +74 -0
- psychopy/experiment/params.py +48 -10
- psychopy/experiment/plugins.py +28 -108
- psychopy/experiment/py2js_transpiler.py +1 -1
- psychopy/experiment/routines/__init__.py +1 -1
- psychopy/experiment/routines/_base.py +59 -24
- psychopy/experiment/routines/audioValidator/__init__.py +19 -155
- psychopy/experiment/routines/visualValidator/__init__.py +25 -25
- psychopy/hardware/__init__.py +20 -57
- psychopy/hardware/button.py +15 -2
- psychopy/hardware/camera/__init__.py +2237 -1394
- psychopy/hardware/joystick/__init__.py +1 -1
- psychopy/hardware/keyboard.py +5 -8
- psychopy/hardware/listener.py +4 -1
- psychopy/hardware/manager.py +75 -35
- psychopy/hardware/microphone.py +52 -6
- psychopy/hardware/monitor.py +144 -0
- psychopy/hardware/photometer/__init__.py +156 -117
- psychopy/hardware/serialdevice.py +16 -2
- psychopy/hardware/soundsensor.py +4 -1
- psychopy/iohub/devices/deviceConfigValidation.py +2 -1
- psychopy/iohub/devices/keyboard/darwin.py +8 -5
- psychopy/iohub/util/__init__.py +7 -8
- psychopy/localization/generateTranslationTemplate.py +208 -116
- psychopy/localization/messages.pot +4305 -3502
- psychopy/monitors/MonitorCenter.py +174 -74
- psychopy/plugins/__init__.py +6 -4
- psychopy/preferences/devices.py +80 -0
- psychopy/preferences/generateHints.py +2 -1
- psychopy/preferences/preferences.py +35 -11
- psychopy/scripts/psychopy-pkgutil.py +969 -0
- psychopy/scripts/psyexpCompile.py +1 -1
- psychopy/session.py +34 -38
- psychopy/sound/__init__.py +6 -260
- psychopy/sound/audioclip.py +164 -0
- psychopy/sound/backend_ptb.py +8 -0
- psychopy/sound/backend_pygame.py +10 -0
- psychopy/sound/backend_pysound.py +9 -0
- psychopy/sound/backends/__init__.py +0 -0
- psychopy/sound/microphone.py +3 -0
- psychopy/sound/sound.py +58 -0
- psychopy/tests/data/correctScript/python/correctNoiseStimComponent.py +1 -1
- psychopy/tests/data/duplicateHeaders.csv +2 -0
- psychopy/tests/test_app/test_builder/test_BuilderFrame.py +22 -7
- psychopy/tests/test_app/test_builder/test_CompileFromBuilder.py +0 -2
- psychopy/tests/test_data/test_utils.py +5 -1
- psychopy/tests/test_experiment/test_components/test_ButtonBoxComponent.py +22 -2
- psychopy/tests/test_hardware/test_ports.py +0 -12
- psychopy/tests/test_tools/test_stringtools.py +1 -1
- psychopy/tools/attributetools.py +12 -5
- psychopy/tools/fontmanager.py +17 -14
- psychopy/tools/movietools.py +43 -2
- psychopy/tools/stringtools.py +33 -8
- psychopy/tools/versionchooser.py +1 -1
- psychopy/validation/audio.py +5 -1
- psychopy/validation/visual.py +5 -1
- psychopy/visual/basevisual.py +8 -7
- psychopy/visual/circle.py +2 -2
- psychopy/visual/image.py +29 -109
- psychopy/visual/movies/__init__.py +1800 -313
- psychopy/visual/polygon.py +4 -0
- psychopy/visual/shape.py +2 -2
- psychopy/visual/window.py +34 -11
- psychopy/voicekey/__init__.py +41 -669
- psychopy/voicekey/labjack_vks.py +7 -48
- psychopy/voicekey/parallel_vks.py +7 -42
- psychopy/voicekey/vk_tools.py +114 -263
- {psychopy-2025.1.1.dist-info → psychopy-2025.2.1.dist-info}/METADATA +17 -11
- {psychopy-2025.1.1.dist-info → psychopy-2025.2.1.dist-info}/RECORD +216 -184
- {psychopy-2025.1.1.dist-info → psychopy-2025.2.1.dist-info}/WHEEL +1 -1
- psychopy/visual/movies/players/__init__.py +0 -62
- psychopy/visual/movies/players/ffpyplayer_player.py +0 -1401
- psychopy/voicekey/demo_vks.py +0 -12
- psychopy/voicekey/signal.py +0 -42
- {psychopy-2025.1.1.dist-info → psychopy-2025.2.1.dist-info}/entry_points.txt +0 -0
- {psychopy-2025.1.1.dist-info → psychopy-2025.2.1.dist-info}/licenses/LICENSE +0 -0
psychopy/visual/image.py
CHANGED
|
@@ -249,10 +249,10 @@ class ImageStim(BaseVisualStim, DraggingMixin, ContainerMixin, ColorMixin,
|
|
|
249
249
|
|
|
250
250
|
# If our image is a movie stim object, pull pixel data from the most
|
|
251
251
|
# recent frame and write it to the memory
|
|
252
|
-
if hasattr(self.image, '
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
252
|
+
if hasattr(self.image, 'colorTexture'):
|
|
253
|
+
if hasattr(self.image, 'update'):
|
|
254
|
+
self.image.update()
|
|
255
|
+
self._texID = self.image.colorTexture
|
|
256
256
|
|
|
257
257
|
if win.USE_LEGACY_GL:
|
|
258
258
|
self._drawLegacyGL(win)
|
|
@@ -313,90 +313,6 @@ class ImageStim(BaseVisualStim, DraggingMixin, ContainerMixin, ColorMixin,
|
|
|
313
313
|
GL.glBindTexture(GL.GL_TEXTURE_2D, 0)
|
|
314
314
|
GL.glDisable(GL.GL_TEXTURE_2D)
|
|
315
315
|
|
|
316
|
-
def _movieFrameToTexture(self, movieSrc):
|
|
317
|
-
"""Convert a movie frame to a texture and use it.
|
|
318
|
-
|
|
319
|
-
This method is used internally to copy pixel data from a camera object
|
|
320
|
-
into a texture. This enables the `ImageStim` to be used as a
|
|
321
|
-
'viewfinder' of sorts for the camera to view a live video stream on a
|
|
322
|
-
window.
|
|
323
|
-
|
|
324
|
-
Parameters
|
|
325
|
-
----------
|
|
326
|
-
movieSrc : `~psychopy.hardware.camera.Camera`
|
|
327
|
-
Movie source object.
|
|
328
|
-
|
|
329
|
-
"""
|
|
330
|
-
# get the most recent video frame and extract color data
|
|
331
|
-
colorData = movieSrc.colorData
|
|
332
|
-
|
|
333
|
-
# get the size of the movie frame and compute the buffer size
|
|
334
|
-
vidWidth, vidHeight = movieSrc.size
|
|
335
|
-
nBufferBytes = vidWidth * vidHeight * 3
|
|
336
|
-
|
|
337
|
-
# bind pixel unpack buffer
|
|
338
|
-
GL.glBindBuffer(GL.GL_PIXEL_UNPACK_BUFFER, self._pixbuffID)
|
|
339
|
-
|
|
340
|
-
# Free last storage buffer before mapping and writing new frame
|
|
341
|
-
# data. This allows the GPU to process the extant buffer in VRAM
|
|
342
|
-
# uploaded last cycle without being stalled by the CPU accessing it.
|
|
343
|
-
GL.glBufferData(
|
|
344
|
-
GL.GL_PIXEL_UNPACK_BUFFER,
|
|
345
|
-
nBufferBytes * ctypes.sizeof(GL.GLubyte),
|
|
346
|
-
None,
|
|
347
|
-
GL.GL_STREAM_DRAW)
|
|
348
|
-
|
|
349
|
-
# Map the buffer to client memory, `GL_WRITE_ONLY` to tell the
|
|
350
|
-
# driver to optimize for a one-way write operation if it can.
|
|
351
|
-
bufferPtr = GL.glMapBuffer(
|
|
352
|
-
GL.GL_PIXEL_UNPACK_BUFFER,
|
|
353
|
-
GL.GL_WRITE_ONLY)
|
|
354
|
-
|
|
355
|
-
bufferArray = numpy.ctypeslib.as_array(
|
|
356
|
-
ctypes.cast(bufferPtr, ctypes.POINTER(GL.GLubyte)),
|
|
357
|
-
shape=(nBufferBytes,))
|
|
358
|
-
|
|
359
|
-
# copy data
|
|
360
|
-
bufferArray[:] = colorData[:]
|
|
361
|
-
|
|
362
|
-
# Very important that we unmap the buffer data after copying, but
|
|
363
|
-
# keep the buffer bound for setting the texture.
|
|
364
|
-
GL.glUnmapBuffer(GL.GL_PIXEL_UNPACK_BUFFER)
|
|
365
|
-
|
|
366
|
-
# bind the texture in OpenGL
|
|
367
|
-
GL.glEnable(GL.GL_TEXTURE_2D)
|
|
368
|
-
GL.glActiveTexture(GL.GL_TEXTURE0)
|
|
369
|
-
GL.glBindTexture(GL.GL_TEXTURE_2D, self._texID)
|
|
370
|
-
|
|
371
|
-
# copy the PBO to the texture
|
|
372
|
-
GL.glPixelStorei(GL.GL_UNPACK_ALIGNMENT, 1)
|
|
373
|
-
GL.glTexSubImage2D(
|
|
374
|
-
GL.GL_TEXTURE_2D, 0, 0, 0,
|
|
375
|
-
vidWidth, vidHeight,
|
|
376
|
-
GL.GL_RGB,
|
|
377
|
-
GL.GL_UNSIGNED_BYTE,
|
|
378
|
-
0) # point to the presently bound buffer
|
|
379
|
-
|
|
380
|
-
# update texture filtering only if needed
|
|
381
|
-
if self.interpolate:
|
|
382
|
-
texFilter = GL.GL_LINEAR
|
|
383
|
-
else:
|
|
384
|
-
texFilter = GL.GL_NEAREST
|
|
385
|
-
|
|
386
|
-
GL.glTexParameteri(
|
|
387
|
-
GL.GL_TEXTURE_2D,
|
|
388
|
-
GL.GL_TEXTURE_MAG_FILTER,
|
|
389
|
-
texFilter)
|
|
390
|
-
GL.glTexParameteri(
|
|
391
|
-
GL.GL_TEXTURE_2D,
|
|
392
|
-
GL.GL_TEXTURE_MIN_FILTER,
|
|
393
|
-
texFilter)
|
|
394
|
-
|
|
395
|
-
# important to unbind the PBO
|
|
396
|
-
GL.glBindBuffer(GL.GL_PIXEL_UNPACK_BUFFER, 0)
|
|
397
|
-
GL.glBindTexture(GL.GL_TEXTURE_2D, 0)
|
|
398
|
-
GL.glDisable(GL.GL_TEXTURE_2D)
|
|
399
|
-
|
|
400
316
|
@attributeSetter
|
|
401
317
|
def image(self, value):
|
|
402
318
|
"""The image file to be presented (most formats supported).
|
|
@@ -411,34 +327,38 @@ class ImageStim(BaseVisualStim, DraggingMixin, ContainerMixin, ColorMixin,
|
|
|
411
327
|
"""
|
|
412
328
|
self.__dict__['image'] = self._imName = value
|
|
413
329
|
|
|
414
|
-
# If given a color array, get it in rgb1
|
|
415
|
-
if isinstance(value, colors.Color):
|
|
416
|
-
value = value.render('rgb1')
|
|
417
|
-
|
|
418
330
|
wasLumImage = self.isLumImage
|
|
419
|
-
if
|
|
420
|
-
|
|
421
|
-
|
|
331
|
+
if hasattr(value, 'colorTexture'):
|
|
332
|
+
# reference to object that provides texture data
|
|
333
|
+
value = value.colorTexture
|
|
422
334
|
datatype = GL.GL_UNSIGNED_BYTE
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
self.isLumImage = True
|
|
335
|
+
self.isLumImage = hasattr(value, 'isLumImage') and value.isLumImage
|
|
336
|
+
self.flipVert = True
|
|
426
337
|
else:
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
338
|
+
# If given a color array, get it in rgb1
|
|
339
|
+
if isinstance(value, colors.Color):
|
|
340
|
+
value = value.render('rgb1')
|
|
341
|
+
|
|
342
|
+
if type(value) != numpy.ndarray and value == "color":
|
|
343
|
+
datatype = GL.GL_FLOAT
|
|
344
|
+
else:
|
|
345
|
+
datatype = GL.GL_UNSIGNED_BYTE
|
|
346
|
+
|
|
347
|
+
if type(value) != numpy.ndarray and value in (None, "None", "none"):
|
|
348
|
+
self.isLumImage = True
|
|
349
|
+
else:
|
|
350
|
+
self.isLumImage = self._createTexture(
|
|
351
|
+
value, id=self._texID,
|
|
352
|
+
stim=self,
|
|
353
|
+
pixFormat=GL.GL_RGB,
|
|
354
|
+
dataType=datatype,
|
|
355
|
+
maskParams=self.maskParams,
|
|
356
|
+
forcePOW2=False,
|
|
357
|
+
wrapping=False)
|
|
435
358
|
|
|
436
359
|
# update size
|
|
437
360
|
self.size = self._requestedSize
|
|
438
361
|
|
|
439
|
-
if hasattr(value, 'getVideoFrame'): # make sure we invert vertices
|
|
440
|
-
self.flipVert = True
|
|
441
|
-
|
|
442
362
|
# if we switched to/from lum image then need to update shader rule
|
|
443
363
|
if wasLumImage != self.isLumImage:
|
|
444
364
|
self._needUpdate = True
|