TInt COpenWFC_RI_DisplayUpdater::SetAttribute(TInt aAttributeId, TAny* aAttribute, TInt aAttributeSize) { LOG((" +++ COpenWFC_RI_DisplayUpdater::SetAttribute(%d, 0x%X, %d)", aAttributeId, aAttribute, aAttributeSize)); // the only parameter we can modify is the current rotation TInt parameterSize = GetAttributeSize(aAttributeId); if (aAttributeSize != parameterSize || aAttribute == NULL) { LOG((" !!! COpenWFC_RI_DisplayUpdater::SetAttribute() Invalid parameter")); return KErrArgument; } switch (aAttributeId) { case EScreenAttributeCurrentRotation: iNewRotation = static_cast<TScreenRotation>(*((TUint32*)aAttribute)); LOG((" +++ COpenWFC_RI_DisplayUpdater::SetAttribute(CurrentRotation, %d)", (TInt)iNewRotation)); break; default: LOG((" !!! COpenWFC_RI_DisplayUpdater::SetAttribute() Invalid attribute")); return KErrNotSupported; } LOG((" --- COpenWFC_RI_DisplayUpdater::SetAttribute()")); return KErrNone; }
VertexFormat::VertexFormat(std::initializer_list<VertexAttribute> attribs) : VertexFormat() { uint16_t totalOffset = 0; for (auto attrib : attribs) { uint16_t attribSize = GetAttributeSize(attrib); uint16_t attribCompCount = GetAttributeCompCount(attrib); DF3D_ASSERT(attribCompCount >= 1 && attribCompCount <= 4); m_attribs[attrib] = (totalOffset << 8) | attribCompCount; m_size += attribSize; totalOffset = m_size; DF3D_ASSERT(totalOffset <= (2 << 8)); } }
TInt COpenWFC_RI_DisplayUpdater::GetAttribute(TInt aAttributeId, TAny* aAttribute, TInt aAttributeSize) { LOG((" +++ COpenWFC_RI_DisplayUpdater::GetAttribute(%d, 0x%X, %d)", aAttributeId, aAttribute, aAttributeSize)); TInt parameterSize = GetAttributeSize(aAttributeId); if (aAttribute == NULL) { LOG((" !!! COpenWFC_RI_DisplayUpdater::GetAttribute() aAttribute NULL ptr")); return KErrArgument; } if (parameterSize == 0) { LOG((" !!! COpenWFC_RI_DisplayUpdater::GetAttribute() Not Supported parameter aAttributeId")); return KErrNotSupported; } if (aAttributeSize != parameterSize) { LOG((" !!! COpenWFC_RI_DisplayUpdater::GetAttribute() aAttributeSize wrong size")); return KErrArgument; } switch (aAttributeId) { case EScreenAttributeImplementationVersion: *((TUint32*)aAttribute) = KImplementationVersion; break; case EScreenAttributePixelFormat: *((TUint32*)aAttribute) = iScreenInfo.iPixelFormat; break; case EScreenAttributeBytesPerPixel: *((TUint32*)aAttribute) = iScreenInfo.iBytesPerPixel; break; case EScreenAttributeSupportedRotation: *((TUint32*)aAttribute) = iScreenInfo.iSupportedRotations; break; case EScreenAttributeNormalWidth: *((TUint32*)aAttribute) = iScreenInfo.iNormalWidth; break; case EScreenAttributeNormalHeight: *((TUint32*)aAttribute) = iScreenInfo.iNormalHeight; break; case EScreenAttributeNormalStride: *((TUint32*)aAttribute) = iScreenInfo.iNormalStride; break; case EScreenAttributeFlippedWidth: *((TUint32*)aAttribute) = iScreenInfo.iFlippedWidth; break; case EScreenAttributeFlippedHeight: *((TUint32*)aAttribute) = iScreenInfo.iFlippedHeight; break; case EScreenAttributeFlippedStride: *((TUint32*)aAttribute) = iScreenInfo.iFlippedStride; break; case EScreenAttributeDefaultRotation: *((TUint32*)aAttribute) = iScreenInfo.iDefaultRotation; break; case EScreenAttributeCurrentRotation: *((TUint32*)aAttribute) = iScreenInfo.iCurrentRotation; break; case EScreenAttributeScreenGeometry: *((TScreenGeometryAttribute*)aAttribute) = iScreenInfo; break; default: LOG((" !!! COpenWFC_RI_DisplayUpdater::GetAttribute() attribute unrecognised")); return KErrNotSupported; } LOG((" --- COpenWFC_RI_DisplayUpdater::GetAttribute() = %d", *((TUint32*)aAttribute))); return KErrNone; }