Jump to content

DEVICESURFACE: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
mNo edit summary
 
Line 26: Line 26:


==Fields==
==Fields==
;ulLength:Length of the DEVICESURFACE data structure, in bytes.  
;ulLength:Length of the DEVICESURFACE data structure, in bytes.
;SurfaceBmapInfo:Information used by the graphics engine when rastering to a linear address. (See [[BMAPINFO]] in Data Types)
;SurfaceBmapInfo:Information used by the graphics engine when rastering to a linear address. (See [[BMAPINFO]] in Data Types)
;ulDSFlgs:Miscellaneous flags used by the graphics engine for rendering of rasterized data.
;ulDSFlgs:Miscellaneous flags used by the graphics engine for rendering of rasterized data.
::Color format flag
:Color format flag
::DS_MONO_INVERT
::DS_MONO_INVERT: Mono ROPs are inverted.
:::Mono ROPs are inverted.
:Destination color format flags
::Destination color format flags
::DS_COLOR_RGB: Color is in RGB.
::DS_COLOR_RGB
::DS_COLOR_RGB2: Color is in RGB2 (default).
:::Color is in RGB.
::DS_COLOR_24BIT_BGR: First byte=blue (default).
::DS_COLOR_RGB2
::DS_COLOR_24BIT_RGB: First byte=red, second byte=green, third byte=blue.
:::Color is in RGB2 (default).
::DS_COLOR_24BIT_BGR
:::First byte=blue (default).
::DS_COLOR_24BIT_RGB
:::First byte=red, second byte=green, third byte=blue.
::DS_COLOR_16BIT_565_BGR
::DS_COLOR_16BIT_565_BGR
:::Blue 5 bits (default)
:::Blue 5 bits (default)
:::Green 6 bits
:::Green 6 bits
:::Red 5 bits
:::Red 5 bits
:::: |b|b|b|b|b|g|g|g|g|g|g|r|r|r|r|r|
::: |b|b|b|b|b|g|g|g|g|g|g|r|r|r|r|r|
::DS_COLOR_16BIT_565_RGB
::DS_COLOR_16BIT_565_RGB
:::Red 5 bits
:::Red 5 bits
:::Green 6 bits
:::Green 6 bits
:::Blue 5 bits
:::Blue 5 bits
:::: |r|r|r|r|r|g|g|g|g|g|g|b|b|b|b|b|
::: |r|r|r|r|r|g|g|g|g|g|g|b|b|b|b|b|
::DS_COLOR_16BIT_1555_BGR
::DS_COLOR_16BIT_1555_BGR
:::Overlay 1
:::Overlay 1
Line 56: Line 51:
:::Green 5 bits
:::Green 5 bits
:::Red 5 bits
:::Red 5 bits
:::: |o|b|b|b|b|b|g|g|g|g|g|r|r|r|r|r|
::: |o|b|b|b|b|b|g|g|g|g|g|r|r|r|r|r|
::DS_COLOR_16BIT_1555_RGB
::DS_COLOR_16BIT_1555_RGB
:::Overlay 1
:::Overlay 1
Line 62: Line 57:
:::Green 5 bits
:::Green 5 bits
:::Blue 5 bits
:::Blue 5 bits
:::: |o|r|r|r|r|r|g|g|g|g|g|b|b|b|b|b|
::: |o|r|r|r|r|r|g|g|g|g|g|b|b|b|b|b|
::Direction flags
:Direction flags
::DS_BOTTOMTOP
::DS_BOTTOMTOP: Bottom-to-top is Y position.
::Bottom-to-top is Y position.
::DS_TOPBOTTOM: Top-to-bottom is Y position.
::DS_TOPBOTTOM
:Hardcopy flag
::Top-to-bottom is Y position.
::DS_QUEUED_RAW_DEFAULT: Set QUEUED to RAW as default.
::Hardcopy flag
:Notification flag
::DS_QUEUED_RAW_DEFAULT
::DS_NOTIFY_LAST_SDBITBLT: Last banded blit per API bit map transfer.
::Set QUEUED to RAW as default.
:Scanline alignment flags
::Notification flag
::DS_BYTE_ALIGNMENT: DS scan line alignment.
::DS_NOTIFY_LAST_SDBITBLT
::DS_2BYTE_ALIGNMENT: DS scan line alignment.
::Last banded blit per API bit map transfer.
::DS_4BYTE_ALIGNMENT: DS scan line alignment.
::Scanline alignment flags
::DS_KEEP_EXTFORMAT: Variable alignment; let application decide.
::DS_BYTE_ALIGNMENT
:Device Font Flags
:::DS scan line alignment.
::DS_2BYTE_ALIGNMENT
:::DS scan line alignment.
::DS_4BYTE_ALIGNMENT
:::DS scan line alignment.
::DS_KEEP_EXTFORMAT
:::Variable alignment; let application decide.
::Device Font Flags
::Normal output to the device from the graphics subsystem is generated from the device origin with scan lines horizontal and incrementing both pels and scan lines. This output can be altered by the following flags:
::Normal output to the device from the graphics subsystem is generated from the device origin with scan lines horizontal and incrementing both pels and scan lines. This output can be altered by the following flags:
::DS_BITBLT_XROW_YSCAN
::DS_BITBLT_XROW_YSCAN: Generates row data as sequential bit stream instead of scan line data.
:::Generates row data as sequential bit stream instead of scan line data.
::DS_BITBLT_ROW_NEGATIVE: Generates rows in opposite direction, for example, Start at Device Origin + Device Height.
::DS_BITBLT_ROW_NEGATIVE
::DS_BITBLT_SCAN_NEGATIVE: Generates scan lines in opposite direction, for example, Start at Device Origin + Device Length.
:::Generates rows in opposite direction, for example, Start at Device Origin + Device Height.
:Output Surface Direction Flags
::DS_BITBLT_SCAN_NEGATIVE
:::Generates scan lines in opposite direction, for example, Start at Device Origin + Device Length.
::Output Surface Direction Flags
::As of OS/2 Warp Version 4, the graphics subsystem added device font support for the new device driver model. Below are some of the device surface flags to support it:
::As of OS/2 Warp Version 4, the graphics subsystem added device font support for the new device driver model. Below are some of the device surface flags to support it:
::DS_DOWNLOAD_FONTS
::DS_DOWNLOAD_FONTS: (GRE_VERSION 234) - The device request downloading of system fonts via pfnTextBlt in new cached format.
:::(GRE_VERSION 234) - The device request downloading of system fonts via pfnTextBlt in new cached format.
::DS_DEVICE_FONTS: (GRE_VERSION 234) - The device has its own hardware fonts. It will provide font definition information, but wants the system to handle all query and character string operations. It will render fonts via the pfnTextBlt call.
::DS_DEVICE_FONTS  
::DS_FONT_CLIP_SUPPORT: (GRE_VERSION 238) - In Gre Version 234, only the precise rule is used.
:::(GRE_VERSION 234) - The device has its own hardware fonts. It will provide font definition information, but wants the system to handle all query and character string operations. It will render fonts via the pfnTextBlt call.  
::DS_CLIP_100_RULE: Graphics subsystem will not send the glyph to the driver unless it is fully visible.
::DS_FONT_CLIP_SUPPORT  
::DS_CLIP_66_RULE: Graphics subsystem will only send the glyph to the driver if it is at least 66% visible.
:::(GRE_VERSION 238) - In Gre Version 234, only the precise rule is used.  
::DS_CLIP_PRECISE_RULE: Graphics subsystem will send the all glyphs to the driver with all the current clip rectangles.
::DS_CLIP_100_RULE  
:Surface description flag
:::Graphics subsystem will not send the glyph to the driver unless it is fully visible.  
::DS_MEMORY: Memory surface.
::DS_CLIP_66_RULE  
;ulStyleRatio:Default style ratio used by the current device.
:::Graphics subsystem will only send the glyph to the driver if it is at least 66% visible.  
;abmapinfoDefPattern[]:Set of default patterns supplied by the graphics engine that can be changed by the presentation driver. [DEFAULT_PATTERNS_NUMBER].
::DS_CLIP_PRECISE_RULE  
;pHWPalette:Default hardware palette for the current device.
:::Graphics subsystem will send the all glyphs to the driver with all the current clip rectangles.  
;DitherMatrix:Default is the generic dither support for hardcopy devices.
 
