This file is indexed.

/usr/include/freerdp2/freerdp/graphics.h is in freerdp2-dev 2.0.0~git20170725.1.1648deb+dfsg1-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
/**
 * FreeRDP: A Remote Desktop Protocol Implementation
 * Graphical Objects
 *
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
 * Copyright 2016 Armin Novak <armin.novak@thincast.com>
 * Copyright 2016 Thincast Technologies GmbH
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef FREERDP_GRAPHICS_H
#define FREERDP_GRAPHICS_H

typedef struct rdp_bitmap rdpBitmap;
typedef struct rdp_pointer rdpPointer;
typedef struct rdp_glyph rdpGlyph;

#include <stdlib.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/freerdp.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Bitmap Class */
typedef BOOL (*pBitmap_New)(rdpContext* context, rdpBitmap* bitmap);
typedef void (*pBitmap_Free)(rdpContext* context, rdpBitmap* bitmap);
typedef BOOL (*pBitmap_Paint)(rdpContext* context, rdpBitmap* bitmap);
typedef BOOL (*pBitmap_Decompress)(rdpContext* context, rdpBitmap* bitmap,
                                   const BYTE* data, UINT32 width, UINT32 height,
                                   UINT32 bpp, UINT32 length, BOOL compressed,
                                   UINT32 codec_id);
typedef BOOL (*pBitmap_SetSurface)(rdpContext* context, rdpBitmap* bitmap,
                                   BOOL primary);

struct rdp_bitmap
{
	size_t size; /* 0 */
	pBitmap_New New; /* 1 */
	pBitmap_Free Free; /* 2 */
	pBitmap_Paint Paint; /* 3 */
	pBitmap_Decompress Decompress; /* 4 */
	pBitmap_SetSurface SetSurface; /* 5 */
	UINT32 paddingA[16 - 6];  /* 6 */

	UINT32 left; /* 16 */
	UINT32 top; /* 17 */
	UINT32 right; /* 18 */
	UINT32 bottom; /* 19 */
	UINT32 width; /* 20 */
	UINT32 height; /* 21 */
	UINT32 format; /* 22 */
	UINT32 flags; /* 23 */
	UINT32 length; /* 24 */
	BYTE* data; /* 25 */
	UINT32 paddingB[32 - 26]; /* 26 */

	BOOL compressed; /* 32 */
	BOOL ephemeral; /* 33 */
	UINT32 paddingC[64 - 34]; /* 34 */
};

FREERDP_API rdpBitmap* Bitmap_Alloc(rdpContext* context);
FREERDP_API BOOL Bitmap_SetRectangle(rdpBitmap* bitmap,
                                     UINT16 left,
                                     UINT16 top, UINT16 right, UINT16 bottom);
FREERDP_API BOOL Bitmap_SetDimensions(rdpBitmap* bitmap,
                                      UINT16 width,
                                      UINT16 height);

/* Pointer Class */

typedef BOOL (*pPointer_New)(rdpContext* context, rdpPointer* pointer);
typedef void (*pPointer_Free)(rdpContext* context, rdpPointer* pointer);
typedef BOOL (*pPointer_Set)(rdpContext* context, const rdpPointer* pointer);
typedef BOOL (*pPointer_SetNull)(rdpContext* context);
typedef BOOL (*pPointer_SetDefault)(rdpContext* context);
typedef BOOL (*pPointer_SetPosition)(rdpContext* context, UINT32 x, UINT32 y);

struct rdp_pointer
{
	size_t size; /* 0 */
	pPointer_New New; /* 1 */
	pPointer_Free Free; /* 2 */
	pPointer_Set Set; /* 3 */
	pPointer_SetNull SetNull; /* 4*/
	pPointer_SetDefault SetDefault; /* 5 */
	pPointer_SetPosition SetPosition; /* 6 */
	UINT32 paddingA[16 - 7]; /* 7 */

	UINT32 xPos; /* 16 */
	UINT32 yPos; /* 17 */
	UINT32 width; /* 18 */
	UINT32 height; /* 19 */
	UINT32 xorBpp; /* 20 */
	UINT32 lengthAndMask; /* 21 */
	UINT32 lengthXorMask; /* 22 */
	BYTE* xorMaskData; /* 23 */
	BYTE* andMaskData; /* 24 */
	UINT32 paddingB[32 - 25]; /* 25 */
};

FREERDP_API rdpPointer* Pointer_Alloc(rdpContext* context);

/* Glyph Class */
typedef BOOL (*pGlyph_New)(rdpContext* context, const rdpGlyph* glyph);
typedef void (*pGlyph_Free)(rdpContext* context, rdpGlyph* glyph);
typedef BOOL (*pGlyph_Draw)(rdpContext* context, const rdpGlyph* glyph,
                            UINT32 x, UINT32 y, UINT32 w, UINT32 h,
                            UINT32 sx, UINT32 sy, BOOL fOpRedundant);
typedef BOOL (*pGlyph_BeginDraw)(rdpContext* context, UINT32 x, UINT32 y,
                                 UINT32 width, UINT32 height, UINT32 bgcolor,
                                 UINT32 fgcolor, BOOL fOpRedundant);
typedef BOOL (*pGlyph_EndDraw)(rdpContext* context, UINT32 x, UINT32 y,
                               UINT32 width, UINT32 height, UINT32 bgcolor, UINT32 fgcolor);

struct rdp_glyph
{
	size_t size; /* 0 */
	pGlyph_New New; /* 1 */
	pGlyph_Free Free; /* 2 */
	pGlyph_Draw Draw; /* 3 */
	pGlyph_BeginDraw BeginDraw; /* 4 */
	pGlyph_EndDraw EndDraw; /* 5 */
	UINT32 paddingA[16 - 6]; /* 6 */

	INT32 x; /* 16 */
	INT32 y; /* 17 */
	UINT32 cx; /* 18 */
	UINT32 cy; /* 19 */
	UINT32 cb; /* 20 */
	BYTE* aj; /* 21 */
	UINT32 paddingB[32 - 22]; /* 22 */
};

FREERDP_API rdpGlyph* Glyph_Alloc(rdpContext* context, INT32 x, INT32 y,
                                  UINT32 cx, UINT32 cy, UINT32 cb, const BYTE* aj);

/* Graphics Module */

struct rdp_graphics
{
	rdpContext* context; /* 0 */
	rdpBitmap* Bitmap_Prototype; /* 1 */
	rdpPointer* Pointer_Prototype; /* 2 */
	rdpGlyph* Glyph_Prototype; /* 3 */
	UINT32 paddingA[16 - 4]; /* 4 */
};

FREERDP_API void graphics_register_bitmap(rdpGraphics* graphics,
        rdpBitmap* bitmap);
FREERDP_API void graphics_register_pointer(rdpGraphics* graphics,
        rdpPointer* pointer);
FREERDP_API void graphics_register_glyph(rdpGraphics* graphics,
        rdpGlyph* glyph);

FREERDP_API rdpGraphics* graphics_new(rdpContext* context);
FREERDP_API void graphics_free(rdpGraphics* graphics);

#ifdef __cplusplus
}
#endif

#endif /* FREERDP_GRAPHICS_H */