PEXGetImpDepConstants - Get Implementation-Dependent Constants (5.0)


Synopsis

 
   Status PEXGetImpDepConstants(
          Display *display,
          Drawable drawable,
          unsigned long count,
          unsigned short *names,
          PEXImpDepConstant **constants_return
       )

Arguments

display
A pointer to a display structure returned by a successful XOpenDisplay call.
drawable
The resource identifier of a drawable.
count
The number of implementation-dependent constants.
names
An array of names of implementation-dependent constants that you want returned. (See the Description for valid values.)
constants_return
Returns an array of implementation-dependent constants

Returns

Zero if unsuccessful; non-zero otherwise.

Description

Invoke PEXGetImpDepConstants to get one or more implementation-dependent constants supported.

For each value requested, this function returns a single integer or floating-point value. Values are returned in order, with one return value in constants_return for each item you specify in names. This function returns implementation-dependent constants based on the values your application uses for a drawable having the same root window, depth, and visual ID as the drawable you specify.

PEXlib allocates memory for the returned constants. Invoke XFree to deallocate the memory.

PEXlib defines the following standard implementation-dependent constants:

PEXIDBestColorApprox (integer)
Either PEXColorApproxPowersOf2 or PEXColorApproxAnyValues, depending on whether there is a significant performance gain if the number of reds/greens/blues in the color approximation table entry is a power of two, so the implementation can compose pixels using shifts and adds.

PEXIDConcentrationClampSupported (integer)
True if the implementation applies the concentration clamping region in the reflection calculation involving a light of type PEXLightWCSpot. False if the implementation does not. (new for 5.2)

PEXIDDitheringControllable (integer)
True if PEXIDDitheringSupported is True and you can turn dithering on and off with the dither field of a color approximation table. False if PEXIDDitheringSupported is False, or if PEXIDDitheringSupported is True and you cannot disable dithering. (new for 5.2)

PEXIDDitheringSupported (integer)
True if the implementation uses the dithering hint to control dithering in the color approximation lookup tables. False, if the implementation does not use the dithering hint in color approximation lookup tables.

PEXIDDoubleBufferingSupported (integer)
True if the implementation supports double-buffering for workstation resources. False, if the implementation does not support double-buffering for workstation resources.

PEXIDEyepointUsed (integer)
True if the implementation uses the eyepoint defined in the view table. False if the implementation ignores the eyepoint defined in the view table and calculates an implicit eyepoint itself. (new for 5.2)

PEXIDMaxEdgeWidth (integer)
The width (in pixels) of the widest edge your implementation supports.

PEXIDMaxFastTMSize (integer)
The maximum size of any dimension of the base level of a texture map which your implementation can optimize. The implementation might support larger texture maps but the result is implementation-dependent (e.g., may be scaled down to fit the maximum size or may not take advantage of implementation optimization). A value of zero indicates all sizes are equally optimized. (new for 5.2)

PEXIDMaxHitsEventSupported (integer)
True if the implementation supports the PEXMaxHitsReached event. False, if the implementation does not support the event. (new for 5.1)

PEXIDMaxLineWidth (integer)
The width (in pixels) of the widest line or curve that your implementation supports.

PEXIDMaxMarkerSize (integer)
The largest dimension (either height or width, in pixels) of the largest marker that your implementation can draw. This maximum is exclusive of the marker type PEXMarkerDot which the implementation always draws as the smallest point able to be displayed.

PEXIDMaxMarkerVertices (integer)
The maximum number of vertices which your implementation can use to define a marker of marker glyph type PEXMarkerGlyphStroke in the marker glyph table. (new for 5.2)

PEXIDMaxModelClipPlanes (integer)
The maximum number of modeling clipping planes your implementation can define.

PEXIDMaxNameSetNames (integer)
The maximum number of names your implementation can place in a name set.

PEXIDMaxNonAmbientLights (integer)
The maximum number of non-ambient light sources that your implementation can enable at one time.

PEXIDMaxNumPickResults (integer)
The maximum number of pick results that your implementation can accumulate. (new for 5.2)

PEXIDMaxNURBOrder (integer)
The maximum non-uniform rational B-spline order your implementation can define.

PEXIDMaxTextureMaps (integer)
The maximum number of front-or back-facing texture maps which your implementation can have active for a single primitive. For example, a value of one indicates that your implementation can support one front-facing and one back- facing texture map for a single primitive. A value of zero indicates any number of texture maps can be applied to a single primitive. (new for 5.2)

PEXIDMaxTrimCurveOrder (integer)
The maximum order for trim curves that your implementation can support.

PEXIDMinEdgeWidth (integer)
The width (in pixels) of the thinnest edge that your implementation supports.