:For additional details on dithering refer to the section, Dithering/Color Mapping Interface.
::Surface description flag  
:ulLength: Length of dither matrix structure.
 
:fExt2IntSup: Gre dither flags for external to internal.
::DS_MEMORY  
:pExt2IntDI: Used for GDM_USERDEF. Pointer to users dither information.
:::Memory surface.  
:fStretchSup: Gre dither flags for stretch support.  
 
:ulStyleRatio  
::Default style ratio used by the current device.  
 
::abmapinfoDefPattern[ ]  
::Set of default patterns supplied by the graphics engine that can be changed by the presentation driver. [DEFAULT_PATTERNS_NUMBER].  
 
:pHWPalette  
::Default hardware palette for the current device.  
 
:DitherMatrix  
::Default is the generic dither support for hardcopy devices.  
 
:For additional details on dithering refer to the section, Dithering / Color Mapping Interface.  
 
:ulLength  
::Length of dither matrix structure.  
:fExt2IntSup  
::Gre dither flags for external to internal.  
:pExt2IntDI  
::Used for GDM_USERDEF. Pointer to users dither information.  
:fStretchSup  
::Gre dither flags for stretch support.  
:pStretchDI  
:pStretchDI  
::Used for GDM_USERDEF. Pointer to users dither information.  
::Used for GDM_USERDEF. Pointer to users dither information.  
Line 159: Line 120:
::Use device's color mapping functions.  
::Use device's color mapping functions.  


