//export webRDPopaquerect func webRDPopaquerect(context *C.rdpContext, opaque_rect *C.OPAQUE_RECT_ORDER) C.BOOL { log.Println("webRDPopaquerect") color := C.freerdp_color_convert_var(opaque_rect.color, 32, 32, convert2webContext(context).clrconv) log.Printf("webRDPopaquerect:%x==>%x", opaque_rect.color, color) info := RdpDrawInfo{} info.Type = 2 info.Color = uint32(color) info.Left = uint16(opaque_rect.nLeftRect) info.Top = uint16(opaque_rect.nTopRect) info.Width = uint16(opaque_rect.nWidth) info.Height = uint16(opaque_rect.nHeight) writeByChen(context, info) return true }
//export primaryOpaqueRect func primaryOpaqueRect(rawContext *C.rdpContext, oro *C.OPAQUE_RECT_ORDER) { context := (*rdpContext)(unsafe.Pointer(rawContext)) hclrconv := context.clrconv svcolor := oro.color oro.color = C.freerdp_color_convert_var(oro.color, 16, 32, hclrconv) buf := new(bytes.Buffer) binary.Write(buf, binary.LittleEndian, WSOP_SC_OPAQUERECT) binary.Write(buf, binary.LittleEndian, oro) sendBinary(context.sendq, buf) oro.color = svcolor }
//export primaryMultiOpaqueRect func primaryMultiOpaqueRect(rawContext *C.rdpContext, moro *C.MULTI_OPAQUE_RECT_ORDER) { context := (*rdpContext)(unsafe.Pointer(rawContext)) hclrconv := context.clrconv color := C.freerdp_color_convert_var(moro.color, 16, 32, hclrconv) buf := new(bytes.Buffer) binary.Write(buf, binary.LittleEndian, WSOP_SC_MULTI_OPAQUERECT) binary.Write(buf, binary.LittleEndian, int32(color)) binary.Write(buf, binary.LittleEndian, int32(moro.numRectangles)) var r *C.DELTA_RECT var i int for i = 1; i <= int(moro.numRectangles); i++ { r = C.nextMultiOpaqueRectangle(moro, C.int(i)) binary.Write(buf, binary.LittleEndian, r) } sendBinary(context.sendq, buf) }
//export primaryPatBlt func primaryPatBlt(rawContext *C.rdpContext, patblt *C.PATBLT_ORDER) { context := (*rdpContext)(unsafe.Pointer(rawContext)) hclrconv := context.clrconv if C.GDI_BS_SOLID == patblt.brush.style { meta := primaryPatBltMeta{ WSOP_SC_PATBLT, int32(patblt.nLeftRect), int32(patblt.nTopRect), int32(patblt.nWidth), int32(patblt.nHeight), uint32(C.freerdp_color_convert_var(patblt.foreColor, 16, 32, hclrconv)), uint32(C.gdi_rop3_code(C.uint8(patblt.bRop))), } buf := new(bytes.Buffer) binary.Write(buf, binary.LittleEndian, meta) sendBinary(context.sendq, buf) } }