Software Database

Search for resolved Bug or Feature Request:

ID:
Feature:Now it is possible to add a customer bitmap with variable alphaBlend as an overlay onto the working area.
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;


State:solved, bug fixed / feature implemented
Solved in version(s):REL_3_0_5_20111202_0791
3.0.5


Go to software changelog