| Description: | Now it is possible to add a customer bitmap with variable alphaBlend as an overlay onto the working area:
( Currently only working for In-Process SAM code - if required ( for e.g. clientCtrl app, an additional solution with source bitmap in shared memory will be implemented ... ).
Code to send the bitmap handle to Sam2D:
// AlphaBlend // sl_get_kernel()->ScSetLongValue( scComLongValueIDBmpAlphaBlendSourceConstantAlpha, 120 );
m_bitmap.LoadBitmapW( IDB_BITMAP_STOP );
BITMAP bm;
VERIFY( m_bitmap.GetBitmap( &bm ) );
sl_get_kernel()->ScSetLongValue( scComLongValueIDBmpAlphaBlendBmpDimX, ( long )bm.bmWidth ); sl_get_kernel()->ScSetLongValue( scComLongValueIDBmpAlphaBlendBmpDimY, ( long )bm.bmHeight );
VERIFY( sl_get_kernel()->ScSetLongValue( scComLongValueIDBmpAlphaBlendHandleBmp, ( long )m_bitmap.m_hObject ) == S_OK );
ClientCtrl ( Funktionen ScGetLongValue() / ScSetLongValue() ):
#define SC_SAMLIGHT_CLIENT_CTRL_LONG_VALUE_TYPE_BMP_ALPHA_BLEND_SOURCE_CONSTANT_ALPHA 0x0032 #define SC_SAMLIGHT_CLIENT_CTRL_LONG_VALUE_TYPE_BMP_ALPHA_BLEND_CENTER_POINT_X 0x0033 #define SC_SAMLIGHT_CLIENT_CTRL_LONG_VALUE_TYPE_BMP_ALPHA_BLEND_CENTER_POINT_Y 0x0034 #define SC_SAMLIGHT_CLIENT_CTRL_LONG_VALUE_TYPE_BMP_ALPHA_BLEND_BMP_DIM_X 0x0035 #define SC_SAMLIGHT_CLIENT_CTRL_LONG_VALUE_TYPE_BMP_ALPHA_BLEND_BMP_DIM_Y 0x0036
typedef [uuid(03EEBA6A-EEDB-4cf4-8484-400A6AB265B6), helpstring("SAMLightClientCtrl Value Types"),v1_enum] enum ScComSAMLightClientCtrlValueTypes{
… scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendSourceConstantAlpha: [ 0 .. 255 ] ( 255 = full overlay ). scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendCenterPointX / Y : If both '0', overlay bitmap is centered onto the working area output bitmap. scComSAMLightClientCtrlLongValueTypeBmpAlphaBlendBmpDimX / Y: Required bitmap size. …
SAM-ScKernel()-Programming (Functions ScGetLongValue() / ScSetLongValue() ):
#define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_HANDLE_BMP 27 #define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_SOURCE_CONSTANT_ALPHA 28 #define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_CENTER_POINT_X 29 #define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_CENTER_POINT_Y 30 #define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_BMP_DIM_X 31 #define SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_BMP_DIM_Y 32
[uuid(83DFCA51-77D5-11d1-8D8E-008048E1AD3F), helpstring("Constants for ScapsSamKernel")] module ScConstantsKernel{
… [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendHandleBmp = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_HANDLE_BMP; [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendSourceConstantAlpha = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_SOURCE_CONSTANT_ALPHA; [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendCenterPointX = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_CENTER_POINT_X; [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendCenterPointY = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_CENTER_POINT_Y; [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendBmpDimX = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_BMP_DIM_X; [helpstring("Long Value ID")] const long scComLongValueIDBmpAlphaBlendBmpDimY = SC_COM_KERNEL_LONG_VALUE_ID_BMP_ALPHA_BLEND_BMP_DIM_Y; …
|