pfnDevLockDC  
;pfnDevLockDC:Pointer to allow the device driver to retrieve its device-specific information from the graphics engine. Pointer is stored by the device driver.
::Pointer to allow the device driver to retrieve its device-specific information from the graphics engine. Pointer is stored by the device driver.  
;pfnDevUnLockDC:Pointer to the function to release the lock on the current DC. Pointer is stored by the device driver.
 
;pfnBitBlt:Pointer defaults to SOFTDRAW's handling of the new SDBitBlt function. If a device does not have linear address support or would rather handle preclipped bit map transfers itself, then it should hook out this function with its own routine.
pfnDevUnLockDC  
;pfnLine:Pointer defaults to SOFTDRAW's handling of the new SDLine function. If a device does not have linear address support or would rather handle preclipped line operations itself, then it should hook out this function with its own routine.
::Pointer to the function to release the lock on the current DC. Pointer is stored by the device driver.  
;pfnTextBlt:Used in conjunction with DS_DOWNLOAD_FONTS and DS_DEVICE_FONTS. If flags are not specified, text strings will be simulated through bitblts.
 
:Refer to Device Font Support for additional details.
pfnBitBlt  
;pfnLockPhysDev:Pointer prevents other processes from accessing the physical hardware between the lock and unlock.
::Pointer defaults to SOFTDRAW's handling of the new SDBitBlt function. If a device does not have linear address support or would rather handle preclipped bit map transfers itself, then it should hook out this function with its own routine.  
;pfnUnLockPhysDev:Pointer releases the physical hardware for access by other processes.
 
:ulhddc:Handle to device's device context.
pfnLine  
;ulReserved[4]:Reserved by system.
::Pointer defaults to SOFTDRAW's handling of the new SDLine function. If a device does not have linear address support or would rather handle preclipped line operations itself, then it should hook out this function with its own routine.  
;ulCapsCnt:Size in ULONGs of the DevCaps field.
 
;DevCaps[]:The device capabilities array in OS/2 2.0 and previous versions. Array must be filled out in order for the graphics engine to handle a call to the DevQueryCaps function. [CAPS_MAX_CAPS + 1]
pfnTextBlt  
::Used in conjunction with DS_DOWNLOAD_FONTS and DS_DEVICE_FONTS. If flags are not specified, text strings will be simulated through bitblts.  
 
Refer to Device Font Support for additional details.  
 
pfnLockPhysDev  
::Pointer prevents other processes from accessing the physical hardware between the lock and unlock.  
 
