FreeWRL

 view release on metacpan or  search on metacpan

JS/js/ChangeLog  view on Meta::CPAN

  - ECMAv1 fix: fixed function length for Date setters.
  - Bug workaround: avoid MSVC optimizer bug in Date.
  - Y2K fix: Use the verbose '%#c' date formatter for toLocaleString
    on windows, to get a 4 digit date.

- New thread safety fixes from bjorn:

  - Added more asserts to catch cases where the thread
  identifier stored in the context is out of synch with the current
  thread. JS_ATOMIC_ADDREF now calls a function instead of a
  macro, so that when compare-and-swap is implemented using busy-wait
  (e.g. SPARC v8), we avoid being confused by the busy value. For the same
  reason, we now call AtomicRead at certain places in jslock.c. Finally, the
  environment variable JS_NO_THIN_LOCKS, when set, effectively turns off
  the thin locks so that all locking is done using NSPR only.

- ECMAv1 numeric fixes: print preceding 0 when formatting 0.4, ignore supplied
  radix to Number.prototype.toString when printing non-finite numbers.
	
Tag JSREF_RELEASE_19980403 (4/3/98):

- API renaming: JS_NewRuntime for JS_Init, JS_DestroyRuntime for JS_Finish

JS/js/lock_SunOS.s  view on Meta::CPAN

!     %o0  [input]   - the address of the value to increment
!     %o1  [input]   - the old value to compare with	
!     %o2  [input]   - the new value to set for [%o0]
!     %o3  [local]   - work register
!  -----------------------
#ifndef ULTRA_SPARC
!  v8	

        ENTRY(compare_and_swap)         ! standard assembler/ELF prologue

	mov -1,%o3                      ! busy flag
	swap [%o0],%o3                  ! get current value
l1:	tst %o3                         ! busy?
	bneg,a l1                       ! if so, spin
	swap [%o0],%o3                  ! using branch-delay to swap back value
	cmp %o1,%o3                     ! compare old with current
	be,a l2                         ! if equal then swap in new value
	swap [%o0],%o2                  ! done.
	swap [%o0],%o3                  ! otherwise, swap back current value
	retl
	mov 0,%o0                       ! return false
l2:	retl
	mov 1,%o0                       ! return true

tests/8.wrl  view on Meta::CPAN

DEF TS TimeSensor {
	cycleInterval 3
	loop FALSE
}


DEF SCR Script {
	eventIn SFTime startTimeLeft
	eventIn SFTime startTimeRight
	eventOut SFTime startTime
	eventIn SFBool busy
	field SFBool isBusy FALSE
	field SFBool left TRUE
	field SFNode interp 
		DEF PI PositionInterpolator {
			key [0 0.2 0.4 0.6 0.8 1] 
			keyValue [0 0 0 
				  0 0 0
				  0 0 0
				  0 0 0
 				  0 0 0
				   0 0 0]
		}
	url [
	# xxx1: $t = "this", tied object
	"javascript:
		function busy(val,time) { isBusy = busy }
		function startTimeLeft(val,time) {
			// if(!isBusy && left) {
			if(left) {
				interp.keyValue = new MFVec3f(
				 new SFVec3f(-2,0,0),
				 new SFVec3f(-0.5,0,0),
				 new SFVec3f(0.5,0,0),
				 new SFVec3f(1.2,0,0),
				 new SFVec3f(1.7,0,0),
				 new SFVec3f(2,0,0)

tests/8.wrl  view on Meta::CPAN

				 new SFVec3f(-2,0,0)
				);
				startTime = val;
				left = !left;
			}
		}
	"
#	"perl_tjl_xxx1:
#		startTimeLeft => sub {
#			print 'SCRIPT_INSIDE LEFT:',$t->{left},'X, INTERP: ',$t->{interp},'\n';
#			if(!$t->{busy} && $t->{left}) {
#				# xxx1 uses tied hashes
#				$t->{interp}{RFields}{keyValue} = [
#					[-2, 0, 0 ],
#					 [ -0.5, 0, 0], 
#					 [ 0.5, 0, 0],
#					  [1.2, 0, 0],
#					  [1.7, 0, 0],
#					   [2, 0, 0]
#					];
#				$t->{startTime} = $t->{startTimeLeft};
#				$t->{left} = !$t->{left};
#			}
#		},
#		startTimeRight => sub {
#			print 'SCRIPT_INSIDERIGHT LEFT:',$t->{left},'X, INTERP: ',$t->{interp},'\n';
#			if(!$t->{busy} && !$t->{left}) {
#				$t->{interp}{RFields}{keyValue} = [
#					[2, 0, 0 ],
#					 [ 0.5, 0, 0], 
#					 [ -0.5, 0, 0],
#					  [-1.2, 0, 0],
#					  [-1.7, 0, 0],
#					   [-2, 0, 0]
#				];
#				$t->{startTime} = $t->{startTimeRight};
#				$t->{left} = !$t->{left};
#			}
#		}
#	"
	]
}

]
}

ROUTE TS.isActive TO SCR.busy
ROUTE A1.touchTime TO SCR.startTimeLeft
ROUTE A2.touchTime TO SCR.startTimeRight
ROUTE SCR.startTime TO TS.startTime
ROUTE TS.fraction_changed TO PI.set_fraction
ROUTE PI.value_changed TO BT.translation
}


Transform {
# rotation -1 1 0 1.0



( run in 0.271 second using v1.01-cache-2.11-cpan-87723dcf8b7 )