Example #1
0
//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
}
Example #2
0
//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
}
Example #3
0
//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)
}
Example #4
0
//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)
	}
}