mdfdevvideoextensions/nga_mdf_postprocessor_shai/src/NGAPostProcSurfaceHandler.cpp
author hgs
Thu, 16 Sep 2010 18:57:38 +0100
changeset 58 b6dbf97aba93
permissions -rw-r--r--
2010wk36_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     1
/*
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     3
* All rights reserved.
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     8
*
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    11
*
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    12
* Contributors:
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    13
*
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    14
* Description:
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    15
*
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    16
*/
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    17
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    18
 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    19
#include <e32base.h>
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    20
#include <graphics/surface.h> //TSurfaceId
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    21
#include <graphics/surfacemanager.h> //RSurfaceManager
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    22
#include "MdfRDebug.h"
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    23
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    24
#include "NGAPostProcSurfaceHandler.h"
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    25
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    26
//**************************************************
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    27
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    28
CNGAPostProcSurfaceHandler* CNGAPostProcSurfaceHandler::NewL() 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    29
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    30
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler:NewL() ++"));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    31
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    32
    CNGAPostProcSurfaceHandler* self = new (ELeave) CNGAPostProcSurfaceHandler; 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    33
    CleanupStack::PushL(self);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    34
    self->ConstructL(); 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    35
    CleanupStack::Pop();
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    36
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    37
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler:NewL() --"));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    38
    return self; 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    39
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    40
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    41
void CNGAPostProcSurfaceHandler::ConstructL() 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    42
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    43
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:ConstructL() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    44
    iSurfaceManager = new (ELeave) RSurfaceManager();
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    45
    User::LeaveIfError(iSurfaceManager->Open());
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    46
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:ConstructL() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    47
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    48
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    49
CNGAPostProcSurfaceHandler::CNGAPostProcSurfaceHandler() 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    50
:iSurfaceManager(NULL),
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    51
 iSurfaceAttributes(iSurfaceAttributesBuf())
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    52
{
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    53
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    54
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    55
CNGAPostProcSurfaceHandler::~CNGAPostProcSurfaceHandler()
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    56
{
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    57
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:~() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    58
   if (iSurfaceManager)
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    59
   {
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    60
    iSurfaceManager->Close();
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    61
    delete iSurfaceManager;
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    62
    iSurfaceManager = NULL;
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    63
   }
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    64
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:~() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    65
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    66
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    67
TInt CNGAPostProcSurfaceHandler::CreateSurface(
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    68
							const RSurfaceManager::TSurfaceCreationAttributes & aAttributes, 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    69
							TSurfaceId& aSurfaceId, const RChunk& aChunk) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    70
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    71
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:CreateSurface() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    72
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:CreateSurface() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    73
   
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    74
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    75
   iSurfaceAttributes = aAttributes;
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    76
   return(iSurfaceManager->CreateSurface(iSurfaceAttributesBuf, aSurfaceId, aChunk));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    77
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    78
TInt CNGAPostProcSurfaceHandler::CreateSurface(
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    79
							const RSurfaceManager::TSurfaceCreationAttributesBuf & aAttributes, 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    80
							TSurfaceId& aSurfaceId) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    81
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    82
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:CreateSurface() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    83
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:CreateSurface() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    84
    return(iSurfaceManager->CreateSurface(aAttributes, aSurfaceId));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    85
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    86
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    87
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    88
TInt CNGAPostProcSurfaceHandler::OpenSurface(const TSurfaceId& aSurfaceId) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    89
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    90
 PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:OpenSurface() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    91
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:OpenSurface() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    92
	return(iSurfaceManager->OpenSurface(aSurfaceId));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    93
    
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    94
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    95
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    96
TInt CNGAPostProcSurfaceHandler::MapSurface(const TSurfaceId& aSurfaceId, RChunk& aHandle) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    97
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    98
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:MapSurface() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
    99
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:MapSurface() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   100
	return(iSurfaceManager->MapSurface(aSurfaceId, aHandle));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   101
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   102
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   103
TInt CNGAPostProcSurfaceHandler::SurfaceInfo(const TSurfaceId& aSurfaceId, 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   104
											RSurfaceManager::TInfoBuf& aInfo) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   105
{
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   106
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:SurfaceInfo() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   107
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:SurfaceInfo() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   108
	return(iSurfaceManager->SurfaceInfo(aSurfaceId, aInfo));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   109
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   110
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   111
TInt CNGAPostProcSurfaceHandler::DestroySurface(const TSurfaceId& aSurfaceId) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   112
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   113
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:DestroySurface() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   114
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:DestroySurface() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   115
	return(iSurfaceManager->CloseSurface(aSurfaceId));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   116
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   117
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   118
TInt CNGAPostProcSurfaceHandler::GetBufferOffset(const TSurfaceId& aSurfaceId, TInt aBuffer, TInt& aOffset) 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   119
{ 
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   120
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:GetBufferOffset() aBuffer = %d++"), this, aBuffer);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   121
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:GetBufferOffset() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   122
	return(iSurfaceManager->GetBufferOffset(aSurfaceId, aBuffer, aOffset));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   123
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   124
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   125
TInt CNGAPostProcSurfaceHandler::AddSurfaceHint(const TSurfaceId& aSurfaceId,const RSurfaceManager::THintPair& aHint)
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   126
{
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   127
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:AddSurfaceHint() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   128
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:AddSurfaceHint() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   129
	return(iSurfaceManager->AddSurfaceHint(aSurfaceId, aHint));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   130
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   131
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   132
TInt CNGAPostProcSurfaceHandler::SetSurfaceHint(const TSurfaceId& aSurfaceId,const RSurfaceManager::THintPair& aHint)
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   133
{
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   134
   PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:SetSurfaceHint() ++"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   135
	PP_DEBUG(_L("CNGAPostProcSurfaceHandler[%x]:SetSurfaceHint() --"), this);
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   136
	return(iSurfaceManager->SetSurfaceHint(aSurfaceId, aHint));
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   137
}
b6dbf97aba93 2010wk36_01
hgs
parents:
diff changeset
   138