guestrendering/vghwserialiser/inc/driverrfc.h
branchbug235_bringup_0
changeset 1 d8d95053303a
child 22 b801ed730c0a
equal deleted inserted replaced
0:013716db5021 1:d8d95053303a
       
     1 // Copyright (c) 2010 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".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 
       
    15 
       
    16 #ifndef DRIVERREMOTEFUNCTIONCALL_H_
       
    17 #define DRIVERREMOTEFUNCTIONCALL_H_
       
    18 
       
    19 #include "remotefunctioncall.h"
       
    20 #include "serialisedapiuids.h"
       
    21 
       
    22 #include "remotefunctioncall.h"
       
    23 
       
    24 #ifdef __SYMBIAN32__
       
    25     #include <e32const.h>
       
    26     #include <e32def.h>
       
    27     #include <EGL/egl.h>
       
    28 #else
       
    29     #include "EGL/egl.h"
       
    30 #endif
       
    31 
       
    32 #ifdef __SYMBIAN32__
       
    33     #define __VG_OPENVG_H_
       
    34     #include <VG/1.1/openvg.h>
       
    35     #include <VG/vgu.h>
       
    36 #else
       
    37     #define __OPENVGHEADERS_USE_VG_1_1
       
    38     #include <VG/openvg.h>
       
    39     #include "VG/vgu.h"
       
    40 #endif
       
    41 
       
    42 class DriverRFC: public RemoteFunctionCall
       
    43     {
       
    44 public:
       
    45     //Openvg pperation code
       
    46     enum TOperationCode
       
    47         {
       
    48         EDrvClientShutdown,
       
    49         EDrvCreatePoolContext, //for creating the pool context hostside
       
    50         EDrvCreatePbufferSg,
       
    51         EDrvCreateVGImageSg,
       
    52         EDrvDeleteSgImage,
       
    53         EDrvSyncVGImageFromPBuffer
       
    54         };
       
    55 
       
    56 	//Parameter data type
       
    57     enum TParamType
       
    58         {        
       
    59         EPTVoid,
       
    60         EEGLBoolean,
       
    61         EEGLint,
       
    62         EEGLenum,
       
    63         EEGLDisplay,
       
    64         EEGLConfig,
       
    65         EEGLSurface,
       
    66         EEGLContext,
       
    67         EEGLClientBuffer,
       
    68         EEGLImageKHR,
       
    69         EEGLNativeDisplayType,
       
    70         EEGLNativeWindowType,
       
    71         EEGLNativePixmapType,
       
    72         EEGLVoid,
       
    73         ETUint32,
       
    74         //VG parameters
       
    75         EVGfloat,
       
    76         EVGbyte,
       
    77         EVGubyte,
       
    78         EVGshort,
       
    79         EVGint,
       
    80         EVGuint,
       
    81         EVGbitfield,
       
    82         EVGboolean,
       
    83         EVGHandle,
       
    84         EVGErrorCode,
       
    85         EVGParamType, //10
       
    86         EVGRenderingQuality,
       
    87         EVGPixelLayout,
       
    88         EVGMatrixMode,
       
    89         EVGMaskOperation,
       
    90         EVGPathDatatype,
       
    91         EVGPathAbsRel,
       
    92         EVGPathSegment,
       
    93         EVGPathCommand,
       
    94         EVGPath,
       
    95         EVGPathCapabilities, //20
       
    96         EVGPathParamType,
       
    97         EVGCapStyle,
       
    98         EVGJoinStyle,
       
    99         EVGFillRule,
       
   100         EVGPaintMode,
       
   101         EVGPaint,
       
   102         EVGPaintParamType,
       
   103         EVGPaintType,
       
   104         EVGColorRampSpreadMode,
       
   105         EVGTilingMode, //30
       
   106         EVGImageFormat,
       
   107         EVGImage,
       
   108         EVGImageQuality,
       
   109         EVGImageParamType,
       
   110         EVGImageMode,
       
   111         EVGImageChannel,
       
   112         EVGBlendMode,
       
   113         EVGHardwareQueryType,
       
   114         EVGHardwareQueryResult,
       
   115         EVGStringID, //40
       
   116         EVGvoid,
       
   117         EVGUArcType,
       
   118         EVGeglImageKHR
       
   119         };
       
   120 
       
   121     DriverRFC( RemoteFunctionCallData& aData ):
       
   122         RemoteFunctionCall( aData )
       
   123         {
       
   124         }
       
   125     
       
   126 	//Size of type aType
       
   127 	TInt GetTypeSize( TInt32 aParamType ) const;
       
   128 
       
   129     //Alignemnt of type aType
       
   130 	TInt GetTypeAlignment( TInt32 aParamType ) const;
       
   131 
       
   132     //Alignemnt of type aType
       
   133 	TUint32 GetAPIUid() const { return SERIALISED_DRIVER_API_UID; }
       
   134 	
       
   135 	
       
   136 	
       
   137 	inline void AppendEGLBoolean( const EGLBoolean& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   138     inline void AppendEGLint( const EGLint& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   139     inline void AppendEGLenum( const EGLenum& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   140     inline void AppendEGLDisplay( const EGLDisplay& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   141     inline void AppendEGLConfig( const EGLConfig& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   142     inline void AppendEGLSurface( const EGLSurface& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   143     inline void AppendEGLContext( const EGLContext& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   144     inline void AppendEGLClientBuffer( const EGLClientBuffer& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   145     inline void AppendEGLImageKHR( const EGLImageKHR& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   146     inline void AppendEGLNativeDisplayType( const NativeDisplayType& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   147     inline void AppendEGLNativeWindowType( const NativeWindowType& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   148     inline void AppendEGLNativePixmapType( const NativePixmapType& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );    
       
   149 #ifdef __SYMBIAN32__
       
   150     inline void AppendEGLSize( const TSize& aSize, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   151 #endif
       
   152 
       
   153     //Gets a simple parameter value from parameter array
       
   154     inline void GetEGLBoolean( EGLBoolean& aParam, TInt aIndex );
       
   155     inline void GetEGLint( EGLint& aParam, TInt aIndex );
       
   156     inline void GetEGLenum( EGLenum& aParam, TInt aIndex );
       
   157     inline void GetEGLDisplay( EGLDisplay& aParam, TInt aIndex );
       
   158     inline void GetEGLConfig( EGLConfig& aParam, TInt aIndex );
       
   159     inline void GetEGLSurface( EGLSurface& aParam, TInt aIndex );
       
   160     inline void GetEGLContext( EGLContext& aParam, TInt aIndex );
       
   161     inline void GetEGLClientBuffer( EGLClientBuffer& aParam, TInt aIndex );
       
   162     inline void GetEGLImageKHR( EGLImageKHR& aParam, TInt aIndex );
       
   163     inline void GetEGLNativeDisplayType( NativeDisplayType& aParam, TInt aIndex );
       
   164     inline void GetEGLNativeWindowType( NativeWindowType& aParam, TInt aIndex );
       
   165     inline void GetEGLNativePixmapType( NativePixmapType& aParam, TInt aIndex );
       
   166 
       
   167     //Gets a pointer to an array parameter from parameter array
       
   168     inline void GetEGLintVectorData( EGLint* &aData, TInt& aSize, TInt aIndex );
       
   169     inline void GetEGLConfigVectorData( EGLConfig* &aData, TInt& aSize, TInt aIndex );
       
   170     inline void GetVectorData( void* &aData, TInt& aSize, TInt aIndex );
       
   171 
       
   172     //Sets a pointer to the data of an array parameter
       
   173     inline void SetEGLintVectorData( const EGLint* aData, TInt aLength, TInt aIndex );
       
   174     inline void SetEGLConfigVectorData( const EGLConfig* aData, TInt aLength, TInt aIndex );
       
   175     inline void SetVectorData( const void* aData, TInt aLength, TInt aIndex );
       
   176 
       
   177     //Appends an array parameter to the parameter array
       
   178     // Does not serialize any data
       
   179     inline void AppendEGLintVector( const EGLint* aData, TInt aLength, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   180     inline void AppendEGLConfigVector( const EGLConfig* aData, TInt aLength, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   181     inline void AppendVector( const void* aData, TInt aLength, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   182     
       
   183     
       
   184      inline void AppendTUint32( const TUint32& aParam, RemoteFunctionCallData::TParamDirection aDir = RemoteFunctionCallData::EIn );
       
   185      inline void GetTUint32( TUint32& aParam, TInt aIndex );
       
   186     
       
   187 //    
       
   188     //VG parameters
       
   189     //Appends a simple parameter to the parameter array
       
   190     // Does not serialize any data
       
   191     inline void AppendVGParam( const VGfloat& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   192     inline void AppendVGParam( const VGbyte& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   193     inline void AppendVGParam( const VGubyte& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   194     inline void AppendVGParam( const VGshort& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   195     inline void AppendVGParam( const VGint& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   196     inline void AppendVGParam( const VGuint& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   197     inline void AppendVGParam( const VGboolean& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   198     inline void AppendVGParam( const VGErrorCode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   199     inline void AppendVGParam( const VGParamType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   200     inline void AppendVGParam( const VGRenderingQuality& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   201     inline void AppendVGParam( const VGPixelLayout& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   202     inline void AppendVGParam( const VGMatrixMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   203     inline void AppendVGParam( const VGMaskOperation& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   204     inline void AppendVGParam( const VGPathDatatype& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   205     inline void AppendVGParam( const VGPathAbsRel& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   206     inline void AppendVGParam( const VGPathSegment& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   207     inline void AppendVGParam( const VGPathCommand& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );   
       
   208     inline void AppendVGParam( const VGPathCapabilities& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   209     inline void AppendVGParam( const VGPathParamType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   210     inline void AppendVGParam( const VGCapStyle& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   211     inline void AppendVGParam( const VGJoinStyle& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   212     inline void AppendVGParam( const VGFillRule& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   213     inline void AppendVGParam( const VGPaintMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   214     inline void AppendVGParam( const VGPaintParamType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   215     inline void AppendVGParam( const VGPaintType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   216     inline void AppendVGParam( const VGColorRampSpreadMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   217     inline void AppendVGParam( const VGTilingMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   218     inline void AppendVGParam( const VGImageFormat& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   219     inline void AppendVGParam( const VGImageQuality& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   220     inline void AppendVGParam( const VGImageParamType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   221     inline void AppendVGParam( const VGImageMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   222     inline void AppendVGParam( const VGImageChannel& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   223     inline void AppendVGParam( const VGBlendMode& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   224     inline void AppendVGParam( const VGHardwareQueryType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   225     inline void AppendVGParam( const VGHardwareQueryResult& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   226     inline void AppendVGParam( const VGStringID& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   227     inline void AppendVGParam( const VGUArcType& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   228 #ifdef __SYMBIAN32__
       
   229     inline void AppendVGParam( const VGeglImageKHR& aParam, RemoteFunctionCallData::TParamDirection iDir = RemoteFunctionCallData::EIn );
       
   230 #endif
       
   231         
       
   232     //Gets a simple parameter value from parameter array
       
   233     inline void GetVGParamValue( VGfloat& aParam, TInt aIndex );
       
   234     inline void GetVGParamValue( VGbyte& aParam, TInt aIndex );
       
   235     inline void GetVGParamValue( VGubyte& aParam, TInt aIndex );
       
   236     inline void GetVGParamValue( VGshort& aParam, TInt aIndex );
       
   237     inline void GetVGParamValue( VGint& aParam, TInt aIndex );
       
   238     inline void GetVGParamValue( VGuint& aParam, TInt aIndex );
       
   239     inline void GetVGParamValue( VGboolean& aParam, TInt aIndex );
       
   240     inline void GetVGParamValue( VGErrorCode& aParam, TInt aIndex );
       
   241     inline void GetVGParamValue( VGParamType& aParam, TInt aIndex );
       
   242     inline void GetVGParamValue( VGRenderingQuality& aParam, TInt aIndex );
       
   243     inline void GetVGParamValue( VGPixelLayout& aParam, TInt aIndex );
       
   244     inline void GetVGParamValue( VGMatrixMode& aParam, TInt aIndex );
       
   245     inline void GetVGParamValue( VGMaskOperation& aParam, TInt aIndex );
       
   246     inline void GetVGParamValue( VGPathDatatype& aParam, TInt aIndex );
       
   247     inline void GetVGParamValue( VGPathAbsRel& aParam, TInt aIndex );
       
   248     inline void GetVGParamValue( VGPathSegment& aParam, TInt aIndex );
       
   249     inline void GetVGParamValue( VGPathCommand& aParam, TInt aIndex );   
       
   250     inline void GetVGParamValue( VGPathCapabilities& aParam, TInt aIndex );
       
   251     inline void GetVGParamValue( VGPathParamType& aParam, TInt aIndex );
       
   252     inline void GetVGParamValue( VGCapStyle& aParam, TInt aIndex );
       
   253     inline void GetVGParamValue( VGJoinStyle& aParam, TInt aIndex );
       
   254     inline void GetVGParamValue( VGFillRule& aParam, TInt aIndex );
       
   255     inline void GetVGParamValue( VGPaintMode& aParam, TInt aIndex );
       
   256     inline void GetVGParamValue( VGPaintParamType& aParam, TInt aIndex );
       
   257     inline void GetVGParamValue( VGPaintType& aParam, TInt aIndex );
       
   258     inline void GetVGParamValue( VGColorRampSpreadMode& aParam, TInt aIndex );
       
   259     inline void GetVGParamValue( VGTilingMode& aParam, TInt aIndex );
       
   260     inline void GetVGParamValue( VGImageFormat& aParam, TInt aIndex );
       
   261     inline void GetVGParamValue( VGImageQuality& aParam, TInt aIndex );
       
   262     inline void GetVGParamValue( VGImageParamType& aParam, TInt aIndex );
       
   263     inline void GetVGParamValue( VGImageMode& aParam, TInt aIndex );
       
   264     inline void GetVGParamValue( VGImageChannel& aParam, TInt aIndex );
       
   265     inline void GetVGParamValue( VGBlendMode& aParam, TInt aIndex );
       
   266     inline void GetVGParamValue( VGHardwareQueryType& aParam, TInt aIndex );
       
   267     inline void GetVGParamValue( VGHardwareQueryResult& aParam, TInt aIndex );
       
   268     inline void GetVGParamValue( VGStringID& aParam, TInt aIndex );
       
   269     inline void GetVGParamValue( VGUArcType& aParam, TInt aIndex );
       
   270     
       
   271 
       
   272     };
       
   273 #include "driverrfc.inl"
       
   274 
       
   275 #endif