javauis/lcdui_akn/lcdgd/inc/collision.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:30:29 +0300
branchRCL_3
changeset 19 04becd199f91
permissions -rw-r--r--
Revision: v2.1.22 Kit: 201017

/*
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/


#ifndef COLLISION_H
#define COLLISION_H

#include <gdi.h>
class TAcceleratedBitmapInfo;
class TLcdTransform;
class TRect;

enum TDisplayModeBit
{
    ENoneBit        = (1<<ENone),
    EGray2Bit       = (1<<EGray2),
    EGray256Bit     = (1<<EGray256),
    EColor64KBit    = (1<<EColor64K),
    EColor4KBit     = (1<<EColor4K),
    EColor16MUBit   = (1<<EColor16MU),
    EColor16MABit   = (1<<EColor16MA)
};

enum TTransparencyBit
{
    ETransparencyNoneBit        = 1<<ETransparencyNone,
    ETransparencyMaskBitmapBit  = 1<<ETransparencyMaskBitmap,
    ETransparencyAlphaBitmapBit = 1<<ETransparencyAlphaBitmap,
    ETransparencyAlphaChannelBit= 1<<ETransparencyAlphaChannel,
    ETransparencyMaskChannelBit = 1<<ETransparencyMaskChannel,
};

// Display modes currently supported by GenericDetectCollision
const TUint KGenericModesMask = ENoneBit
                                | EGray2Bit
                                | EGray256Bit
                                | EColor64KBit
                                | EColor4KBit
                                | EColor16MUBit
                                | EColor16MABit;

// Transparency types currently supported by GenericDetectCollision
const TUint KGenericTransMask = ETransparencyNoneBit
                                | ETransparencyMaskBitmapBit
                                | ETransparencyAlphaBitmapBit;

TBool IsOpaque(TDisplayMode aDisplayMode, TUint8* aAddress, TInt aLinePitch , TInt aX, TInt aY);

TBool GenericDetectCollision
(
    const TAcceleratedBitmapInfo*   aBitmap1,
    const TAcceleratedBitmapInfo*   aBitmap2,
    const TRect&                    aRect1,
    const TRect&                    aRect2,
    const TLcdTransform&            aTransform1,
    const TLcdTransform&            aTransform2
);

TBool DetectCollisionGray2Gray2
(
    const TAcceleratedBitmapInfo*   aGray2Bitmap1,
    const TAcceleratedBitmapInfo*   aGray2Bitmap2,
    const TRect&                    aRect1,
    const TRect&                    aRect2,
    const TLcdTransform&            aTransform1,
    const TLcdTransform&            aTransform2
);

TBool DetectCollisionGray256Gray256
(
    const TAcceleratedBitmapInfo*   aGray256Bitmap1,
    const TAcceleratedBitmapInfo*   aGray256Bitmap2,
    const TRect&                    aRect1,
    const TRect&                    aRect2,
    const TLcdTransform&            aTransform1,
    const TLcdTransform&            aTransform2
);

TBool DetectCollisionGray2Gray256
(
    const TAcceleratedBitmapInfo*   aGray2Bitmap1,
    const TAcceleratedBitmapInfo*   aGray256Bitmap2,
    const TRect&                    aRect1,
    const TRect&                    aRect2,
    const TLcdTransform&            aTransform1,
    const TLcdTransform&            aTransform2
);

TBool DetectCollisionGray256Gray2
(
    const TAcceleratedBitmapInfo*   aGray256Bitmap1,
    const TAcceleratedBitmapInfo*   aGray2Bitmap2,
    const TRect&                    aRect1,
    const TRect&                    aRect2,
    const TLcdTransform&            aTransform1,
    const TLcdTransform&            aTransform2
);

TBool HasOpaquePixel
(
    const TAcceleratedBitmapInfo*   aBitmap,
    const TRect&                    aRect
);

TBool HasOpaquePixelGray2
(
    const TAcceleratedBitmapInfo*   aGray2Bitmap,
    const TRect&                    aRect
);

TBool HasOpaquePixelGray256
(
    const TAcceleratedBitmapInfo*   aGray256Bitmap,
    const TRect&                    aRect
);

#endif // COLLISION_H