os/graphics/graphicsresourceservices/graphicsresourceimplementation/src/sgdrawable.cpp
First public contribution.
1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Graphics Resource - drawable implementation
19 EXPORT_C TInt RSgDrawable::Open(TSgDrawableId aId, const TSgAttributeArrayBase* aAttributes)
25 __ASSERT_ALWAYS(gPls.iDriver, Panic(ESgPanicNoDriver));
26 return gPls.iDriver->FindAndOpenImage(aId, aAttributes, iImpl);
29 EXPORT_C void RSgDrawable::Close()
33 __ASSERT_ALWAYS(gPls.iDriver, Panic(ESgPanicNoDriver));
34 __ASSERT_ALWAYS(gPls.iDriver->CheckImage(iImpl), Panic(ESgPanicBadDrawableHandle));
35 static_cast<XSgImage*>(iImpl)->Close();
40 EXPORT_C TSgDrawableId RSgDrawable::Id() const
44 return KSgNullDrawableId;
46 __ASSERT_ALWAYS(gPls.iDriver, Panic(ESgPanicNoDriver));
47 __ASSERT_ALWAYS(gPls.iDriver->CheckImage(iImpl), Panic(ESgPanicBadDrawableHandle));
48 return static_cast<XSgImage*>(iImpl)->Id();
51 EXPORT_C TUid RSgDrawable::DrawableType() const
57 __ASSERT_ALWAYS(gPls.iDriver, Panic(ESgPanicNoDriver));
58 __ASSERT_ALWAYS(gPls.iDriver->CheckImage(iImpl), Panic(ESgPanicBadDrawableHandle));
59 return static_cast<XSgImage*>(iImpl)->DrawableType();
62 EXPORT_C TInt RSgDrawable::GetInterface(TUid aInterfaceUid, TAny*& aInterfacePtr) const
69 __ASSERT_ALWAYS(gPls.iDriver, Panic(ESgPanicNoDriver));
70 __ASSERT_ALWAYS(gPls.iDriver->CheckImage(iImpl), Panic(ESgPanicBadDrawableHandle));
71 return static_cast<XSgImage*>(iImpl)->GetInterface(aInterfaceUid, aInterfacePtr);