123 unsigned char * andmask,
unsigned char * xormask);
142 if (
cx < 1 ||
cy < 1)
177 uint8 * andmask,
uint8 * xormask,
int xor_bpp)
194 for (
i = 0;
i < 32;
i++)
196 for (
j = 0;
j < 32;
j++)
239 struct bitmap * the_glyph;
265 struct bitmap * the_glyph;
343 for (
i = 0;
i <
n;
i++)
369 #define DO_GLYPH(ttext,idx) \ 371 glyph = cache_get_font(font, ttext[idx]); \ 372 if (!(flags & TEXT2_IMPLICIT_X)) \ 374 xyoffset = ttext[++idx]; \ 375 if (xyoffset & 0x80) \ 377 if (flags & TEXT2_VERTICAL) \ 379 y += ttext[idx + 1] | (ttext[idx + 2] << 8); \ 383 x += ttext[idx + 1] | (ttext[idx + 2] << 8); \ 389 if (flags & TEXT2_VERTICAL) \ 401 draw_glyph(x + glyph->offset, y + glyph->baseline, glyph->pixmap, \ 403 if (flags & TEXT2_IMPLICIT_X) \ 414 int clipx,
int clipy,
int clipcx,
int clipcy,
415 int boxx,
int boxy,
int boxcx,
int boxcy,
BRUSH * brush,
430 bs_rect(boxx, boxy, boxcx, boxcy, bgcolour, 0xc);
436 bs_rect(clipx, clipy, clipcx, clipcy, bgcolour, 0xc);
451 error(
"this shouldn't be happening\n");
523 if (pen->
style == 0 && pen->
width < 2 && opcode == 12)
529 x =
MIN(startx, endx);
530 y =
MIN(starty, endy);
531 cx = (
MAX(startx, endx) + 1) -
x;
532 cy = (
MAX(starty, endy) + 1) -
y;
540 void *
src,
int srcx,
int srcy,
541 BRUSH* brush,
int bgcolour,
int fgcolour)
549 void *
src,
int srcx,
int srcy)
598 BRUSH * brush,
int bgcolour,
int fgcolour)
601 brush->xorigin, brush->yorigin, bgcolour, fgcolour);
672 BRUSH * brush,
int bgcolour,
int fgcolour)
686 for (
i = 1;
i < npoints;
i++)
700 int x,
int y,
int cx,
int cy,
701 BRUSH * brush,
int bgcolour,
int fgcolour)
715 for (
i = 0;
i < 32;
i++)
992 for (
i = 0;
i < thisline;
i++)
998 for (
i = 0;
i < thisline;
i++)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
char * xstrdup(const char *s)
int mi_create_window(void)
uint32 g_reconnect_logonid
void bs_memblt(int opcode, int x, int y, int cx, int cy, void *srcdata, int srcwidth, int srcheight, int srcx, int srcy)
void ui_destblt(uint8 opcode, int x, int y, int cx, int cy)
void * xrealloc(void *in, size_t size)
void ui_draw_text(uint8 font, uint8 flags, uint8 opcode, int mixmode, int x, int y, int clipx, int clipy, int clipcx, int clipcy, int boxx, int boxy, int boxcx, int boxcy, BRUSH *brush, int bgcolour, int fgcolour, uint8 *text, uint8 length)
void ui_destroy_glyph(void *glyph)
void ui_set_colourmap(void *map)
uint32 g_redirect_lb_info_len
GLint GLint GLsizei width
void bs_copy_box(char *dst, int x, int y, int cx, int cy, int line_size)
void * ui_create_colourmap(COLOURMAP *colours)
void mi_begin_update(void)
void mi_set_clip(int x, int y, int cx, int cy)
#define DO_GLYPH(ttext, idx)
void mi_destroy_cursor(void *cursor)
void ui_paint_bitmap(int x, int y, int cx, int cy, int width, int height, uint8 *data)
void ui_begin_update(void)
int mi_read_keyboard_state(void)
void ui_set_null_cursor(void)
void ui_set_modifier_state(int code)
char * strcat(char *DstString, const char *SrcString)
void ui_polygon(uint8 opcode, uint8 fillmode, RD_POINT *point, int npoints, BRUSH *brush, int bgcolour, int fgcolour)
ACPI_SIZE strlen(const char *String)
void rd_close_file(int fd)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
void mi_paint_rect(char *data, int width, int height, int x, int y, int cx, int cy)
void ui_rect(int x, int y, int cx, int cy, int colour)
void ui_destroy_cursor(void *cursor)
int g_keyboard_functionkeys
void * ui_create_glyph(int width, int height, uint8 *data)
#define MOUSE_FLAG_BUTTON1
GLint GLint GLint GLint GLint x
uint16 ui_get_numlock_state(uint32 state)
#define PERF_DISABLE_CURSOR_SHADOW
void bs_draw_glyph(int x, int y, char *glyph_data, int glyph_width, int glyph_height, int fgcolour)
int rd_open_file(char *filename)
void warning(char *format,...)
int rd_lseek_file(int fd, int offset)
void mi_line(int x1, int y1, int x2, int y2, int colour)
void ui_key_up(int key, int ext)
time_t g_reconnect_random_ts
static uint32 g_ext_disc_reason
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define MOUSE_FLAG_BUTTON4
char g_redirect_username[256]
#define sprintf(buf, format,...)
RD_BOOL rdp_loop(RD_BOOL *deactivated, uint32 *ext_disc_reason)
void bs_rect(int x, int y, int cx, int cy, int colour, int rop)
RD_BOOL rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command, char *directory, RD_BOOL reconnect)
void ui_mouse_button(int button, int x, int y, int down)
uint8 g_redirect_lb_info[256]
_Check_return_ int __cdecl rand(void)
RD_BOOL g_console_session
GLenum GLuint GLenum GLsizei length
uint8 g_client_random[SEC_RANDOM_SIZE]
int bs_is_pixel_on(char *data, int x, int y, int width, int bpp)
_Out_opt_ int _Out_opt_ int * cy
void cache_put_text(uint8 cache_id, void *data, int length)
void * ui_create_cursor(unsigned int x, unsigned int y, int width, int height, uint8 *andmask, uint8 *xormask, int xor_bpp)
void bs_line(int opcode, int startx, int starty, int endx, int endy, int pen_width, int pen_style, int pen_colour)
BOOL rd_pstcache_mkdir(void)
#define MOUSE_FLAG_BUTTON3
char g_redirect_domain[256]
uint32 g_redirect_session_id
void save_licence(uint8 *data, int length)
int bs_warp_coords(int *x, int *y, int *cx, int *cy, int *srcx, int *srcy)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
void ui_set_clip(int x, int y, int cx, int cy)
uint32 g_redirect_cookie_len
RD_BOOL g_bitmap_compression
static void draw_glyph(int x, int y, void *glyph, int fgcolor)
void rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1, uint16 param2)
GLboolean GLboolean GLboolean b
#define PERF_DISABLE_FULLWINDOWDRAG
uint32 g_redirect_server_len
void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN *pen)
RD_BOOL g_has_reconnect_random
void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy)
void ui_patblt(uint8 opcode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
void mi_screen_copy(int x, int y, int cx, int cy, int srcx, int srcy)
RDP_VERSION g_rdp_version
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei const GLfloat * points
void bs_patblt(int opcode, int x, int y, int cx, int cy, int brush_style, char *brush_pattern, int brush_x_org, int brush_y_org, int bgcolour, int fgcolour)
enum _RDP_VERSION RDP_VERSION
#define memcpy(s1, s2, n)
void ui_key_down(int key, int ext)
void ui_mouse_move(int x, int y)
void * ui_create_bitmap(int width, int height, uint8 *data)
#define PERF_DISABLE_MENUANIMATIONS
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
void ui_destroy_bitmap(void *bmp)
char g_reconnect_random[16]
void bs_set_pixel_on(char *data, int x, int y, int width, int bpp, int pixel)
GLint GLint GLsizei GLsizei height
int load_licence(uint8 **data)
void bs_init(int width, int height, int bpp)
void ui_memblt(uint8 opcode, int x, int y, int cx, int cy, void *src, int srcx, int srcy)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define MOUSE_FLAG_BUTTON5
void ui_invalidate(int x, int y, int cx, int cy)
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy)
#define RDP_INFO_AUTOLOGON
uint32 g_redirect_username_len
uint8 g_redirect_cookie[256]
GLint GLint GLint GLint GLint GLint y
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
#define MOUSE_FLAG_BUTTON2
void bs_set_clip(int x, int y, int cx, int cy)
char g_redirect_server[256]
#define PERF_DISABLE_WALLPAPER
void int int ULONGLONG int va_list * ap
void ui_move_pointer(int x, int y)
RD_BOOL g_bitmap_cache_precache
char * strcpy(char *DstString, const char *SrcString)
void ui_polyline(uint8 opcode, RD_POINT *points, int npoints, PEN *pen)
void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, void *src, int srcx, int srcy, BRUSH *brush, int bgcolour, int fgcolour)
uint32 g_redirect_domain_len
void ui_screenblt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy)
void error(char *format,...)
DATABLOB * cache_get_text(uint8 cache_id)
uint32 g_rdp5_performanceflags
void mi_warning(char *msg)
RD_BOOL g_encryption_initial
void ui_ellipse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH *brush, int bgcolour, int fgcolour)
void * mi_create_cursor(unsigned int x, unsigned int y, int width, int height, unsigned char *andmask, unsigned char *xormask)
void generate_random(uint8 *random)
void mi_fill_rect(int x, int y, int cx, int cy, int colour)
RD_BOOL g_bitmap_cache_persist_enable
int rd_read_file(int fd, void *ptr, int len)
BOOL rd_lock_file(int fd, int start, int len)
void mi_set_null_cursor(void)
void hexdump(uint8 *p, uint32 len)
void unimpl(char *format,...)
void ui_resize_window(void)
RD_BOOL g_polygon_ellipse_orders
void ui_set_cursor(void *cursor)
uint32 read_keyboard_state(void)
void bs_screenblt(int rop, int x, int y, int cx, int cy, int srcx, int srcy)
void mi_set_cursor(void *cursor)
int rd_write_file(int fd, void *ptr, int len)