Name
GetExtensions -- query supported extensions for plugin type (V6.0)
Synopsis
ULONG exts = GetExtensions(ULONG capbit, struct hwTagList *tags);
Function
Hollywood will call this function to see which extensions are supported by your plugin for a certain plugin type. Hollywood will pass the capability bit of the plugin type whose supported extensions it wants to know to GetExtensions(). Note that this is a not a combination of capability flags but only a single capability bit will ever be set in each call to GetExtensions() Hollywood makes, i.e. Hollywood will call GetExtensions() for each plugin type whose supported extensions it wants to get individually.

The following plugin types currently support extensions:

HWPLUG_CAPS_LIBRARY:
Library plugins currently support the following extensions:

HWEXT_LIBRARY_MULTIPLE:
If this extension bit is set, your library plugin wants to install multiple libraries and has implemented the GetLibraryCount() and SetCurrentLibrary() functions to handle this. See Library plugins for details. (V6.0)

HWEXT_LIBRARY_NOAUTOINIT:
If this extension bit is set, the commands and constants of your library won't be added automatically to Hollywood's set of commands and constants. Instead, they'll only be added when the script performs a @REQUIRE on your plugin. See Library plugins for details. (V6.1)

HWEXT_LIBRARY_HELPSTRINGS:
If this extension bit is set, your library plugin wants to provide help strings and nodes for the individual plugin commands and needs to implement the GetHelpStrings() function to handle this. See Library plugins for details. (V7.0)

HWEXT_LIBRARY_UPVALUES:
If this extension bit is set, Hollywood can be made to allocate upvalues for your plugin commands. For this purpose it is necessary that you implement the PushUpvalues() function if this bit is set. See Library plugins for details. (V7.1)

HWPLUG_CAPS_IMAGE:
Image plugins currently support the following extensions:

HWEXT_IMAGE_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Image plugins for details. (V6.0)

HWEXT_IMAGE_FORMATNAME:
If this extension bit is set, the plugin indicates that it supports returning a string that describes the image format of a file. If you set this extension bit, your plugin needs to implement the GetImageFormat() function. See GetImageFormat for details. (V10.0)

HWPLUG_CAPS_ANIM:
Anim plugins currently support the following extensions:

HWEXT_ANIM_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Anim plugins for details. (V6.0)

HWEXT_ANIM_VECTOR:
Set this extension bit to indicate that your anim plugin supports vector anims. This means that your plugin must implement additional functions like GetFrame() and set the type of the anim when OpenAnim() is called. See OpenAnim for details. (V9.0)

HWEXT_ANIM_FORMATNAME:
If this extension bit is set, the plugin indicates that it supports returning a string that describes the anim format of a file. If you set this extension bit, your plugin needs to implement the GetAnimFormat() function. See GetAnimFormat for details. (V10.0)

HWPLUG_CAPS_SOUND:
Sound plugins currently support the following extensions:

HWEXT_SOUND_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Sound plugins for details. (V6.0)

HWPLUG_CAPS_VIDEO:
Video plugins currently support the following extensions:

HWEXT_VIDEO_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Video plugins for details. (V6.0)

HWPLUG_CAPS_VECTOR:
Vectorgraphics plugins currently support the following extensions:

HWEXT_VECTOR_EXACTFIT:
If this extension bit is set, GetPathExtents() must take the transformation matrix it is passed into account when computing the path's extents. If HWEXT_VECTOR_EXACTFIT is not set, Hollywood will compute the extents of the transformed path but this is not recommended since it is your plugin that knows best about the real extents. See Vectorgraphics plugins for details. (V6.0)

HWEXT_VECTOR_CUSTOMFT2:
Vectorgraphics plugins can set this extension bit to tell Hollywood that they're using a custom freetype2 implementation that is not compatible with the one that is built into Hollywood. If this extension bit is set, Hollywood will call your plugin whenever it needs to turn a font into an FT_Face. Consequently, plugins which set HWEXT_VECTOR_CUSTOMFT2 must implement the OpenFont() and CloseFont() vectors. Note that on WarpOS Hollywood will activate HWEXT_VECTOR_CUSTOMFT2 automatically for WarpOS plugins because those can only access a PPC build of freetype2 whose FT_Face handles are not compatible with the 68k ones expected by Hollywood. (V10.0)

