20#ifndef FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H
21#define FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H
23#include <freerdp/channels/gfxredir.h>
25#include <freerdp/api.h>
26#include <freerdp/types.h>
36 typedef UINT (*psGfxRedirOpen)(GfxRedirServerContext* context);
37 typedef UINT (*psGfxRedirClose)(GfxRedirServerContext* context);
39 typedef UINT (*psGfxRedirError)(GfxRedirServerContext* context,
42 typedef UINT (*psGfxRedirGraphicsRedirectionLegacyCaps)(
45 typedef UINT (*psGfxRedirGraphicsRedirectionCapsAdvertise)(
47 typedef UINT (*psGfxRedirGraphicsRedirectionCapsConfirm)(
50 typedef UINT (*psGfxRedirOpenPool)(GfxRedirServerContext* context,
52 typedef UINT (*psGfxRedirClosePool)(GfxRedirServerContext* context,
55 typedef UINT (*psGfxRedirCreateBuffer)(GfxRedirServerContext* context,
57 typedef UINT (*psGfxRedirDestroyBuffer)(GfxRedirServerContext* context,
60 typedef UINT (*psGfxRedirPresentBuffer)(GfxRedirServerContext* context,
62 typedef UINT (*psGfxRedirPresentBufferAck)(
70 WINPR_ATTR_NODISCARD psGfxRedirOpen Open;
71 WINPR_ATTR_NODISCARD psGfxRedirClose Close;
73 WINPR_ATTR_NODISCARD psGfxRedirError Error;
75 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionLegacyCaps GraphicsRedirectionLegacyCaps;
77 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionCapsAdvertise
78 GraphicsRedirectionCapsAdvertise;
79 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionCapsConfirm
80 GraphicsRedirectionCapsConfirm;
82 WINPR_ATTR_NODISCARD psGfxRedirOpenPool OpenPool;
83 WINPR_ATTR_NODISCARD psGfxRedirClosePool ClosePool;
85 WINPR_ATTR_NODISCARD psGfxRedirCreateBuffer CreateBuffer;
86 WINPR_ATTR_NODISCARD psGfxRedirDestroyBuffer DestroyBuffer;
88 WINPR_ATTR_NODISCARD psGfxRedirPresentBuffer PresentBuffer;
89 WINPR_ATTR_NODISCARD psGfxRedirPresentBufferAck PresentBufferAck;
91 GfxRedirServerPrivate* priv;
92 rdpContext* rdpcontext;
94 UINT32 confirmedCapsVersion;
97 FREERDP_API
void gfxredir_server_context_free(GfxRedirServerContext* context);
99 WINPR_ATTR_MALLOC(gfxredir_server_context_free, 1)
101 FREERDP_API GfxRedirServerContext* gfxredir_server_context_new(HANDLE vcm);