Appendix: What's New

This appendix describes what's new in Photon for the following releases:

What's new in Photon for QNX Neutrino 6.5.0

New entries

PgPHookRegister()
Load a Photon hook module, such as one that rotates the display.
PxRotateImage()
Rotate an image.

Changed entries

PgLayerCaps_t

(Ref# 69322, 69235)

Errata

PgShmemCleanup()
You can't call Photon functions from signal handlers; we've corrected the example.
PhCancelDrag()
This function returns a non-negative number (≥ 0), not a positive number (> 0), to indicate success.

What's new in Photon for QNX Neutrino 6.4.1

New content in the docs

Corrections, clarifications, and other changes

PhWindowEvent_t()
The Ph_WM_EVSTATE_FORCE event state was added.
PgSetColorModel() and PgGetColorModel()
A link was added to a list of supported color models.
PtHelpTopicTree() and PtHelpUrl()
A correction was made to the URL in the example.

What's new in Photon for QNX Neutrino 6.4.0

New content in the docs

Corrections, clarifications, and other changes

PdCreateOffscreenContext()
Pg_OSC_GF_SID - flag added to the function.
PhCharacterCursorDescription_t
Ph_CURSOR_NONE - Hides the cursor.
PgDrawTextArea*()
The len parameter specifies the number of bytes required to store the string.
PgGetScalerCapabilities()
You must set vcaps->size to sizeof(PgScalerCaps_t) before calling this function.
PgSetFont()
If the M1 or M2 global alpha values are set, and an anti-aliased font type is supplied to the function, the resulting text will be blended according to the global alpha values.
PgSetVideoMode()
PgSetVideoMode() returns an error if more than one layer is currently active via the Pg layer family of calls. By default, io-graphics utilizes one layer.
PgVideoChannel_t()
Documented as an internal-only type.
PtInitDnd()
This function accepts a drag event as well as a pointer event.

What's new in Photon for QNX Neutrino 6.3 Service Pack 1

New content in the docs

What's new in Photon for QNX Neutrino 6.3

This section includes:

New content in the docs

Corrections, clarifications, and other changes

PdCreateOffscreenContext() and PdDupOffscreenContext ()
Added several new flags for optimization. In PdCreateOffscreenContext(), ImageType now supports several new values.
PdSetTargetDevice()
Now takes a void * instead of a PhDrawContext_t to specify the draw context.
PgCreateLayerSurface()
Added several new flags for optimization.
PgGetVideoModeInfo()
Returns a new flag in PgVideoModeInfo_t.mode_capabilities2: PgVM_MODE_CAP2_SCALED_BLIT
PxLoadImage()
Added support for SGI image format.

Deprecated functions and data types

What's new in Photon for QNX Neutrino 6.2.1

This section includes:

New content in the docs

ApModifyItemAccel()
Modify the keyboard shortcut for a menu item
PgCreateDriverRegion()
Create a region that's owned by the graphics driver
PgCreateLayerSurface()
Create an offscreen context for a layer
PgGetLayerCaps()
Query the capabilities of a layer
PgLayerCaps_t
Capabilities for a layer
PgLockLayer()
Lock a layer for exclusive use by an application
PgSetLayerArg()
Configure a layer argument
PgSetLayerSurface()
Display the offscreen context on the specified layer surface
PgUnlockLayer()
Unlock a layer
PhKeyEvent_t
Added more information about interpreting key events.
PhLibVersion()
Get the version number of the Photon libraries
PtFepCmd()
Control a Front-End Processor (FEP) from an application
PtHelpSearch()
New value for the method argument, HELP_SEARCH_METHOD_SUBSTRING_CASE.
PxLoadImage()
Added a section on threads and PxLoadImage() .

Deprecated functions and data types

Corrections

ApCreateModule()
Corrected the description of creating a picture module.
PdSetTargetDevice()
Corrected the prototype.
PhEventRead()
Corrected the description and example.

What's new in Photon for QNX Neutrino 6.2.0

This section includes:

New content in the docs

This section includes:

Ap

ApAddContext()
Add a PhAB context so you can use a PhAB application as a DLL
ApRemoveClass()
Remove a widget class
ApRemoveContext()
Remove the PhAB context from a PhAB application that you're using as a DLL

Pd

PdCreateOffscreenLock()
Create an offscreen lock
PdDestroyOffscreenLock()
Destroy an offscreen lock
PdIsOffscreenLocked()
Determine whether or not an offscreen context is locked
PdLockOffscreen()
Lock an offscreen context
PdUnlockOffscreen()
Unlock an offscreen context

Pf

PfExtent(), PfExtentCx()
Calculate the extent rectangle of a text string
PfExtentTextCharPositionsCx()
Calculate individual character positions, specifying a font context
PfExtentWideText()
The prototype has changed; the string is now of type uint16_t *.
PfFindFont(), PfGenerateFontName()
The prototypes have changed; they now use char instead of unsigned char.
PfGenerateFontNameCx()
Generate a font name.
PfGetOutlineCx()
Get individual point information for a glyph outline, specifying the font context.
PfRenderCtx(), PfRenderCx()
Render a string via a user callback function
PfRenderWideText(), PfWideTextWidthBytes() , PfWideTextWidthChars()
The prototype has changed; the string is now of type uint16_t *.

Pg

PgAlphaValue()
Extract the alpha component from a color value
PgARGB()
Convert alpha, red, green, and blue values to composite color format
PgContextBlit(), PgContextBlitArea()
The source data is now scaled to fit the destination rectangle.
PgGetColorModel()
Get the current color model
PgSetColorModel()
Set the current color model

Ph

PhImage_t
New image types:

Pp

PpPrintContext_t
Data structure describing a print context

Pt

PtCreateClassStyle()
Create a class style
PtDupClassStyle()
Get a copy of a widget class style
PtFindClassStyle()
Find the style with a given name
PtGetStyleMember()
Get a member of a style
PtGetWidgetStyle()
Get the style that a widget is currently using
PtSetClassStyleMethods()
Set multiple members of a style from an array
PtSetStyleMember()
Set a member of a style
PtSetStyleMembers()
Set multiple members of a style from a variable-length argument list
PtSetWidgetStyle()
Set the current style for a widget

utf8

utf8len()
Count the bytes in a UTF-8 character
utf8strblen()
Find the number of UTF-8 characters in part of a string
utf8strchr()
Search for a UTF-8 character in a string
utf8strichr()
Search for a UTF-8 character in a string, ignoring case
utf8strirchr()
Search backwards for a UTF-8 character in a string, ignoring case
utf8strlen()
Find the length of a UTF-8 character string
utf8strnchr()
Search for a UTF-8 character in part of a string
utf8strncmp()
Compare part of a UTF-8 character string
utf8strndup()
Create a copy of part of a UTF-8 character string
utf8strnichr()
Search for a UTF-8 character in part of a string, ignoring case
utf8strnlen()
Find the number of bytes used by n characters of a UTF-8 character string
utf8strrchr()
Search backwards for a UTF-8 character in a string
utf8towc()
Convert a UTF-8 character to a wide-character code

wc

wctoutf8()
Convert a wide-character code into a UTF-8 character

Deprecated functions and data types

The mbstr* functions have been replaced:

Instead of: Use:
mbstrblen() utf8strblen()
mbstrchr() utf8strchr()
mbstrichr() utf8strichr()
mbstrirchr() utf8strirchr()
mbstrlen() utf8strlen()
mbstrnchr() utf8strnchr()
mbstrncmp() utf8strncmp()
mbstrndup() utf8strndup()
mbstrnichr() utf8strnichr()
mbstrnlen() utf8strnlen()
mbstrrchr() utf8strrchr()

Corrections, clarifications, and other changes

ApAddClass()
This function now makes a copy of the string pointed to by class_name_string; it no longer keeps a pointer to the string.
PdGetOffscreenContextPtr()
This function can fail on certain hardware. You can use PdGetOffscreenContextPtr() on closed systems where you know that the graphics frame buffer is linear; don't use it in applications that target generic hardware configurations.
PfConvertFontID()
Now returns char * instead of unsigned char *.
PfFontDescription()
Now returns char const * instead of unsigned char const *.
PfQueryFonts()
If you don't want to limit the search to fonts that support a specific character, pass PHFONT_ALL_SYMBOLS as the symbol argument.
PfGetOutline()
The pkucFont argument is now of type char const * instead of unsigned char const *.
PhEmit(), PhEmitmx(), PhEventEmit(), PhEventEmitmx()
If you set the collector ID for the event (event->collector.rid) to zero, the event is enqueued to every appropriately sensitive region that intersects with the event. If you set collector.rid to a region ID, only that region notices the event.
PpPrintWidget()
Pt_PP_RESIZE_PC is a new value for the resize argument.
PpSetPC()
Corrected the data types for Pp_PC_INTENSITY, Pp_PC_PRINTER_RESOLUTION, Pp_PC_SOURCE_COLORS, and Pp_PC_SOURCE_RESOLUTION.
PtAddClassStyle()
Corrected the prototype.
PtQuitMainLoop()
This function now returns an int that indicates whether or not the thread has already called PtQuitMainLoop().
PtSpawn()
By default, the new process inherits all of the parent's valid file descriptors whose values are less than or equal to 9.
PxLoadImage()
You don't have to define the file formats that you want to support any more (e.g. PX_GIF_SUPPORT).

What's new in Photon for QNX Neutrino 6.1.0

Patch A

New entries:

New content in the docs

Deprecated functions and data types

Other changes

PhWindowQueryVisible()
Ph_QUERY_CONSOLE and Ph_QUERY_WORKSPACE are new bits for the flags argument. Ph_QUERY_CONSOLE is the default value.

What's new in Photon for QNX Neutrino 6.0

New functionality

Font names

An API for handling font names in an organized, portable way has been added. Previously, we recommended you address a font by the “stem name” supplied by the font manager (e.g. helv12). This approach is no longer recommended, since stem names aren't guaranteed to be static. This is especially true when new font technology is added to the Photon font subsystem. The new API provides an interface that eliminates the need to recode in the future. It includes:

New content in the docs

Al—PhAB Translation

These new functions support language and message databases:

Ap—PhAB

New:

These functions have been renamed; you should use the new name, although applications that use the old name will still work:

Deprecated:

The prototype has changed for:

mbstr—Multibyte-Character

New:

Pd—Draw Context

New:

Pf—Font Server

New:

Deprecated:

Pg—Graphics

New:

Other new features:

PgSetDrawMode()
New drawing modes.

Ph—Photon

New:

Other changes:

PhEvent_t
Ph_EV_BUT_RELEASE events have a new subtype, Ph_EV_RELEASE_OUTBOUND.
PhInitDrag()
The prototype has changed; the ptrpos and cursor arguments have been added.
PhMakeTransBitmap()
This function now supports all image types currently supported by Photon. The meaning of the trans_color argument depends on the image type.

Pi—Images

These new functions support image operations:

Pp—Printing

New functions:

Other changes:

PpPrintWidget()
You no longer need to call PtFlush() after calling this function.

Pt—Widget toolkit

New:

Deprecated:

These functions have been renamed; you should use the new name, although applications that use the old name will still work:

Other changes:

PtCreateWidget()
The parent argument has changed. It can now be a pointer to the parent widget or one of:
PtFileSelection()
This function can select directories as well as files. Enable directory selection with the Pt_FSDIALOG_SELECT_DIRS flag. Existing directories can be selected with btn1 (the Open button).

PtFileSelection() can create and delete directories and delete files. You can create new directories at any time by pressing the New button. When the PtFileSel widget has focus, two new hotkeys are activated: the Insert key creates a new directory just like the New Directory button, and the Delete key removes the currently selected item.

The info structure has the following new members:

New flags:

PtModalEnd()
The prototype has changed; this function no longer takes as an argument the value returned by PtModalStart().
PtModalStart()
No longer returns anything.
PtRectIntersect()
Replaced by PhRectIntersect()
PtRectUnion()
Replaced by PhRectUnion()

Px—Extended

PxCRC()
Replaced by PtCRC().
PxHelpQuit()
Replaced by PtHelpQuit()
PxHelpSearch()
Replaced by PtHelpSearch()
PxHelpTopic()
Replaced by PtHelpTopic()
PxHelpTopicRoot()
Replaced by PtHelpTopicRoot()
PxHelpTopicTree()
Replaced by PtHelpTopicTree()
PxHelpUrl()
Replaced by PtHelpUrl()
PxHelpUrlRoot()
Replaced by PtHelpUrlRoot()
PxLoadImage()
If PX_TRANSPARENT is set in the flags member of the PxMethods_t structure, PxLoadImage() makes the image transparent, using the detected transparent color and the image's chroma scheme. There's no need to set the transparent member of this structure — it's deprecated.
PxTranslateUnknown()
Control how unknown encodings are handled

You no longer need to include <photon/PxHelp.h> when using the help functions.

Rt—Realtime

New:

Corrections

Pg—Graphics

PgDrawImage(), PgDrawImagemx()
Instead of using this function, we recommend using a PhImage_t structure and calling PgDrawPhImagemx().
PgDrawTImage(), PgDrawTImagemx()
Instead of using this function, we recommend using a PhImage_t structure and calling PgDrawPhImagemx().

Ph—Photon

PhMakeTransBitmap()
Use PgDrawPhImagemx() to draw a transparent image.