PEXIDMinLineWidth (integer)
The width (in pixels) of the thinnest line or curve that your implementation supports.

PEXIDMinMarkerSize (integer)
The largest dimension (either height or width, in pixels) of the smallest marker that your implementation can draw. This minimum is exclusive of the marker type PEXMarkerDot which the implementation always draws as the smallest point able to be displayed.

PEXIDNominalEdgeWidth (integer)
The width (in pixels) of the "standard" edge.

PEXIDNominalLineWidth (integer)
The width (in pixels) of the "standard" line or curve.

PEXIDNominalMarkerSize (integer)
The largest dimension (either height or width, in pixels) of the "standard" marker.

PEXIDNumSupportedEdgeWidths (integer)
The number of supported edge widths. A value of 0 indicates that the implementation supports all edge widths, including fractional widths, between the minimum and maximum edge width.

PEXIDNumSupportedLineWidths (integer)
The number of supported line or curve widths. A value of 0 indicates that the implementation supports all line widths, including fractional widths, between the minimum and maximum line width.

PEXIDNumSupportedMarkerSizes (integer)
The number of supported marker sizes. A value of 0 indicates that the implementation supports all marker sizes, including fractional values, between the minimum and maximum marker size.

PEXIDPixelColorSupported (integer)
True if the renderer's pixel color mode attribute behaves as specified when its value is PEXOn. False if the pixel color mode has no effect. (new for 5.2)

PEXIDPowerOfTwoTMSizesRequired (integer)
True if the implementation requires that the dimensions, in all directions, of all texel arrays defining a texture map must be powers of two. False if it does not. (new for 5.2)

PEXIDPrimitiveAASupported (integer)
This is a bitmask which has bit definitions that are located in PEXOCCSetPrimitiveAntialiasing. Each defined bit corresponding to a type of supported primitive antialiasing is set to 1. The defined bits set to 0 correspond to types of primitive antialiasing which are not supported. All undefined bits are set to 0. (new for 5.2)

PEXIDQuadraticAttenSupported (integer)
True if the implementation applies the quadratic attenuation coefficient in the reflectance calculation involving a light of type PEXLightWCPoint or PEXLightWCSpot. False if the implementation ignores the coefficient. (new for 5.2)

PEXIDSamplingHintsUsed (integer)
True if the implementation uses the sampling hint of the texture map lookup table to make adjustments when sampling a texture map. False if the implementation does not use the dithering hint. (new for 5.2)

PEXIDSquareTMRequired (integer)
True the implementation requires that each level of a texture map have equally sized dimensions. False if it does not. (new for 5.2)

PEXIDTransparencySupported (integer)
True if the implementation applies the transmission coefficient in the reflectance calculations. False if the implementation ignores the transmission coefficient.

PEXIDChromaticityRedU (flt_point)
CIEYUV u chromaticity coefficient for the red channel of the (properly adjusted) display device.

PEXIDChromaticityRedV (flt_point)
CIEYUV v chromaticity coefficient for the red channel of the (properly adjusted) display device.

PEXIDLuminanceRed (flt_point)
CIEYUV luminance value for the red channel of the (properly adjusted) display device.

PEXIDChromaticityGreenU (flt_point)
CIEYUV u chromaticity coefficient for the green channel of the (properly adjusted) display device.

PEXIDChromaticityGreenV (flt_point)
CIEYUV v chromaticity coefficient for the green channel of the (properly adjusted) display device.

PEXIDLuminanceGreen (flt_point)
CIEYUV luminance value for the green channel of the (properly adjusted) display device.

PEXIDChromaticityBlueU (flt_point)
CIEYUV u chromaticity coefficient for the blue channel of the (properly adjusted) display device.

PEXIDChromaticityBlueV (flt_point)
CIEYUV v chromaticity coefficient for the blue channel of the (properly adjusted) display device.

PEXIDLuminanceBlue (flt_point)
CIEYUV luminance value for the blue channel of the (properly adjusted) display device.

PEXIDChromaticityWhiteU (flt_point)
CIEYUV u chromaticity coefficient for the reference white of the (properly adjusted) display device.

PEXIDChromaticityWhiteV (flt_point)
CIEYUV v chromaticity coefficient for the reference white of the (properly adjusted) display device.

PEXIDLuminanceWhite (flt_point)
CIEYUV luminance value for the reference white of the (properly adjusted) display device.

Errors

BadDrawable
The specified drawable resource identifier is invalid.

BadMatch
The specified drawable is unsupported.

BadValue
A specified implementation-dependent constant name is invalid.

See Also

For an overview, see PEXlib Access and Information Functions.