sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: #ifndef SWDIRECTGDIIMAGESOURCEIMPL_H_
sl@0: #define SWDIRECTGDIIMAGESOURCEIMPL_H_
sl@0: 
sl@0: /**
sl@0: @file
sl@0: @internalComponent
sl@0: */
sl@0: 
sl@0: #include "directgdiimageref.h"
sl@0: #include <e32def.h>
sl@0: 
sl@0: class CSwDirectGdiDriverImpl;
sl@0: 
sl@0: /**
sl@0: A concrete software implementation of an image source represented by an RSgImage.
sl@0: */
sl@0: NONSHARABLE_CLASS(CSwDirectGdiImageSourceImpl) : public CDirectGdiImageRef
sl@0: {
sl@0: public:
sl@0: 	static TInt New(CSwDirectGdiImageSourceImpl*& aImage, CSwDirectGdiDriverImpl& aDriver, const RSgImage& aSgImage);
sl@0: 	virtual ~CSwDirectGdiImageSourceImpl();
sl@0: 	inline TInt Stride() const { return iStride; }	
sl@0: 	inline TAny* DataBuffer() const { return iDataBuffer; }
sl@0: 
sl@0: private:
sl@0: 	CSwDirectGdiImageSourceImpl(CSwDirectGdiDriverImpl& aDriver);
sl@0: 	TInt Construct(const RSgImage& aSgImage);
sl@0: 	
sl@0: private:
sl@0: 	CSwDirectGdiDriverImpl& iDriver;
sl@0: 	TAny* iDataBuffer;
sl@0: 	TInt iStride;
sl@0: };
sl@0: 
sl@0: #endif /*SWDIRECTGDIIMAGESOURCEIMPL_H_*/