WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   force screen refresh/update? (https://forum.worldviz.com/showthread.php?t=5139)

johnallen 08-18-2014 04:24 AM

force screen refresh/update?
 
Hi,

I have

Code:

gScreenTextObj = viz.addText3D('',parent=viz.SCREEN, pos=( 0, 0, 0 ) )
and then later in a function that was called following a key press using vizact.onkeydown()

Code:

gScreenTextObj.message = "asdf"
Is there anyway I can force the screen update to take place (displaying the new text 'asdf')? At present it waits until the function ends and flow returns to the main loop.

thanks,

John

Jeff 08-18-2014 02:28 PM

Can you post example code that reproduces the issue?

johnallen 08-19-2014 01:49 AM

Quote:

Originally Posted by Jeff (Post 16470)
Can you post example code that reproduces the issue?

pressing '1' displays a message, pressing '2' clears it, however it blocks waiting for the keyboard input on the viz.input() call.

i would like to flush the screen update before blocking for the keyboard input if possible.

Thanks,
John

Code:

import viz, vizconnect, vizact, vizinput, viztask

viz.setMultiSample(4)
gScreenTextObj = None

def keyPressed_1():
    global gScreenTextObj
    gScreenTextObj.message("1 pressed")

def keyPressed_2():
    global gScreenTextObj
    gScreenTextObj.message("") # try to clear the message
    gCurrentPID = int( vizinput.input("Enter ID : "))
    gGAB = vizinput.choose( "Gender: ", ['Male', 'Female'] )

def exitExperiment():
    viz.quit()
   
def vizconn_kbd_mouse():
        vizconnect.go('vizconnect_kbd_mouse_monitor.py')

def experiment():
    global gTracker, gScreenTextObj

    vizconn_kbd_mouse()
    gTracker = vizconnect.getTracker('mouse_and_keyboard_walking')
    room = viz.add('room4.osgb')
   
    vizact.onkeydown('x', exitExperiment )
    vizact.onkeydown('1', keyPressed_1 )
    vizact.onkeydown('2', keyPressed_2 )
   
    gScreenTextObj = viz.addText3D('',parent=viz.SCREEN, pos=( 0, 0, 0 ) ) #write on screen messages here
   
# We've defined all our functions, now lets start our experiment!
viztask.schedule(experiment)


roobert 08-19-2014 07:02 AM

I had the same problem, I solve it by starting the message variable in this way

Quote:

#starting variable
gScreenTextObj = vizinfo.add( "" )

#change the valor
def keyPressed_1():
global gScreenTextObj
gScreenTextObj.message('1 pressed')

vizact.onkeydown('1', keyPressed_1 )


All times are GMT -7. The time now is 01:09 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC