What is a plug-in

 Used to connect to Kirikiri and extend Kirikiri's functionality.
 At this stage, there are three types of plugins that can be used in Kirikiri,
 It has become.

 If you use a plugin, you need to connect to Kirikiri core using Plugins.link method.

Search for plugins

 The Plugins.link method looks for the specified plug-in in the following order:
  1. The same folder as the Kirikiri core
  2. In the plugin (plugin64 for 64bit version) folder in the same folder as the Kirikiri core and below
  3. Automatic search path

 If the automatic search path is in a location that is not accessible as a local file, such as in an archive, Kirikiri tries to extract the plug-in to the same folder as the Kirikiri core. Since this may cause problems, it is strongly recommended that plugins be placed in "the same folder as Kirikiri core" or "in the plugin folder in the same folder as Kirikiri core".
 It is important to place them in the plugin / plugin64 folder in order to distinguish plug-ins in the 32-bit / 64-bit versions.
 In addition, Kirikiri's configuration tool (Releaser and -userconf option) looks for plug-ins to collect embedded option information for each plug-in, but in the following order.
  1. The same folder as the Kirikiri core
  2. In the plugin folder in the same folder as the Kirikiri core and below

 Since the Kirikiri setting tool does not search up to the automatic search path, plug-ins including setting items must be placed in the "same folder as Kirikiri core" or "in the plugin folder in the same folder as Kirikiri core and below" not.

Automatic loading of plugins

 Kirikiri has a function to automatically search for plugins and load them at startup. If you want the plugin to load automatically, you need to change the extension of the plugin from dll to tpm.
 At startup (just before running startup.tjs), Kirikiri looks for a file with the extension tpm from the following folder and automatically loads it as a plugin.

 Kirikiri sorts the plug-ins you look ed in ascending order by name and loads them in that order. For example, aaa.tpm is loaded before aab.tpm. This does not affect the folder where the plug-in is, only the name of the plug-in is affected (even if z.tpm is in the same folder as Kirikiri, a.tpm is loaded first if there is a.tpm in the plugin folder). If you want to specify the order in which plug-ins are loaded, you must change the file name of the plug-in.

About creating plugins

 There is a plug-in source included with Kirikiri in the Kirikiri source, so please refer to it.
 At this stage, the specifications of "other Kirikiri-specific plug-ins" are unfixed. Even if the specifications are changed in the future, we hope that the compatibility at the source level will be maintained, so even if the compatibility at the binary level is lost, it will be possible to use it by rebuilding it according to Kirikiri itself think.

About Susie Plug-in

 You can use the plugin for the image viewer "Susie32" by Takechin.
 You can use the 00IN format (plug-in for images) and the 00AM format (plug-in for archives), but there are the following restrictions or unique specifications of Kirikiri.


 In addition, some plug-ins that do not fully support the Susie plug-in standard are incompatible with Kirikiri.

About the plug-in included with Kirikiri

 It is a description of the plug-in that is attached to Kirikiri as standard.

wuvorbis.dll
 A plugin to make Ogg Vorbis playable in Kirikiri.
wumsadp.dll
 It is a plug-in to make Microsoft ADPCM format .wav files playable in Kirikiri.
wutcwf.dll
 It is a plug-in to make TCWF format files playable in Kirikiri.
extrans.dll
 It is a plug-in to extend the kind of transition of Kirikiri core, and some transitions can be used when connected to Kirikiri core.
 See About transitions for how to use this plugin.
dirlist.dll
 A plugin to get a list of files in a specified directory.
 When this plug-in is connected, a function called getDirList can be used.
getDirList(directory)
 Returns a list of all the files in that directory as an array. This list also includes directories, which have an '/' at the end of the element string.
 Also, this list usually contains two elements, './' and '../'.
 This function only gets a list of the files under the specified directory, and does not recursively get the files in directories below it.
fftgraph.dll
 This is a plug-in for displaying a simple spectrum analyzer (spreader) in synchronization with WaveSoundBuffer.
 When this plug-in is connected, a function called drawFFTGraph can be used.
 Please refer to the fftgraph source included in the Kirikiri source and the KAG plugin for usage.
win32ole.dll
 ActiveX Control A plug-in for pasting into Kirikiri's window and operating OLE-automable objects from Kirikiri.
 For example, you can paste a web browser (Internet Explorer) or media player into Kirikiri's window or operate Excel from Kirikiri.
 Please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/win32ole/manual.tjs and kirikiri2/trunk/kirikiri2/tests/win32ole directories of the Kirikiri source for usage.
wsh.dll (experimental)
 This plugin enables JScript, VBScript, and PerlScript to be used in Kirikiri (RubyScript operation is being adjusted).
 When this plug-in is connected, Scripts.exec and Scripts.execStorage are expanded.
 Scripts.exec now accepts an extension, or ProgId, or CLSID as the second argument. Scripts.execStorage also accepts an extension, ProgId, or CLSID as the second argument, similar to Scripts.exec, but if the second argument is omitted, the language is determined from the extension of the first argument .
 The extension is js, vbs, pl, or rb, and ProgId is JScript, VBScript, PerlScript, RubyScript respectively. When specifying CLSID, specify the class ID of the script engine. If any other extension is passed, it will be executed as a TJS script.
 Please refer to the kirikiri2/trunk/kirikiri2/tests/wsh directory of Kirikiri source for usage.
agg.dll (experimental)
 It is a plug-in that draws figures using AGG (Anti-Grain Geometry) in Kirikiri.
 You can use a simple SVG reading / drawing function.
 To render an SVG, for example,
例:
var svg  = new AGGPrimitive(layer, "SVG", "tiger.svg");
var svg1 = new AGGPrimitive(layer, "SVG", "tiger.svg");

(Many SVGs cannot be read due to limitations of the original AGG SVG reading support).
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/layerExAgg directory of the Kirikiri source.
csvParser.dll (experimental)
 It is a plug-in for reading CSV (Comma Separated Values) files in Kirikiri.
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/csvParser directory of the Kirikiri source.
expat.dll (experimental)
 A plugin for reading XML files via Expat in Kirikiri.
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/expat directory of the Kirikiri source.
json.dll (experimental)
 It is a plugin to read JSON in Kirikiri.
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/json directory of the Kirikiri source.
layerExImage.dll (experimental)
 Plug-in for adjusting brightness and contrast, adjusting hue and saturation, and adding noise to layers.
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/layerExImage directory of the Kirikiri source.
perspective.dll (experimental)
 It is a plug-in that performs perspective transformation of the layer.
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/layerPerspective directory of the Kirikiri source.
saveStruct.dll
Array / Dictionary saveStruct processing can be output in the current code page or UTF-8 instead of Unicode (UTF-16).
 For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/saveStruct directory of the Kirikiri source.
fstat.dll
Add methods to the Storages class to obtain information such as file size and update date, and to retrieve files from the storage system.  For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/fstat directory of the Kirikiri source.
clipboardEx.dll(experimental)
Add functions to the Clipboard class to exchange images and TJS expressions via the clipboard, and to register a handler that automatically detects clipboard updates.  For more information, please refer to the kirikiri2/trunk/kirikiri2/src/plugins/win32/clipboardEx directory of the Kirikiri source.