libfreerdp-gdi: start updating with new interface
This commit is contained in:
parent
0f9e9a0d15
commit
70ebd47cc4
@ -42,6 +42,10 @@ typedef int (*pcChannelDataInput)(freerdp* freerdp, int channelId, uint8* data,
|
||||
struct rdp_freerdp
|
||||
{
|
||||
void* rdp;
|
||||
void* param1;
|
||||
void* param2;
|
||||
void* param3;
|
||||
void* param4;
|
||||
rdpInput* input;
|
||||
rdpUpdate* update;
|
||||
rdpSettings* settings;
|
||||
|
@ -1063,6 +1063,7 @@ gdi_ui_decode(struct rdp_inst * inst, uint8 * data, int size)
|
||||
gdi_decode_data(gdi, data, size);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Register GDI callbacks with libfreerdp.
|
||||
@ -1070,38 +1071,32 @@ gdi_ui_decode(struct rdp_inst * inst, uint8 * data, int size)
|
||||
* @return
|
||||
*/
|
||||
|
||||
static int
|
||||
gdi_register_callbacks(rdpInst * inst)
|
||||
void gdi_register_update_callbacks(rdpUpdate* update)
|
||||
{
|
||||
inst->ui_desktop_save = gdi_ui_desktop_save;
|
||||
inst->ui_desktop_restore = gdi_ui_desktop_restore;
|
||||
inst->ui_create_bitmap = gdi_ui_create_bitmap;
|
||||
inst->ui_paint_bitmap = gdi_ui_paint_bitmap;
|
||||
inst->ui_destroy_bitmap = gdi_ui_destroy_bitmap;
|
||||
inst->ui_line = gdi_ui_line;
|
||||
inst->ui_rect = gdi_ui_rect;
|
||||
inst->ui_polygon = gdi_ui_polygon;
|
||||
inst->ui_polyline = gdi_ui_polyline;
|
||||
inst->ui_ellipse = gdi_ui_ellipse;
|
||||
inst->ui_start_draw_glyphs = gdi_ui_start_draw_glyphs;
|
||||
inst->ui_draw_glyph = gdi_ui_draw_glyph;
|
||||
inst->ui_end_draw_glyphs = gdi_ui_end_draw_glyphs;
|
||||
inst->ui_destblt = gdi_ui_destblt;
|
||||
inst->ui_patblt = gdi_ui_patblt;
|
||||
inst->ui_screenblt = gdi_ui_screenblt;
|
||||
inst->ui_memblt = gdi_ui_memblt;
|
||||
inst->ui_triblt = gdi_ui_mem3blt;
|
||||
inst->ui_create_palette = gdi_ui_create_palette;
|
||||
inst->ui_set_palette = gdi_ui_set_palette;
|
||||
inst->ui_create_glyph = gdi_ui_create_glyph;
|
||||
inst->ui_destroy_glyph = gdi_ui_destroy_glyph;
|
||||
inst->ui_set_clip = gdi_ui_set_clipping_region;
|
||||
inst->ui_reset_clip = gdi_ui_reset_clipping_region;
|
||||
inst->ui_create_surface = gdi_ui_create_surface;
|
||||
inst->ui_set_surface = gdi_ui_switch_surface;
|
||||
inst->ui_destroy_surface = gdi_ui_destroy_surface;
|
||||
inst->ui_decode = gdi_ui_decode;
|
||||
return 0;
|
||||
update->Bitmap = NULL;
|
||||
update->Palette = NULL;
|
||||
update->DstBlt = NULL;
|
||||
update->PatBlt = NULL;
|
||||
update->ScrBlt = NULL;
|
||||
update->DrawNineGrid = NULL;
|
||||
update->MultiDrawNineGrid = NULL;
|
||||
update->LineTo = NULL;
|
||||
update->OpaqueRect = NULL;
|
||||
update->SaveBitmap = NULL;
|
||||
update->MemBlt = NULL;
|
||||
update->Mem3Blt = NULL;
|
||||
update->MultiDstBlt = NULL;
|
||||
update->MultiPatBlt = NULL;
|
||||
update->MultiScrBlt = NULL;
|
||||
update->MultiOpaqueRect = NULL;
|
||||
update->FastIndex = NULL;
|
||||
update->PolygonSC = NULL;
|
||||
update->PolygonCB = NULL;
|
||||
update->Polyline = NULL;
|
||||
update->FastGlyph = NULL;
|
||||
update->EllipseSC = NULL;
|
||||
update->EllipseCB = NULL;
|
||||
update->GlyphIndex = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1110,16 +1105,15 @@ gdi_register_callbacks(rdpInst * inst)
|
||||
* @return
|
||||
*/
|
||||
|
||||
int
|
||||
gdi_init(rdpInst * inst, uint32 flags)
|
||||
int gdi_init(freerdp* instance, uint32 flags)
|
||||
{
|
||||
GDI *gdi = (GDI*) malloc(sizeof(GDI));
|
||||
memset(gdi, 0, sizeof(GDI));
|
||||
SET_GDI(inst, gdi);
|
||||
SET_GDI(instance, gdi);
|
||||
|
||||
gdi->width = inst->settings->width;
|
||||
gdi->height = inst->settings->height;
|
||||
gdi->srcBpp = inst->settings->color_depth;
|
||||
gdi->width = instance->settings->width;
|
||||
gdi->height = instance->settings->height;
|
||||
gdi->srcBpp = instance->settings->color_depth;
|
||||
|
||||
/* default internal buffer format */
|
||||
gdi->dstBpp = 32;
|
||||
@ -1176,14 +1170,14 @@ gdi_init(rdpInst * inst, uint32 flags)
|
||||
|
||||
gdi->tile = gdi_bitmap_new(gdi, 64, 64, 32, NULL);
|
||||
|
||||
gdi_register_callbacks(inst);
|
||||
gdi_register_update_callbacks(instance->update);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void gdi_free(rdpInst* inst)
|
||||
void gdi_free(freerdp* instance)
|
||||
{
|
||||
GDI *gdi = GET_GDI(inst);
|
||||
GDI *gdi = GET_GDI(instance);
|
||||
|
||||
if (gdi)
|
||||
{
|
||||
@ -1193,8 +1187,6 @@ void gdi_free(rdpInst* inst)
|
||||
free(gdi);
|
||||
}
|
||||
|
||||
SET_GDI(inst, NULL);
|
||||
SET_GDI(instance, NULL);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -251,10 +251,10 @@ void gdi_copy_mem_backwards(uint8 *d, uint8 *s, int n);
|
||||
uint8* gdi_get_bitmap_pointer(HGDI_DC hdcBmp, int x, int y);
|
||||
uint8* gdi_get_brush_pointer(HGDI_DC hdcBrush, int x, int y);
|
||||
int gdi_is_mono_pixel_set(uint8* data, int x, int y, int width);
|
||||
int gdi_init(rdpInst * inst, uint32 flags);
|
||||
GDI_IMAGE* gdi_bitmap_new(GDI *gdi, int width, int height, int bpp, uint8* data);
|
||||
void gdi_bitmap_free(GDI_IMAGE *gdi_bmp);
|
||||
void gdi_free(rdpInst* inst);
|
||||
int gdi_init(freerdp* instance, uint32 flags);
|
||||
void gdi_free(freerdp* instance);
|
||||
|
||||
#define SET_GDI(_inst, _gdi) (_inst)->param2 = _gdi
|
||||
#define GET_GDI(_inst) ((GDI*) ((_inst)->param2))
|
||||
|
Loading…
Reference in New Issue
Block a user