news 2014

Table of Contents:

1. August, 17th (v0.9.18.0)
added: new tks-setup.exe and Win32 binary snapshots, also see Windows 2000/XP/Vista/Win7 32bit
fixed: tks: postpone deletion of TKS_Compiler instance to shutdown ( instead of immediately after module parse error )
fixed: tks: fixed memory leak in assignment of array object value(s) to script class member (f = [x, y])
fixed: tks: cygwin build (swapped #ifdef YAC_TLS to #ifndef YAC_FORCE_NO_TLS)
fixed: tks: fixed dynamic var assignment to self (don't unset when RHS value references same object)
fixed: tks: in case an error occured, postpone cleanup until all vars have been freed (e.g. do not delete classdecl before class instance)
fixed: tks: removed 16mb String size limitation ( yep, it was a bad idea to use bits 24..31 for flags. now there's a dedicated flags field )
fixed: tks: findLogic found wrong files after merging .tsls. Files are now prefixed with tsl name, e.g. plugins.tks becomes ui.tsl:plugins.tks.
fixed: tks: fixed crash when an input file is not found while creating a .tkx/.tsl pakfile
fixed: tks: fixed a couple of gcc 4.x compiler warnings (YAC_StreamBase.cpp pointer aliasing + some other minor stuff)
fixed: tks: fixed YAC_String::sum() method (now in sync now w/ YAC genKey() (algo changed a while ago..))
fixed: tks: remove callbacks after unloading plugins
fixed: tks: HashTable.getReparsableString() : always enclose key in \"\"
fixed: tks: don't statically initialize local object vars
fixed: tks: update classdecl src_loc when class is actually declared ( fixes misleading stacktrace when static class initializers are run; src_loc was set to location of first use of class in previous versions )
changed: tks: increased maximum number of class members from 128 to 192
changed: tks: increased max. number of temp. modules from 64 to 256
changed: tks: increased TKS_MAX_EXT_C_FUNCTIONS from 256 to 768
changed: tks: increased max. lines/module from 12000 to 16000
changed: tks: increased max. number of tokens/module from 60000 to 80000
changed: tks: prepend logic pakfile name with configuration.tkp_dir even when it contains a dir separator "/" (but not as first char)
changed: tks: Thread.getId() now returns LWP id instead of pthread handle (Linux)
changed: tks: remove unused JIT opcodes (from 263 down to 187)
changed: tks: removed JIT stack return hack (assumed cdecl)
added: tks: added Stream.getU8(), Stream.getS8(), Stream.getU16(), Stream.getS16() ( old getI16 was signed while getI8 was unsigned ). Also see test_stream_signed.tks.
added: tks: concatenate arrays (IntArray.join(), FloatArray.join(), PointerArray.joinArrays(), PointerArray.joinCC(), PointerArray.joinCR(), PointerArray.joinCD(), PointerArray.joinRR(), PointerArray.joinRC(), PointerArray.joinRD(), PointerArray.joinDD(), PointerArray.joinDC(), PointerArray.joinDR(), ValueArray.joinArrays(), , ValueArray.joinCC(), ValueArray.joinCR(), ValueArray.joinCD(), ValueArray.joinRR(), ValueArray.joinRC(), ValueArray.joinRD(), ValueArray.joinDD(), ValueArray.joinDC(), ValueArray.joinDR(), StringArray.join() ). (C=copy, R=reference, D=deref (unlink)). Default action for operator "+" is join() (copy). Also see join.tks.
added: tks: added mathClampi(), mathWrapi()
added: tks: [project] attribute dataprefix (sets logic name prefix for non-tks pakfile entries, e.g. "tkui:"). Also see tks-examples/test_dataprefix.
added: tks: support for home: prefix in project file entries ( e.g. 'home:st2_config.tks' )
added: tks: added String.getDebugString()
added: tks: added TKS.getTksApplicationPath()
added: tks: added TKS.getTksLibraryPath()
added: tks: added TKS.getTksModulePath()
added: tks: added TKS.getTksPluginPath()
added: tks: added TKS.getHomeDir()
added: tks: FloatArray.sum()
added: tks: rgba_4b expr ( ensures r,g,b,a byte order when resulting integer is written to memory ). Also see rgba_4b.tks.
added: tks: ARMv7 JIT backend (tested on Cortex A8 / Open Pandora)
added: tks: added JIT support for break ( while, do..while, for, loop, foreach ). Also see jit_break.tks.
fixed: tksdl: fix TKSDL_FULLFRAME which did not work correctly when FPS.tickInterval wasn't set to default (1000.0/60)
changed: tksdl: rewrite onIdle loop / replaced with timers ( send signal to SDL thread when timer expires. uses WaitForSingleObject on Windows and timerfd API on Linux )
changed: tksdl: send user event when Viewport.needRedraw() is called
changed: tksdl: renamed signal callback onReopen() to onOpen()
changed: tksdl: renamed signal callback onExit() to onClose()
added: tksdl: SDL.setTimerInterval() (0 to disable timer thread [default])
added: tksdl: added open/close window hooks (see tksdl_hooks.h) ( used to call plugin init/exit code (e.g. tkopengl shaders) )
added: tksdl: TKSDL_VIEWSIZE env var., e.g. $ export TKSDL_VIEWSIZE="320;240".
added: tksdl: OMAP3 support (Open Pandora)
fixed: tkopengl: Texture.loadImage() / Texture.loadLocalImage() (PNG) did not free stream object when file could not be opened
fixed: tkopengl: ATI/AMD shader workarounds ( probably only relevant to older drivers, e.g. glGetAttribLocation() is broken on my Linux notebook )
fixed: tkopengl: updated man page links
changed: tkopengl: zglInitOrtho() : invert sign of bottom/top parameters
added: tkopengl: added OpenGL (ES 2) desktop GL emulation (supports immediate mode, matrix functions, texture rectangle, fog, light, texenv, alphafunc, point sprites, quads, polygonmode, drawelements). This is not a complete emulation but it's good enough to run tkui and various other apps/games. The API emulator is also accessible from native code plugins via tkopengl/tkopengl_shared.h. It has been tested on Windows (NVidia,Intel,AMD), Linux (ATI/AMD), and Open Pandora (PowerVR).
added: tkopengl: added "tkopengl_shared" function table
added: tkopengl: glColorMaterial(), GL_AMBIENT, GL_DIFFUSE, GL_AMBIENT_AND_DIFFUSE, GL_EMISSION, GL_SPECULAR constants
added: tkopengl: zglLightModelColorControl(), GL_SINGLE_COLOR, GL_SEPARATE_SPECULAR_COLOR constants
added: tkopengl: zglFogAlphaMode()(GLenum mode) ( only available when tkopengl is compiled with -DDX_EMU_FOG. supported modes are GL_REPLACE, GL_BLEND, GL_MULT )
added: tkopengl: Texture GL_TEXTURE_RECTANGLE bind/upload; auto-add TEX_CLAMPTOEDGE_S / TEX_CLAMPTOEDGE_T flags
added: tkopengl: Texture.enable(), Texture.disable() utility methods ( call glEnable(), glDisable() )
fixed: tkui: vertical alignment (e.g. align=centerY) for left/right/up/down layers in ui::SuperBorderLayout
fixed: tkui: pass bClicked arg. to ui::TableViewData.selectRowUnderMouse() to prevent sending both ROWCLICKED and SHOWCONTEXTMENU when handling a RMB down event (in ui::TableViewData.editColumnUnderMouse())
fixed: tkui: support for big fonts (ui::Label, ui::Button, ui::TabbedView, ui::TitledPanel, ui::TextField, ui::ComboBox, ui::CheckBox, ..)
added: tkui: ui::Label icon scaling (e.g. iconScale=2)
added: tkui: ui::CheckBox icon name prefix (e.g. iconPrefix=chb2x)
added: tkui: triadic key mode key repeat ( may select different repeat key as long as Layer.wantTriadKeyRepeat() returns true for given new key )
added: tkui: ui::StringDialog
added: tkui: vsync'd key repeat, ui::UI.ConfigureKeyRepeat() (#millisecs), ui::UI.ConfigureKeyRepeatFrames() (#frames)
added: tkui: allow key events in kbd focus selection mode (except for cursor keys)
added: tkui: ui::UI.SetKbdFocusSelectionModeBehaviour() (toggle or hold)
added: tkui: ui::ComboBox invalid option state (-1)
added: tkui: ui::UI.SetEnableTouchMode()
added: tkui: ui::FontResource.setEnableMonochrome() (toggle font antialiasing)
fixed: eqxmms: data_history2 (extra filtering) buffer was not zero'd as intended due to a typo ( updating to the VS2013 compiler revealed this bug )
added: tkportaudio: PaStream.getInputLatency(), PaStream.getOutputLatency(), PaStream.getSampleRate()
changed: tkmidi: removed MIDIOut.shortMsg()
changed: tkmidi: renamed MIDIOut.sendSysEx() to MIDIOut.sendBuffer()
changed: tkmidi: exclude sysex 0xF0 .. 0xF7 bytes from RecordedMIDIEvent
added: tkmidi: ALSA implementation of tkmidi plugin (tkmidi_alsa)
2. Older news

auto-generated by "DOG", the TkScript document generator. Mon, 28/Dec/2015 14:27:05