pfnUnLockPhysDev  
::Pointer releases the physical hardware for access by other processes.  
 
ulhddc  
::Handle to device's device context.  
 
ulReserved[4]  
::Reserved by system.  
 
ulCapsCnt  
::Size in ULONGs of the DevCaps field.  
 
DevCaps[]
::The device capabilities array in OS/2 2.0 and previous versions. Array must be filled out in order for the graphics engine to handle a call to the DevQueryCaps function. [CAPS_MAX_CAPS + 1]


[[Category:Data type]]
[[Category:Data type]]

Latest revision as of 21:48, 7 June 2020

Pointer to information needed by the graphics engine that represents the device's physical surface.

Type

typedef struct _DEVICESURFACE {
 ULONG            ulLength;
 BMAPINFO         SurfaceBmapInfo;
 ULONG            ulDSFlgs;
 ULONG            ulStyleRatio;
 BMAPINFO         abmapinfoDefPattern[DEFAULT_PATTERNS_NUMBER];
 PVOID            pHWPalette;
 DITHERMATRIX     DitherMatrix;
 PFN              pfnDevLockDC;
 PFN              pfnDevUnLockDC;
 PFN              pfnBitBlt;
 PFN              pfnLine;
 PFN              pfnReserved;
 PFN              pfnLockPhysDev;
 PFN              pfnUnLockPhysDev;
 ULONG            ulReserved[5];
 ULONG            ulCapsCnt;
 ULONG            DevCaps[CAPS_MAX_CAPS + 1];
} DEVICESURFACE;

C Declaration Method

typedef DEVICESURFACE *PDEVICESURFACE;

Fields

