Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.TS_FP_UPDATE_PDU.EncodeNewPtr C# (CSharp) Method

EncodeNewPtr() private method

private EncodeNewPtr ( TS_FP_POINTERATTRIBUTE ptrData ) : byte[]
ptrData TS_FP_POINTERATTRIBUTE
return byte[]
        private byte[] EncodeNewPtr(TS_FP_POINTERATTRIBUTE ptrData)
        {
            List<byte> totalBuffer = new List<byte>();
            List<byte> buffer = new List<byte>();

            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.xorBpp);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.cacheIndex);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.hotSpot.xPos);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.hotSpot.yPos);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.width);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.height);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.lengthAndMask);
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.lengthXorMask);
            if (ptrData.newPointerUpdateData.colorPtrAttr.xorMaskData != null)
            {
                RdpbcgrEncoder.EncodeBytes(buffer, ptrData.newPointerUpdateData.colorPtrAttr.xorMaskData);
            }
            if (ptrData.newPointerUpdateData.colorPtrAttr.andMaskData != null)
            {
                RdpbcgrEncoder.EncodeBytes(buffer, ptrData.newPointerUpdateData.colorPtrAttr.andMaskData);
            }
            RdpbcgrEncoder.EncodeStructure(buffer, ptrData.newPointerUpdateData.colorPtrAttr.pad);

            if (ptrData.compressionFlags != compressedType_Values.None)
            {
                RdpbcgrEncoder.EncodeBytes(
                    totalBuffer, serverSessionContext.Compress(ptrData.compressionFlags, buffer.ToArray()));
            }
            else
            {
                RdpbcgrEncoder.EncodeBytes(totalBuffer, buffer.ToArray());
            }
            return totalBuffer.ToArray();
        }