HWPLUG_CAPS_SAVEANIM:
Anim saver plugins currently support the following extensions:

HWEXT_SAVEANIM_BEGINANIMSTREAM:
If this extension tag is defined, Hollywood will call the BeginAnimStreamExt() function instead of the BeginAnimStream() function to create a new anim. This allows plugins to get information about the desired file adapter, user tags and also the desired output format. The original BeginAnimStream() is broken by design because it accepts neither a tag list nor a structure argument so it can't be extended at all. See BeginAnimStreamExt for details. (V10.0)

HWPLUG_CAPS_DISPLAYADAPTER:
Display adapter plugins currently support the following extensions:

HWEXT_DISPLAYADAPTER_MAINLOOP:
If this extension bit is set, the display adapter is marked as main loop-based which means that Hollywood will explicitly ask the display adapter to run its main loop instead of just calling the HandleEvents() and WaitEvents() functions from time to time. See AdapterMainLoop for details. (V6.1)

HWEXT_DISPLAYADAPTER_PALETTE:
If this extension bit is set, the display adapter signals that it has implemented the SetPalette() function for changing the palette of a genuine palette mode display. You can activate genuine palette mode by setting the HWDISPTAG_PALETTEMODE tag to True in OpenDisplay() and setting the HWSDAFLAGS_SETPALETTE flags with hw_SetDisplayAdapter(). (V9.0)

HWEXT_DISPLAYADAPTER_MENUADAPTER:
If this extension bit is set, the display adapter signals that it supports menus and you have to implement all additional menu functions like SetMenuBar() and others. Furthermore, you have to pass HWSDAFLAGS_MENUADAPTER to hw_SetDisplayAdapter() to activate menu support for your display adapter. (V9.0)

HWPLUG_CAPS_DIRADAPTER:
Directory adapter plugins currently support the following extensions:

HWEXT_DIRADAPTER_REWIND:
If this extension bit is set, the directory adapter declares itself capable of rewinding directories. This means that the RewindDir() function must be implemented. See RewindDir for details. (V8.0)

HWEXT_DIRADAPTER_STAT:
If this extension bit is set, the directory adapter declares itself capable of getting additional information like date, time, and DOS attributes about directories. This means that the StatDir() function must be implemented. See StatDir for details. (V9.0)

HWPLUG_CAPS_REQUIRE:
Require hook plugins currently support the following extensions:

HWEXT_REQUIRE_LUALESS:
You can set this extension bit to signal that your implementation of RequirePlugin() doesn't need a valid lua_State pointer. This is important for compatibility with Hollywood Designer. Since Designer doesn't contain a Lua virtual machine, it won't be able to pass a lua_State pointer to RequirePlugin(). That is why Designer ignores plugins which depend on RequirePlugin() to be called by default. However, if you set HWEXT_REQUIRE_LUALESS and then make sure that your RequirePlugin() implementation can handle a NULL pointer in the lua_State argument, your plugin will be compatible with Designer as well. See RequirePlugin for details. (V9.0)

HWPLUG_CAPS_ICON:
Icon plugins currently support the following extensions:

HWEXT_ICON_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Icon plugins for details. (V9.0)

HWEXT_ICON_FORMATNAME:
If this extension bit is set, the plugin indicates that it supports returning a string that describes the icon format of a file. If you set this extension bit, your plugin needs to implement the GetIconFormat() function. See GetIconFormat for details. (V10.0)

HWPLUG_CAPS_FONT:
Font plugins currently support the following extensions:

HWEXT_FONT_NOAUTOINIT:
If this extension bit is set, Hollywood will not automatically activate your plugin at load time. Instead, you'll have to do this manually by calling the hw_AddLoaderAdapter() function. See Font plugins for details. (V10.0)

Inputs
capbit
single capability bit of the plugin type whose extensions should be queried
tags
reserved for future use (currently NULL)
Results
exts
combination of extension bits for the specified plugin type (see above)

Show TOC