mirror of
https://dev.lirent.ru/Vatrog/vm-automation-signaling.git
synced 2026-06-26 04:36:37 +03:00
bd8b966017
- src/si/vgpu-stream: in-guest vgpu producer built as a Windows cross-compiled target (if(WIN32)) - .gitea: release workflow — cross-build the agent and build/publish the deb against system vmie - cmake/makefile: resolve vmie from a source tree (LIBVMIE_PATH) or installed libvmie-dev
27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
#ifndef VGPU_CURSOR_H
|
|
#define VGPU_CURSOR_H
|
|
|
|
/* cursor.h — win32 GDI cursor sample/compose onto a tight BGRA frame. */
|
|
|
|
#include <stdint.h>
|
|
#include "ctx.h" /* win32 vgpu_ctx (cursor state) */
|
|
|
|
/* Sample the current cursor (position/shape) into ctx->cursor.
|
|
* Returns 1 if anything changed since last sample, else 0. */
|
|
int cursor_sample(vgpu_ctx* ctx);
|
|
|
|
/* Resolve a HCURSOR to a VGPU_CURSOR_ID_* by comparing against the system cursor table
|
|
* (LoadCursor(NULL, IDC_*) loaded once on first use). Returns VGPU_CURSOR_ID_UNKNOWN for
|
|
* custom cursors. Not hot-path: called only under the shape-change gate. */
|
|
int cursor_resolve_id(HCURSOR hc);
|
|
|
|
/* Extract glyph/hotspot/dims for hc into ctx->cursor, resolve its cursor_id, and record it as
|
|
* the current handle. For backends that source position elsewhere (DDA from frame info) and
|
|
* only need the shape on a shape-change gate. Caller serializes ctx->cursor writes. */
|
|
void cursor_apply_shape(vgpu_ctx* ctx, HCURSOR hc);
|
|
|
|
/* Alpha/AND-XOR compose the sampled cursor onto a tight BGRA frame. */
|
|
void cursor_draw(vgpu_ctx* ctx, uint8_t* bgra, uint32_t width, uint32_t height);
|
|
|
|
#endif /* VGPU_CURSOR_H */
|