ulLength
Length of the DEVICESURFACE data structure, in bytes.
SurfaceBmapInfo
Information used by the graphics engine when rastering to a linear address. (See BMAPINFO in Data Types)
ulDSFlgs
Miscellaneous flags used by the graphics engine for rendering of rasterized data.
Color format flag
DS_MONO_INVERT: Mono ROPs are inverted.
Destination color format flags
DS_COLOR_RGB: Color is in RGB.
DS_COLOR_RGB2: Color is in RGB2 (default).
DS_COLOR_24BIT_BGR: First byte=blue (default).
DS_COLOR_24BIT_RGB: First byte=red, second byte=green, third byte=blue.
DS_COLOR_16BIT_565_BGR
Blue 5 bits (default)
Green 6 bits
Red 5 bits
|b|b|b|b|b|g|g|g|g|g|g|r|r|r|r|r|
DS_COLOR_16BIT_565_RGB
Red 5 bits
Green 6 bits
Blue 5 bits
|r|r|r|r|r|g|g|g|g|g|g|b|b|b|b|b|
DS_COLOR_16BIT_1555_BGR
Overlay 1
Blue 5 bits
Green 5 bits
Red 5 bits
|o|b|b|b|b|b|g|g|g|g|g|r|r|r|r|r|
DS_COLOR_16BIT_1555_RGB
Overlay 1
Red 5 bits
Green 5 bits
Blue 5 bits
|o|r|r|r|r|r|g|g|g|g|g|b|b|b|b|b|
Direction flags
DS_BOTTOMTOP: Bottom-to-top is Y position.
DS_TOPBOTTOM: Top-to-bottom is Y position.
Hardcopy flag
DS_QUEUED_RAW_DEFAULT: Set QUEUED to RAW as default.
Notification flag
DS_NOTIFY_LAST_SDBITBLT: Last banded blit per API bit map transfer.
Scanline alignment flags
DS_BYTE_ALIGNMENT: DS scan line alignment.
DS_2BYTE_ALIGNMENT: DS scan line alignment.
DS_4BYTE_ALIGNMENT: DS scan line alignment.
DS_KEEP_EXTFORMAT: Variable alignment; let application decide.
Device Font Flags
Normal output to the device from the graphics subsystem is generated from the device origin with scan lines horizontal and incrementing both pels and scan lines. This output can be altered by the following flags:
DS_BITBLT_XROW_YSCAN: Generates row data as sequential bit stream instead of scan line data.
DS_BITBLT_ROW_NEGATIVE: Generates rows in opposite direction, for example, Start at Device Origin + Device Height.
DS_BITBLT_SCAN_NEGATIVE: Generates scan lines in opposite direction, for example, Start at Device Origin + Device Length.
Output Surface Direction Flags
As of OS/2 Warp Version 4, the graphics subsystem added device font support for the new device driver model. Below are some of the device surface flags to support it:
DS_DOWNLOAD_FONTS: (GRE_VERSION 234) - The device request downloading of system fonts via pfnTextBlt in new cached format.
DS_DEVICE_FONTS: (GRE_VERSION 234) - The device has its own hardware fonts. It will provide font definition information, but wants the system to handle all query and character string operations. It will render fonts via the pfnTextBlt call.
DS_FONT_CLIP_SUPPORT: (GRE_VERSION 238) - In Gre Version 234, only the precise rule is used.
DS_CLIP_100_RULE: Graphics subsystem will not send the glyph to the driver unless it is fully visible.
DS_CLIP_66_RULE: Graphics subsystem will only send the glyph to the driver if it is at least 66% visible.
DS_CLIP_PRECISE_RULE: Graphics subsystem will send the all glyphs to the driver with all the current clip rectangles.
Surface description flag
DS_MEMORY: Memory surface.
ulStyleRatio
Default style ratio used by the current device.
abmapinfoDefPattern[]
Set of default patterns supplied by the graphics engine that can be changed by the presentation driver. [DEFAULT_PATTERNS_NUMBER].
pHWPalette
Default hardware palette for the current device.
DitherMatrix
Default is the generic dither support for hardcopy devices.
For additional details on dithering refer to the section, Dithering/Color Mapping Interface.
ulLength: Length of dither matrix structure.
fExt2IntSup: Gre dither flags for external to internal.
pExt2IntDI: Used for GDM_USERDEF. Pointer to users dither information.
fStretchSup: Gre dither flags for stretch support.
pStretchDI
Used for GDM_USERDEF. Pointer to users dither information.
fLog2PhysSup
Gre dither flags for logical to physical color mapping.
pLog2PhysDI
Used for GDM_USERDEF. Pointer to users dither information.
pfnDither
Used for GDM_USERDEF. Pointer to users dither function.
DitherMatrix Flags:
GDM_NO_DITHER
No dithering in system.
GDM_USERDEF_DITHER
Users supplies own dithering routines.
GDM_MATRIX_DITHER
Use system-ordered dithering.
GDM_ERRORDIF_DITHER
Use system error diffusion dithering.
GDM_DITHER_BEGIN
Used with dithering that needs to save data across output bands of an image.
GDM_DITHER_END
Used with dithering that needs to save data across output bands of an image.
GDM_COLOR_CONVERT
Use device's color mapping functions.
pfnDevLockDC
Pointer to allow the device driver to retrieve its device-specific information from the graphics engine. Pointer is stored by the device driver.
pfnDevUnLockDC
Pointer to the function to release the lock on the current DC. Pointer is stored by the device driver.
pfnBitBlt
Pointer defaults to SOFTDRAW's handling of the new SDBitBlt function. If a device does not have linear address support or would rather handle preclipped bit map transfers itself, then it should hook out this function with its own routine.
pfnLine
Pointer defaults to SOFTDRAW's handling of the new SDLine function. If a device does not have linear address support or would rather handle preclipped line operations itself, then it should hook out this function with its own routine.
pfnTextBlt
Used in conjunction with DS_DOWNLOAD_FONTS and DS_DEVICE_FONTS. If flags are not specified, text strings will be simulated through bitblts.
Refer to Device Font Support for additional details.
pfnLockPhysDev
Pointer prevents other processes from accessing the physical hardware between the lock and unlock.
pfnUnLockPhysDev
Pointer releases the physical hardware for access by other processes.
ulhddc:Handle to device's device context.
ulReserved[4]
Reserved by system.
ulCapsCnt
Size in ULONGs of the DevCaps field.
DevCaps[]
The device capabilities array in OS/2 2.0 and previous versions. Array must be filled out in order for the graphics engine to handle a call to the DevQueryCaps function. [CAPS_MAX_CAPS + 1]